summaryrefslogtreecommitdiff
path: root/xml.go
diff options
context:
space:
mode:
Diffstat (limited to 'xml.go')
-rw-r--r--xml.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/xml.go b/xml.go
new file mode 100644
index 0000000..2b1e7bb
--- /dev/null
+++ b/xml.go
@@ -0,0 +1,58 @@
+// Copyright 2024 WIT.COM Inc Licensed GPL 3.0
+
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "go.wit.com/log"
+ "libvirt.org/go/libvirtxml"
+)
+
+func makeXml(d *DropletT) {
+ log.Info("create new xml file for:", d.Hostname)
+ domcfg := &libvirtxml.Domain{}
+
+ addDefaults(domcfg, d.Hostname)
+ addDefaults(domcfg, "standard.x86")
+ addDefaults(domcfg, "memory")
+ addDefaults(domcfg, "network")
+ addDefaults(domcfg, "spice")
+ addDefaults(domcfg, "qcow")
+
+ 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 %s\n", domcfg.Memory)
+
+ xmldoc, err := domcfg.Marshal()
+
+ if err != nil {
+ fmt.Println("can't make xml file error:\n", err)
+ return
+ }
+
+ // fmt.Printf("Virt type %s\n", xmldoc)
+
+ outfile := "/tmp/" + d.Hostname + ".xml"
+ regfile, _ := os.OpenFile(outfile, os.O_RDWR|os.O_CREATE, 0666)
+ fmt.Fprintln(regfile, xmldoc)
+
+ log.Info("File is in", outfile)
+}
+
+func addDefaults(d *libvirtxml.Domain, filename string) {
+ fullname := "resources/xml/" + filename + ".xml"
+ pfile, err := resources.ReadFile(fullname)
+ if err != nil {
+ log.Println("ERROR:", err)
+ return
+ }
+
+ err = d.Unmarshal(string(pfile))
+ if err != nil {
+ log.Info("Marshal failed on file", filename)
+ return
+ }
+}