Browse Source

cleanup: function comments, etc

Matthew R Kasun 2 years ago
parent
commit
488ada670c
4 changed files with 42 additions and 18 deletions
  1. 17 13
      controllers/ext_client.go
  2. 5 3
      controllers/node.go
  3. 8 1
      models/dnsEntry.go
  4. 12 1
      mq/publishers.go

+ 17 - 13
controllers/ext_client.go

@@ -496,12 +496,14 @@ func updateExtClient(w http.ResponseWriter, r *http.Request) {
 	w.WriteHeader(http.StatusOK)
 	w.WriteHeader(http.StatusOK)
 	json.NewEncoder(w).Encode(newclient)
 	json.NewEncoder(w).Encode(newclient)
 	if changedID {
 	if changedID {
-		if err := mq.PublishDeleteExtClientDNS(&oldExtClient); err != nil {
-			logger.Log(1, "error pubishing dns update for extcient update", err.Error())
-		}
-		if err := mq.PublishExtCLientDNS(&newExtClient); err != nil {
-			logger.Log(1, "error pubishing dns update for extcient update", err.Error())
-		}
+		go func() {
+			if err := mq.PublishDeleteExtClientDNS(&oldExtClient); err != nil {
+				logger.Log(1, "error pubishing dns update for extcient update", err.Error())
+			}
+			if err := mq.PublishExtCLientDNS(&newExtClient); err != nil {
+				logger.Log(1, "error pubishing dns update for extcient update", err.Error())
+			}
+		}()
 	}
 	}
 }
 }
 
 
@@ -567,13 +569,15 @@ func deleteExtClient(w http.ResponseWriter, r *http.Request) {
 		return
 		return
 	}
 	}
 
 
-	err = mq.PublishExtPeerUpdate(&ingressnode)
-	if err != nil {
-		logger.Log(1, "error setting ext peers on "+ingressnode.ID.String()+": "+err.Error())
-	}
-	if err := mq.PublishDeleteExtClientDNS(&extclient); err != nil {
-		logger.Log(1, "error publishing dns update for extclient deletion", err.Error())
-	}
+	go func() {
+		err = mq.PublishExtPeerUpdate(&ingressnode)
+		if err != nil {
+			logger.Log(1, "error setting ext peers on "+ingressnode.ID.String()+": "+err.Error())
+		}
+		if err := mq.PublishDeleteExtClientDNS(&extclient); err != nil {
+			logger.Log(1, "error publishing dns update for extclient deletion", err.Error())
+		}
+	}()
 
 
 	logger.Log(0, r.Header.Get("user"),
 	logger.Log(0, r.Header.Get("user"),
 		"Deleted extclient client", params["clientid"], "from network", params["network"])
 		"Deleted extclient client", params["clientid"], "from network", params["network"])

+ 5 - 3
controllers/node.go

@@ -967,9 +967,11 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
 	json.NewEncoder(w).Encode(apiNode)
 	json.NewEncoder(w).Encode(apiNode)
 
 
 	runUpdates(newNode, ifaceDelta)
 	runUpdates(newNode, ifaceDelta)
-	if err := mq.PublishReplaceDNS(&currentNode, newNode, host); err != nil {
-		logger.Log(1, "failed to publish dns update", err.Error())
-	}
+	go func() {
+		if err := mq.PublishReplaceDNS(&currentNode, newNode, host); err != nil {
+			logger.Log(1, "failed to publish dns update", err.Error())
+		}
+	}()
 }
 }
 
 
 // swagger:route DELETE /api/nodes/{network}/{nodeid} nodes deleteNode
 // swagger:route DELETE /api/nodes/{network}/{nodeid} nodes deleteNode

+ 8 - 1
models/dnsEntry.go

@@ -1,16 +1,23 @@
 // TODO:  Either add a returnNetwork and returnKey, or delete this
 // TODO:  Either add a returnNetwork and returnKey, or delete this
 package models
 package models
 
 
+// DNSUpdateAction identifies the action to be performed with the dns update data
 type DNSUpdateAction int
 type DNSUpdateAction int
 
 
 const (
 const (
+	// DNSDeleteByIP delete the dns entry
 	DNSDeleteByIP = iota
 	DNSDeleteByIP = iota
+	// DNSDeleteByName delete the dns entry
 	DNSDeleteByName
 	DNSDeleteByName
+	// DNSReplaceName replace the dns entry
 	DNSReplaceName
 	DNSReplaceName
-	DNSReplaceByIP
+	// DNSReplaceIP resplace the dns entry
+	DNSReplaceIP
+	// DNSInsert insert a new dns entry
 	DNSInsert
 	DNSInsert
 )
 )
 
 
