summaryrefslogtreecommitdiff
path: root/addDroplet.go
diff options
context:
space:
mode:
Diffstat (limited to 'addDroplet.go')
-rw-r--r--addDroplet.go36
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