diff options
Diffstat (limited to 'addDroplet.go')
| -rw-r--r-- | addDroplet.go | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/addDroplet.go b/addDroplet.go index 51942d0..d572ea8 100644 --- a/addDroplet.go +++ b/addDroplet.go @@ -14,14 +14,15 @@ import ( ) // import a libvirt xml file -func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, error) { +func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, []*pb.Event, error) { + var alle []*pb.Event if domcfg == nil { - return nil, errors.New("domcfg == nil") + return nil, alle, errors.New("domcfg == nil") } d, err := findDomain(domcfg) if err != nil { - return nil, err + return nil, alle, err } if d == nil { // this is a new unknown droplet (not in the config file) @@ -41,14 +42,14 @@ func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, error) { me.changed = true } - err = updateDroplet(d, domcfg) + alle, err = updateDroplet(d, domcfg) if err != nil { log.Info("updateDroplet() failed for", d.pb.Hostname) - return d, errors.New("update failed for " + domcfg.Name) + return d, alle, errors.New("update failed for " + domcfg.Name) } log.Info("added new droplet", domcfg.Name, domcfg.UUID) dumpNonStandardXML(domcfg) - return d, nil + return d, alle, nil } func findDomain(domcfg *libvirtxml.Domain) (*DropletT, error) { @@ -91,20 +92,20 @@ func findDomain(domcfg *libvirtxml.Domain) (*DropletT, error) { return found, nil } -func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) error { +func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { var alle []*pb.Event if d == nil { - return errors.New("d == nil") + return alle, errors.New("d == nil") } if domcfg == nil { - return errors.New("domcfg == nil") + return alle, errors.New("domcfg == nil") } e, err := updateMemory(d, domcfg) if err != nil { log.Info("updateMemory() failed") - return err + return alle, err } if e != nil { alle = append(alle, e) @@ -159,25 +160,30 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) error { // check type if domcfg.Type != "kvm" { fmt.Printf("not kvm. Virt type == %s\n", domcfg.Type) - return errors.New("not kvm") + return alle, errors.New("not kvm") } nete, err := updateNetwork(d, domcfg) if err != nil { log.Info("updateNetwork() failed", err) - return errors.New("updateNetwork() failed") + return alle, errors.New("updateNetwork() failed") } + for _, e := range nete { alle = append(alle, e) } + log.Info("TODO: fix updateDisk() change events") + log.Info("TODO: fix updateDisk() change events") + log.Info("TODO: fix updateDisk() change events") if !updateDisk(d, domcfg) { - return errors.New("updateDisk() failed") + return alle, errors.New("updateDisk() failed") } + if alle == nil { log.Info("libvirt xml import worked. nothing changed", domcfg.Name) - return nil + return alle, nil } log.Info("libvirt xml import worked. droplet changed", domcfg.Name) // log.Info("all change events", alle) @@ -187,7 +193,7 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) error { for _, e := range alle { me.events.Events = append(me.events.Events, e) } - return nil + return alle, nil } // returns false if something went wrong |
