summaryrefslogtreecommitdiff
path: root/importXML.go
blob: e1425ced09612902569965052adb9620fc85752f (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
// Copyright 2024 WIT.COM Inc Licensed GPL 3.0

package virtigolib

import (
	"go.wit.com/log"
	"libvirt.org/go/libvirtxml"
)

// import a libvirt xml domain
/*
func badImportXML(domcfg *libvirtxml.Domain) (*pb.Droplet, []*pb.Event, error) {
	var alle []*pb.Event
	var d *pb.Droplet
	if domcfg == nil {
		return nil, alle, errors.New("domcfg == nil")
	}

	d, err = c.InitDroplet(domcfg.Name)
	if err != nil {
		// use merge instead
		os.Exit(-1)
	}
	d.Uuid = domcfg.UUID

	alle, err := MergelibvirtDomain(d, domcfg)
	if err != nil {
		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)
	s, err := DumpNonStandardXML(domcfg)
	if err != nil {
		reason := s + "\n"
		reason = fmt.Sprintln("DumpNonStandardXML() on", domcfg.Name, "failed for", err)
		log.Info(reason)
		return d, alle, errors.New(reason)
	}
	return d, alle, nil
}
*/

func MergeXml(d *libvirtxml.Domain, xml string) error {
	err := d.Unmarshal(xml)
	if err != nil {
		log.Info("Marshal failed on file", xml)
	}
	return err
}