mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-23 00:17:10 +08:00
NM-202: fix egress domain routing (#3793)
* NM-195: add key tags info to posture check on join * NM-195: add network user grps to posture check * NM-195: add posture checks to middleware * fix: return error when group network roles are set for specific networks and all networks; * add all posture check to rsrc permission check func * NM-202: fix egress domain routing * fix: add username filter; * feat: add fallback nameserver support; * fix: add validation for pro as well; * fix: skip fallback domains for user gws; * fix: don't set domains for fallback dns servers; * fix: validation fixes; * fix: empty match domains for fallback nameservers; --------- Co-authored-by: VishalDalwadi <dalwadivishal26@gmail.com>
This commit is contained in:
+19
-2
@@ -80,7 +80,7 @@ func createNs(w http.ResponseWriter, r *http.Request) {
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||
return
|
||||
}
|
||||
if err := logic.ValidateNameserverReq(req); err != nil {
|
||||
if err := logic.ValidateNameserverReq(&req); err != nil {
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||
return
|
||||
}
|
||||
@@ -110,6 +110,7 @@ func createNs(w http.ResponseWriter, r *http.Request) {
|
||||
Name: req.Name,
|
||||
NetworkID: req.NetworkID,
|
||||
Description: req.Description,
|
||||
Fallback: req.Fallback,
|
||||
Servers: req.Servers,
|
||||
MatchAll: req.MatchAll,
|
||||
Domains: req.Domains,
|
||||
@@ -199,7 +200,7 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := logic.ValidateNameserverReq(updateNs); err != nil {
|
||||
if err := logic.ValidateNameserverReq(&updateNs); err != nil {
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||
return
|
||||
}
|
||||
@@ -218,12 +219,16 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
var updateStatus bool
|
||||
var updateMatchAll bool
|
||||
var updateFallback bool
|
||||
if updateNs.Status != ns.Status {
|
||||
updateStatus = true
|
||||
}
|
||||
if updateNs.MatchAll != ns.MatchAll {
|
||||
updateMatchAll = true
|
||||
}
|
||||
if updateNs.Fallback != ns.Fallback {
|
||||
updateFallback = true
|
||||
}
|
||||
event := &models.Event{
|
||||
Action: models.Update,
|
||||
Source: models.Subject{
|
||||
@@ -246,6 +251,13 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
if !ns.Default {
|
||||
if updateNs.MatchAll {
|
||||
updateNs.Domains = []schema.NameserverDomain{
|
||||
{
|
||||
Domain: ".",
|
||||
},
|
||||
}
|
||||
}
|
||||
ns.Servers = updateNs.Servers
|
||||
ns.Tags = updateNs.Tags
|
||||
ns.Domains = updateNs.Domains
|
||||
@@ -268,6 +280,11 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
ns.MatchAll = updateNs.MatchAll
|
||||
ns.UpdateMatchAll(db.WithContext(context.TODO()))
|
||||
}
|
||||
|
||||
if updateFallback {
|
||||
ns.Fallback = updateNs.Fallback
|
||||
ns.UpdateFallback(db.WithContext(context.TODO()))
|
||||
}
|
||||
}
|
||||
|
||||
if updateStatus {
|
||||
|
||||
@@ -683,7 +683,7 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
|
||||
logic.CreateDefaultAclNetworkPolicies(models.NetworkID(network.NetID))
|
||||
logic.CreateDefaultTags(models.NetworkID(network.NetID))
|
||||
logic.AddNetworkToAllocatedIpMap(network.NetID)
|
||||
logic.CreateGoogleDNSNameserver(network.NetID)
|
||||
logic.CreateFallbackNameserver(network.NetID)
|
||||
|
||||
go func() {
|
||||
defaultHosts := logic.GetDefaultHosts()
|
||||
|
||||
Reference in New Issue
Block a user