summaryrefslogtreecommitdiff
path: root/addDroplet.go
blob: 215f4a469c5ef49c9fd86861f32454e60e48d911 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright 2024 WIT.COM Inc Licensed GPL 3.0

package main

import (
	"errors"
	"fmt"

	"libvirt.org/go/libvirtxml"
)

func addDroplet(domcfg *libvirtxml.Domain) (*DropletT, error) {
	var found *DropletT
	if domcfg == nil {
		return nil, errors.New("domcfg == nil")
	}
//	fmt.Printf("Virt type %s\n", domcfg.Type)
//	fmt.Printf("Virt name %s\n", domcfg.Name)
//	fmt.Printf("Virt UUID %s\n", domcfg.UUID)
//	fmt.Printf("Virt Memory %d %s\n", domcfg.Memory.Value, domcfg.Memory.Unit)

	for _, d := range me.droplets {
		if d.pb.Hostname == domcfg.Name {
			if d.pb.Uuid == domcfg.UUID {
				fmt.Println("FOUND NAME", domcfg.Name, domcfg.UUID)
				fmt.Println("CHANGED UUID", d.pb.Uuid, domcfg.UUID)
			} else {
				d.pb.Uuid = domcfg.UUID
				me.changed = true
			}
			if found == nil {
				found = d
			} else {
				fmt.Println("FOUND TWICE", d.pb.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("FOUND UUID WITH MATCHING NAME", domcfg.Name, domcfg.UUID)
			} else {
				fmt.Println("FOUND UUID WITH MIS-MATCHED NAME", domcfg.Name, domcfg.UUID)
				return d, errors.New("UUID with mis-matched names")
			}
		}
	}

	// test add some ethernet devices
	macs := getMacs(domcfg)
	fmt.Printf("Virt mac addr:%s\n", macs)
	return nil, errors.New("not found")
}