summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go37
1 files changed, 31 insertions, 6 deletions
diff --git a/main.go b/main.go
index 4456793..5ed64dd 100644
--- a/main.go
+++ b/main.go
@@ -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 {