+// DNSUpdate data for updating entries in /etc/hosts
 type DNSUpdate struct {
 type DNSUpdate struct {
 	Action  DNSUpdateAction
 	Action  DNSUpdateAction
 	Name    string
 	Name    string

+ 12 - 1
mq/publishers.go

@@ -160,6 +160,7 @@ func ServerStartNotify() error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishDNSUpdate publishes a dns update to all nodes on a network
 func PublishDNSUpdate(network string, dns models.DNSUpdate) error {
 func PublishDNSUpdate(network string, dns models.DNSUpdate) error {
 	nodes, err := logic.GetNetworkNodes(network)
 	nodes, err := logic.GetNetworkNodes(network)
 	if err != nil {
 	if err != nil {
@@ -184,6 +185,7 @@ func PublishDNSUpdate(network string, dns models.DNSUpdate) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishAllDNS publishes an array of dns updates (ip / host.network) for each peer to a node joining a network
 func PublishAllDNS(newnode *models.Node) error {
 func PublishAllDNS(newnode *models.Node) error {
 	alldns := []models.DNSUpdate{}
 	alldns := []models.DNSUpdate{}
 	dns := models.DNSUpdate{}
 	dns := models.DNSUpdate{}
@@ -238,6 +240,7 @@ func PublishAllDNS(newnode *models.Node) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishDNSDelete publish a dns update deleting a node to all hosts on a network
 func PublishDNSDelete(node *models.Node, host *models.Host) error {
 func PublishDNSDelete(node *models.Node, host *models.Host) error {
 	dns := models.DNSUpdate{
 	dns := models.DNSUpdate{
 		Action: models.DNSDeleteByIP,
 		Action: models.DNSDeleteByIP,
@@ -258,9 +261,10 @@ func PublishDNSDelete(node *models.Node, host *models.Host) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishReplaceNDS publish a dns update to replace a dns entry on all hosts in network
 func PublishReplaceDNS(oldNode, newNode *models.Node, host *models.Host) error {
 func PublishReplaceDNS(oldNode, newNode *models.Node, host *models.Host) error {
 	dns := models.DNSUpdate{
 	dns := models.DNSUpdate{
-		Action: models.DNSReplaceByIP,
+		Action: models.DNSReplaceIP,
 		Name:   host.Name + "." + oldNode.Network,
 		Name:   host.Name + "." + oldNode.Network,
 	}
 	}
 	if !oldNode.Address.IP.Equal(newNode.Address.IP) {
 	if !oldNode.Address.IP.Equal(newNode.Address.IP) {
@@ -278,6 +282,7 @@ func PublishReplaceDNS(oldNode, newNode *models.Node, host *models.Host) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishExtClientDNS publish dns update for new extclient
 func PublishExtCLientDNS(client *models.ExtClient) error {
 func PublishExtCLientDNS(client *models.ExtClient) error {
 	var err4, err6 error
 	var err4, err6 error
 	dns := models.DNSUpdate{
 	dns := models.DNSUpdate{
@@ -305,6 +310,7 @@ func PublishExtCLientDNS(client *models.ExtClient) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishDeleteExtClient publish dns update to delete extclient entry
 func PublishDeleteExtClientDNS(client *models.ExtClient) error {
 func PublishDeleteExtClientDNS(client *models.ExtClient) error {
 	dns := models.DNSUpdate{
 	dns := models.DNSUpdate{
 		Action: models.DNSDeleteByName,
 		Action: models.DNSDeleteByName,
@@ -316,6 +322,7 @@ func PublishDeleteExtClientDNS(client *models.ExtClient) error {
 	return nil
 	return nil
 }
 }
 
 
+// PublishCustomDNS publish dns update for new custom dns entry
 func PublishCustomDNS(entry *models.DNSEntry) error {
 func PublishCustomDNS(entry *models.DNSEntry) error {
 	dns := models.DNSUpdate{
 	dns := models.DNSUpdate{
 		Action: models.DNSInsert,
 		Action: models.DNSInsert,
@@ -329,13 +336,17 @@ func PublishCustomDNS(entry *models.DNSEntry) error {
 	return nil
 	return nil
 }
 }
 
 
+// DNSError error struct capable of holding multiple error messages
 type DNSError struct {
 type DNSError struct {
 	ErrorStrings []string
 	ErrorStrings []string
 }
 }
 
 
+// DNSError.Error implementation of error interface
 func (e DNSError) Error() string {
 func (e DNSError) Error() string {
 	return "error publishing dns update"
 	return "error publishing dns update"
 }
 }
+
+// PublishHostDNSUpdate publishes dns update on host name change
 func PublishHostDNSUpdate(old, new *models.Host, networks []string) error {
 func PublishHostDNSUpdate(old, new *models.Host, networks []string) error {
 	errors := DNSError{}
 	errors := DNSError{}
 	for _, network := range networks {
 	for _, network := range networks {