diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 37 |
1 files changed, 31 insertions, 6 deletions
@@ -44,25 +44,50 @@ func main() { var ok bool = true for _, filename := range argv.Xml { - log.Info("add xml file", filename) domcfg, err := readXml(filename) if err != nil { + // parsing the libvirt xml file failed log.Info("error:", filename, err) ok = false continue } - d, err := addDroplet(domcfg) + // see if the libvirt xml droplet is already here + d, err := findDomain(domcfg) if err != nil { + // some error. probably UUID mismatch or hostname duplication + // this has to be fixed by hand ok = false + continue } if d == nil { - log.Info("addDroplet() returned nil") - ok = false + // this is a new droplet. add it to the cluster + log.Info("Add New Droplet here", domcfg.Name) + _, err := addDomainDroplet(domcfg) + if err != nil { + ok = false + log.Info("addDomainDroplet() failed", err) + } + } else { + // this droplet is already here + if updateDroplet(d, domcfg) { + if me.changed { + log.Info("updateDroplet() worked. droplet changed") + } else { + log.Info("updateDroplet() worked. nothing changed") + } + } else { + log.Info("updateDroplet() failed for", d.pb.Hostname) + ok = false + } } } if me.changed { - writeConfigFile() - writeConfigFileDroplets() + if argv.Save { + writeConfigFile() + writeConfigFileDroplets() + } else { + log.Info("Not saving changes (use --save to save)") + } os.Exit(0) } if !ok { |
