diff options
| author | Jeff Carr <[email protected]> | 2024-10-31 06:46:16 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-31 06:46:16 -0500 |
| commit | 2ab607246e19b79b11c19fe6ca17d4015966a0ef (patch) | |
| tree | b989a1a9cf7c7389083bbb8c637fe360ece226d7 /importXML.go | |
| parent | 5c3543864db493bdf87375844f9d3b829a31d985 (diff) | |
change name to virtigolib
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'importXML.go')
| -rw-r--r-- | importXML.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/importXML.go b/importXML.go new file mode 100644 index 0000000..e93102b --- /dev/null +++ b/importXML.go @@ -0,0 +1,42 @@ +// Copyright 2024 WIT.COM Inc Licensed GPL 3.0 + +package virtigolib + +import ( + "errors" + "fmt" + + pb "go.wit.com/lib/protobuf/virtbuf" + "go.wit.com/log" + "libvirt.org/go/libvirtxml" +) + +// import a libvirt xml domain +func ImportXML(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 = new(pb.Droplet) + d.Hostname = domcfg.Name + d.Uuid = domcfg.UUID + d.StartState = pb.DropletState_OFF + d.Current.State = pb.DropletState_UNKNOWN + + alle, err := updateDroplet(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 +} |
