virtigo/importDomain.go

51 lines
1.3 KiB
Go

package main
import (
"errors"
"fmt"
"net/http"
pb "go.wit.com/lib/protobuf/virtbuf"
"go.wit.com/log"
)
// attempts to create a new virtual machine
func importDomain(w http.ResponseWriter, r *http.Request) (string, error) {
name := r.URL.Query().Get("domainName")
if name == "" {
result := "start failed. name is blank " + r.URL.Path
log.Warn(result)
fmt.Fprintln(w, result)
return "", errors.New(result)
}
log.Warn("name is", name)
fmt.Fprintln(w, "name is", name)
d := me.cluster.FindDropletByName(name)
if d == nil {
result := "libvirt domain " + name + " could not be found on any hypervisor"
log.Info(result)
fmt.Fprintln(w, result)
return result, errors.New(result)
}
start := fmt.Sprintf("%-9s %-20s", d.Current.Hypervisor, name)
if d.Current.State != pb.DropletState_OFF {
result := "libvirt domain " + name + " found on " + d.Current.Hypervisor
log.Info(result)
fmt.Fprintln(w, result)
}
if d.LocalOnly == "" {
result := start + " local duplicate defined (need to resolve this)"
log.Log(WARN, result)
fmt.Fprintln(w, result)
return result, nil
}
result := start + "about to attempt import "
result += "(" + d.LocalOnly + ")"
result += " " + d.Hostname
log.Log(WARN, result)
fmt.Fprintln(w, result)
return result, nil
}