diff options
| author | Jeff Carr <[email protected]> | 2024-10-26 08:54:28 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-26 08:54:28 -0500 |
| commit | b4518e8b82df2109b75072c679122e4826b341ef (patch) | |
| tree | a501d4f3c0717a9a5acb51fbcec2b0cc232cda86 /addDroplet.go | |
| parent | 9020957ee73741a3f120ff7fd9f9afcb517e02ed (diff) | |
compiles and lists hypervisors
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'addDroplet.go')
| -rw-r--r-- | addDroplet.go | 94 |
1 files changed, 44 insertions, 50 deletions
diff --git a/addDroplet.go b/addDroplet.go index 2c98c66..7c0bb59 100644 --- a/addDroplet.go +++ b/addDroplet.go @@ -15,7 +15,7 @@ import ( ) // import a libvirt xml file -func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, []*pb.Event, error) { +func addDomainDroplet(domcfg *libvirtxml.Domain) (*pb.Droplet, []*pb.Event, error) { var alle []*pb.Event if domcfg == nil { return nil, alle, errors.New("domcfg == nil") @@ -26,26 +26,20 @@ func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, []*pb.Event, error) return nil, alle, err } if d == nil { - // this is a new unknown droplet (not in the config file) - d = new(DropletT) - - d.pb = me.cluster.AddDroplet(domcfg.UUID, domcfg.Name, 2, 2*1024*1024) - d.pb.StartState = pb.DropletState_OFF + d = me.cluster.AddDroplet(domcfg.UUID, domcfg.Name, 2, 2*1024*1024) + d.StartState = pb.DropletState_OFF d.CurrentState = pb.DropletState_UNKNOWN // if the domcfg doesn't have a uuid, make a new one here - if d.pb.Uuid == "" { + if d.Uuid == "" { u := uuid.New() - d.pb.Uuid = u.String() + d.Uuid = u.String() } - - me.droplets = append(me.droplets, d) - me.changed = true } alle, err = updateDroplet(d, domcfg) if err != nil { - log.Info("updateDroplet() failed for", d.pb.Hostname) + log.Info("updateDroplet() failed for", d.Hostname) return d, alle, errors.New("update failed for " + domcfg.Name) } log.Info("added new droplet", domcfg.Name, domcfg.UUID) @@ -53,36 +47,36 @@ func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, []*pb.Event, error) return d, alle, nil } -func findDomain(domcfg *libvirtxml.Domain) (*DropletT, error) { - var found *DropletT +func findDomain(domcfg *libvirtxml.Domain) (*pb.Droplet, error) { + var found *pb.Droplet if domcfg == nil { return nil, errors.New("domcfg == nil") } - for _, d := range me.droplets { - if d.pb.Hostname == domcfg.Name { - if d.pb.Uuid != domcfg.UUID { + for _, d := range me.cluster.Droplets { + if d.Hostname == domcfg.Name { + if d.Uuid != domcfg.UUID { if domcfg.UUID == "" { // ignore blank or nonexistent UUID's // todo: check to see if the uuid already exists ? - domcfg.UUID = d.pb.Uuid + domcfg.UUID = d.Uuid } else { - fmt.Println("Will Change UUID from", d.pb.Uuid, "to", domcfg.UUID, "for hostname", d.pb.Hostname) - d.pb.Uuid = domcfg.UUID + fmt.Println("Will Change UUID from", d.Uuid, "to", domcfg.UUID, "for hostname", d.Hostname) + d.Uuid = domcfg.UUID me.changed = true } } if found == nil { found = d } else { - fmt.Println("FOUND TWICE", d.pb.Uuid, domcfg.Name, domcfg.UUID) + fmt.Println("FOUND TWICE", d.Uuid, domcfg.Name, domcfg.UUID) return d, errors.New("Found Twice") } } - if d.pb.Uuid == domcfg.UUID { - if d.pb.Hostname != domcfg.Name { - fmt.Println("protobuf has: UUID and Name:", d.pb.Uuid, d.pb.Hostname) + if d.Uuid == domcfg.UUID { + if d.Hostname != domcfg.Name { + fmt.Println("protobuf has: UUID and Name:", d.Uuid, d.Hostname) fmt.Println("libvirt has: UUID and Name:", domcfg.UUID, domcfg.Name) fmt.Println("FOUND UUID WITH MIS-MATCHED NAME", domcfg.Name, domcfg.UUID) return d, errors.New("UUID with mis-matched names") @@ -93,7 +87,7 @@ func findDomain(domcfg *libvirtxml.Domain) (*DropletT, error) { return found, nil } -func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { +func updateDroplet(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { var alle []*pb.Event if d == nil { @@ -116,24 +110,24 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) if (domcfg.OS != nil) && (domcfg.OS.Type != nil) { // OS Type: &{Arch:x86_64 Machine:pc-i440fx-5.2 Type:hvm} t := domcfg.OS.Type - if d.pb.QemuArch != t.Arch { - e := NewChangeEvent(d.pb, "Droplet.QemuArch", d.pb.QemuArch, t.Arch) + if d.QemuArch != t.Arch { + e := NewChangeEvent(d, "Droplet.QemuArch", d.QemuArch, t.Arch) alle = append(alle, e) - d.pb.QemuArch = t.Arch + d.QemuArch = t.Arch } - if d.pb.QemuMachine != t.Machine { - e := NewChangeEvent(d.pb, "Droplet.QemuMachine", d.pb.QemuMachine, t.Machine) + if d.QemuMachine != t.Machine { + e := NewChangeEvent(d, "Droplet.QemuMachine", d.QemuMachine, t.Machine) alle = append(alle, e) - d.pb.QemuMachine = t.Machine + d.QemuMachine = t.Machine } } // check cpus - if d.pb.Cpus != int64(domcfg.VCPU.Value) { + if d.Cpus != int64(domcfg.VCPU.Value) { // fmt.Printf("cpus changed. VCPU = %+v\n", domcfg.VCPU) - fmt.Printf("cpus changed. from %d to %d\n", d.pb.Cpus, domcfg.VCPU.Value) - alle = append(alle, NewChangeEvent(d.pb, "Droplet.Cpus", d.pb.Cpus, domcfg.VCPU.Value)) - d.pb.Cpus = int64(domcfg.VCPU.Value) + fmt.Printf("cpus changed. from %d to %d\n", d.Cpus, domcfg.VCPU.Value) + alle = append(alle, NewChangeEvent(d, "Droplet.Cpus", d.Cpus, domcfg.VCPU.Value)) + d.Cpus = int64(domcfg.VCPU.Value) } // update spice port @@ -148,11 +142,11 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) if s.AutoPort == "yes" { // should ignore either way } else { - if d.pb.SpicePort != int64(s.Port) { + if d.SpicePort != int64(s.Port) { // print out, but ignore the port number - d.pb.SpicePort = int64(s.Port) + d.SpicePort = int64(s.Port) fmt.Printf("Spice Port set to = %d\n", s.Port) - alle = append(alle, NewChangeEvent(d.pb, "Droplet.SpicePort", d.pb.SpicePort, s.Port)) + alle = append(alle, NewChangeEvent(d, "Droplet.SpicePort", d.SpicePort, s.Port)) } } } @@ -197,7 +191,7 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) } // returns false if something went wrong -func updateMemory(d *DropletT, domcfg *libvirtxml.Domain) (*pb.Event, error) { +func updateMemory(d *pb.Droplet, domcfg *libvirtxml.Domain) (*pb.Event, error) { if (d == nil) || (domcfg == nil) { return nil, errors.New("domcfg == nil") } @@ -221,14 +215,14 @@ func updateMemory(d *DropletT, domcfg *libvirtxml.Domain) (*pb.Event, error) { } e := d.SetMemory(m) if e != nil { - fmt.Printf("Memory changed %s to %d %s\n", pb.HumanFormatBytes(d.pb.Memory), domcfg.Memory.Value, domcfg.Memory.Unit) - d.pb.Memory = m + fmt.Printf("Memory changed %s to %d %s\n", pb.HumanFormatBytes(d.Memory), domcfg.Memory.Value, domcfg.Memory.Unit) + d.Memory = m // me.changed = true } return e, nil } -func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { +func updateNetwork(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { var allEvents []*pb.Event if (d == nil) || (domcfg == nil) { return nil, errors.New("domcfg == nil") @@ -297,7 +291,7 @@ func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) for mac, brname := range macs { var found bool = false // log.Info("XML has mac address:", mac, brname) - for _, eth := range d.pb.Networks { + for _, eth := range d.Networks { if eth.Mac == mac { // log.Info("OKAY. FOUND ETH:", eth.Mac, eth.Name, brname) found = true @@ -319,7 +313,7 @@ func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) if !found { if checkUniqueMac(mac) { } else { - log.Info("droplet", d.pb.Hostname, "duplicate mac address", mac) + log.Info("droplet", d.Hostname, "duplicate mac address", mac) return nil, errors.New("duplicate mac address") } var eth *pb.Network @@ -329,8 +323,8 @@ func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) brname = "worldbr" } eth.Name = brname - d.pb.Networks = append(d.pb.Networks, eth) - allEvents = append(allEvents, NewChangeEvent(d.pb, "Droplet NewNetwork", "", mac+" "+brname)) + d.Networks = append(d.Networks, eth) + allEvents = append(allEvents, NewChangeEvent(d, "Droplet NewNetwork", "", mac+" "+brname)) } } @@ -350,7 +344,7 @@ func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) */ // returns false if something went wrong -func updateDisk(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { +func updateDisk(d *pb.Droplet, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { var alle []*pb.Event if (d == nil) || (domcfg == nil) { @@ -369,7 +363,7 @@ func updateDisk(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { continue } - e, err := insertFilename(d.pb, filename) + e, err := insertFilename(d, filename) if err != nil { return alle, err } @@ -380,7 +374,7 @@ func updateDisk(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { /* var found bool = false - for _, disk := range d.pb.Disks { + for _, disk := range d.Disks { if disk.Filename == filename { log.Verbose("OKAY. FOUND filename", filename) found = true @@ -390,7 +384,7 @@ func updateDisk(d *DropletT, domcfg *libvirtxml.Domain) ([]*pb.Event, error) { var disk *pb.Disk disk = new(pb.Disk) disk.Filename = filename - d.pb.Disks = append(d.pb.Disks, disk) + d.Disks = append(d.Disks, disk) log.Info("New filename", filename) me.changed = true } |
