diff options
| author | Jeff Carr <[email protected]> | 2024-10-26 05:17:51 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-26 05:17:51 -0500 |
| commit | 0dc393896c640d220a0825b56cc991e91963b7f9 (patch) | |
| tree | 3c3bd515e61c86bd66a764a740159deda66ce9d3 | |
| parent | 11f0cd97b596c2b08936edc2a99c5dac38df7637 (diff) | |
still works
Signed-off-by: Jeff Carr <[email protected]>
| -rw-r--r-- | addDroplet.go | 2 | ||||
| -rw-r--r-- | http.go | 2 | ||||
| -rw-r--r-- | junk.xml | 246 | ||||
| -rw-r--r-- | main.go | 3 | ||||
| -rw-r--r-- | start.go | 22 | ||||
| -rw-r--r-- | structs.go | 10 |
6 files changed, 10 insertions, 275 deletions
diff --git a/addDroplet.go b/addDroplet.go index c2d15b8..25c729d 100644 --- a/addDroplet.go +++ b/addDroplet.go @@ -9,9 +9,9 @@ import ( "github.com/google/uuid" pb "go.wit.com/lib/protobuf/virtbuf" + "go.wit.com/lib/virtigoxml" "go.wit.com/log" "libvirt.org/go/libvirtxml" - "go.wit.com/lib/virtigoxml" ) // import a libvirt xml file @@ -8,8 +8,8 @@ import ( "go.wit.com/lib/gui/shell" pb "go.wit.com/lib/protobuf/virtbuf" - "go.wit.com/log" "go.wit.com/lib/virtigoxml" + "go.wit.com/log" ) // remove '?' part and trailing '/' diff --git a/junk.xml b/junk.xml deleted file mode 100644 index 4372885..0000000 --- a/junk.xml +++ /dev/null @@ -1,246 +0,0 @@ -<domain type='kvm' id='7'> - <name>pihole.wit.com</name> - <uuid>2c411574-ff8a-46f2-a789-dde856103655</uuid> - <metadata> - <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0"> - <libosinfo:os id="http://debian.org/debian/12"/> - </libosinfo:libosinfo> - </metadata> - <memory unit='KiB'>2097152</memory> - <currentMemory unit='KiB'>2097152</currentMemory> - <vcpu placement='static'>2</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc-q35-9.0'>hvm</type> - <boot dev='hd'/> - </os> - <features> - <acpi/> - <apic/> - <vmport state='off'/> - </features> - <cpu mode='host-passthrough' check='none' migratable='on'/> - <clock offset='utc'> - <timer name='rtc' tickpolicy='catchup'/> - <timer name='pit' tickpolicy='delay'/> - <timer name='hpet' present='no'/> - </clock> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <pm> - <suspend-to-mem enabled='no'/> - <suspend-to-disk enabled='no'/> - </pm> - <devices> - <emulator>/usr/bin/qemu-system-x86_64</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='/home/nfs2/pihole.wit.com.qcow2' index='1'/> - <backingStore/> - <target dev='vda' bus='virtio'/> - <alias name='virtio-disk0'/> - <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> - </disk> - <controller type='usb' index='0' model='qemu-xhci' ports='15'> - <alias name='usb'/> - <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> - </controller> - <controller type='pci' index='0' model='pcie-root'> - <alias name='pcie.0'/> - </controller> - <controller type='pci' index='1' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='1' port='0x10'/> - <alias name='pci.1'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> - </controller> - <controller type='pci' index='2' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='2' port='0x11'/> - <alias name='pci.2'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> - </controller> - <controller type='pci' index='3' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='3' port='0x12'/> - <alias name='pci.3'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> - </controller> - <controller type='pci' index='4' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='4' port='0x13'/> - <alias name='pci.4'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> - </controller> - <controller type='pci' index='5' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='5' port='0x14'/> - <alias name='pci.5'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> - </controller> - <controller type='pci' index='6' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='6' port='0x15'/> - <alias name='pci.6'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/> - </controller> - <controller type='pci' index='7' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='7' port='0x16'/> - <alias name='pci.7'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/> - </controller> - <controller type='pci' index='8' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='8' port='0x17'/> - <alias name='pci.8'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/> - </controller> - <controller type='pci' index='9' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='9' port='0x18'/> - <alias name='pci.9'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/> - </controller> - <controller type='pci' index='10' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='10' port='0x19'/> - <alias name='pci.10'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/> - </controller> - <controller type='pci' index='11' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='11' port='0x1a'/> - <alias name='pci.11'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/> - </controller> - <controller type='pci' index='12' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='12' port='0x1b'/> - <alias name='pci.12'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/> - </controller> - <controller type='pci' index='13' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='13' port='0x1c'/> - <alias name='pci.13'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/> - </controller> - <controller type='pci' index='14' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='14' port='0x1d'/> - <alias name='pci.14'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/> - </controller> - <controller type='pci' index='15' model='pcie-root-port'> - <model name='pcie-root-port'/> - <target chassis='15' port='0x1e'/> - <alias name='pci.15'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x6'/> - </controller> - <controller type='pci' index='16' model='pcie-to-pci-bridge'> - <model name='pcie-pci-bridge'/> - <alias name='pci.16'/> - <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> - </controller> - <controller type='sata' index='0'> - <alias name='ide'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> - </controller> - <controller type='virtio-serial' index='0'> - <alias name='virtio-serial0'/> - <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> - </controller> - <controller type='scsi' index='0' model='lsilogic'> - <alias name='scsi0'/> - <address type='pci' domain='0x0000' bus='0x10' slot='0x01' function='0x0'/> - </controller> - <interface type='bridge'> - <mac address='52:54:00:fb:7e:b1'/> - <source bridge='worldbr'/> - <target dev='tap0'/> - <model type='virtio'/> - <alias name='net0'/> - <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> - </interface> - <serial type='pty'> - <source path='/dev/pts/12'/> - <target type='isa-serial' port='0'> - <model name='isa-serial'/> - </target> - <alias name='serial0'/> - </serial> - <console type='pty' tty='/dev/pts/12'> - <source path='/dev/pts/12'/> - <target type='serial' port='0'/> - <alias name='serial0'/> - </console> - <channel type='unix'> - <source mode='bind' path='/run/libvirt/qemu/channel/7-pihole.wit.com/org.qemu.guest_agent.0'/> - <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> - <alias name='channel0'/> - <address type='virtio-serial' controller='0' bus='0' port='1'/> - </channel> - <channel type='spicevmc'> - <target type='virtio' name='com.redhat.spice.0' state='disconnected'/> - <alias name='channel1'/> - <address type='virtio-serial' controller='0' bus='0' port='2'/> - </channel> - <input type='tablet' bus='usb'> - <alias name='input0'/> - <address type='usb' bus='0' port='1'/> - </input> - <input type='mouse' bus='ps2'> - <alias name='input1'/> - </input> - <input type='keyboard' bus='ps2'> - <alias name='input2'/> - </input> - <graphics type='spice' port='5921' autoport='no' listen='0.0.0.0'> - <listen type='address' address='0.0.0.0'/> - <image compression='off'/> - </graphics> - <sound model='ich9'> - <alias name='sound0'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/> - </sound> - <audio id='1' type='spice'/> - <video> - <model type='virtio' heads='1' primary='yes'/> - <alias name='video0'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> - </video> - <redirdev bus='usb' type='spicevmc'> - <alias name='redir0'/> - <address type='usb' bus='0' port='2'/> - </redirdev> - <redirdev bus='usb' type='spicevmc'> - <alias name='redir1'/> - <address type='usb' bus='0' port='3'/> - </redirdev> - <watchdog model='itco' action='reset'> - <alias name='watchdog0'/> - </watchdog> - <memballoon model='virtio'> - <alias name='balloon0'/> - <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> - </memballoon> - <rng model='virtio'> - <backend model='random'>/dev/urandom</backend> - <alias name='rng0'/> - <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> - </rng> - </devices> - <seclabel type='dynamic' model='apparmor' relabel='yes'> - <label>libvirt-2c411574-ff8a-46f2-a789-dde856103655</label> - <imagelabel>libvirt-2c411574-ff8a-46f2-a789-dde856103655</imagelabel> - </seclabel> - <seclabel type='dynamic' model='dac' relabel='yes'> - <label>+64055:+64055</label> - <imagelabel>+64055:+64055</imagelabel> - </seclabel> -</domain> - @@ -11,8 +11,8 @@ import ( "github.com/google/uuid" "go.wit.com/dev/alexflint/arg" pb "go.wit.com/lib/protobuf/virtbuf" - "go.wit.com/log" "go.wit.com/lib/virtigoxml" + "go.wit.com/log" ) var Version string @@ -46,6 +46,7 @@ func main() { u := uuid.New() me.events.Uuid = u.String() me.events.Version = "dirty v1" + me.dmap = make(map[*pb.Droplet]*DropletT) err := cfgfile() if err != nil { @@ -39,25 +39,3 @@ func newAddXml(domcfg *libvirtxml.Domain, filename string) error { return virtigoxml.AddDefaultXml(domcfg, string(pfile)) } - -/* - -func findDisk(filename string) string { - for _, dirname := range me.cluster.Dirs { - // log.Info("look in dir", dirname) - var count int - newdir, _ := os.ReadDir(dirname) - for _, file := range newdir { - count += 1 - if file.Name() == filename { - log.Info("Found file", filename, "in", dirname) - return filepath.Join(dirname, file.Name()) - } - } - if count == 0 { - log.Info("Warning? dirname", dirname, "was empty. Not mounted?") - } - } - return "" -} -*/ @@ -21,12 +21,14 @@ func (b *virtigoT) Enable() { // this app's variables type virtigoT struct { - cluster *pb.Cluster - events *pb.Events + cluster *pb.Cluster // basic cluster settings + delay time.Duration // how often to poll the hypervisors + pbdrop *pb.Droplets // the protobuf droplets + events *pb.Events // cluster events + dmap map[*pb.Droplet]*DropletT // map to the local struct names []string hypers []*HyperT - droplets []*DropletT - delay time.Duration // how often to poll the hypervisors + droplets []*DropletT killcount int unstable time.Time // the last time the cluster was incorrect changed bool |
