From 35a2a379405704a7e9f668c85da1bd27c7dfd3c4 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 23 Oct 2024 04:25:24 -0500 Subject: work on adding droplets from libvirt xml files Signed-off-by: Jeff Carr --- main.go | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'main.go') 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 { -- cgit v1.2.3