|
@@ -240,7 +240,7 @@ func PublishAllDNS(newnode *models.Node) error {
|
|
|
|
|
|
func PublishDNSDelete(node *models.Node, host *models.Host) error {
|
|
|
dns := models.DNSUpdate{
|
|
|
- Action: models.DNSDelete,
|
|
|
+ Action: models.DNSDeleteByIP,
|
|
|
Name: host.Name + "." + node.Network,
|
|
|
}
|
|
|
if node.Address.IP != nil {
|
|
@@ -260,7 +260,7 @@ func PublishDNSDelete(node *models.Node, host *models.Host) error {
|
|
|
|
|
|
func PublishReplaceDNS(oldNode, newNode *models.Node, host *models.Host) error {
|
|
|
dns := models.DNSUpdate{
|
|
|
- Action: models.DNSReplace,
|
|
|
+ Action: models.DNSReplaceByIP,
|
|
|
Name: host.Name + "." + oldNode.Network,
|
|
|
}
|
|
|
if !oldNode.Address.IP.Equal(newNode.Address.IP) {
|
|
@@ -329,6 +329,31 @@ func PublishCustomDNS(entry *models.DNSEntry) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+type DNSError struct {
|
|
|
+ ErrorStrings []string
|
|
|
+}
|
|
|
+
|
|
|
+func (e DNSError) Error() string {
|
|
|
+ return "error publishing dns update"
|
|
|
+}
|
|
|
+func PublishHostDNSUpdate(old, new *models.Host, networks []string) error {
|
|
|
+ errors := DNSError{}
|
|
|
+ for _, network := range networks {
|
|
|
+ dns := models.DNSUpdate{
|
|
|
+ Action: models.DNSReplaceName,
|
|
|
+ Name: old.Name + "." + network,
|
|
|
+ NewName: new.Name + "." + network,
|
|
|
+ }
|
|
|
+ if err := PublishDNSUpdate(network, dns); err != nil {
|
|
|
+ errors.ErrorStrings = append(errors.ErrorStrings, err.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(errors.ErrorStrings) > 0 {
|
|
|
+ return errors
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
// function to collect and store metrics for server nodes
|
|
|
//func collectServerMetrics(networks []models.Network) {
|
|
|
// if !servercfg.Is_EE {
|