start processing mac addr

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-10-23 04:38:27 -05:00
parent 35a2a37940
commit 9f92891db4
1 changed files with 32 additions and 21 deletions

View File

@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"go.wit.com/log"
"libvirt.org/go/libvirtxml"
)
@ -19,11 +20,7 @@ func addDomainDroplet(domcfg *libvirtxml.Domain) (*DropletT, error) {
return d, errors.New(d.pb.Hostname + " droplet exists. need to update instead")
}
// test add some ethernet devices
macs := getMacs(domcfg)
fmt.Printf("Virt mac addr:%s\n", macs)
fmt.Println("ADD FAILED", domcfg.Name, domcfg.UUID)
log.Info("ADD FAILED", domcfg.Name, domcfg.UUID)
return nil, errors.New("not found")
}
@ -69,17 +66,8 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) bool {
return false
}
// check memory
if domcfg.Memory.Unit == "KiB" {
var m int64
m = int64(domcfg.Memory.Value * 1024)
if d.pb.Memory != m {
d.pb.Memory = m
me.changed = true
fmt.Printf("Memory changed %d, %d %s\n", d.pb.Memory, domcfg.Memory.Value, domcfg.Memory.Unit)
}
} else {
fmt.Println("Unknown Memory Unit", domcfg.Memory.Unit)
if updateMemory(d, domcfg) {
// updateMemory failed
ok = false
}
@ -96,11 +84,10 @@ func updateDroplet(d *DropletT, domcfg *libvirtxml.Domain) bool {
ok = false
}
// test add some ethernet devices
macs := getMacs(domcfg)
fmt.Printf("Virt mac addr:%s\n", macs)
// fmt.Println("UPDATE FAILED", domcfg.Name, domcfg.UUID)
if updateNetwork(d, domcfg) {
// updateNetwork failed
ok = false
}
return ok
}
@ -124,3 +111,27 @@ func updateMemory(d *DropletT, domcfg *libvirtxml.Domain) bool {
fmt.Println("Unknown Memory Unit", domcfg.Memory.Unit)
return true
}
func updateNetwork(d *DropletT, domcfg *libvirtxml.Domain) bool {
if (d == nil) || (domcfg == nil) {
return false
}
var macs []string
// Iterate over the network interfaces and print the MAC addresses
for _, iface := range domcfg.Devices.Interfaces {
if iface.MAC != nil {
// iface.MAC.Address = "aa:bb:aa:bb:aa:ff"
// fmt.Printf("MAC Address: %+v\n", iface.MAC)
// fmt.Printf("Interface: %s, MAC Address: %s\n", iface.Target.Dev, iface.MAC.Address)
macs = append(macs, iface.MAC.Address)
} else {
fmt.Printf("Interface: %s, MAC Address: not available\n", iface.Target.Dev)
}
}
// for _, iface := range domcfg.Devices.Interfaces {
log.Info("mac addrs:", macs)
return false
}