improve datacenter name handling
This commit is contained in:
@@ -175,7 +175,8 @@ func (v *Vcenter) FindVMByID(vmID string) (*VmProperties, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v *Vcenter) FindVMByIDWithDatacenter(vmID string, dcID string) (*VmProperties, error) {
|
func (v *Vcenter) FindVMByIDWithDatacenter(vmID string, dcID string) (*VmProperties, error) {
|
||||||
|
var dcName string
|
||||||
|
var err error
|
||||||
v.Logger.Debug("searching for vm id", "vm_id", vmID, "datacenter_id", dcID)
|
v.Logger.Debug("searching for vm id", "vm_id", vmID, "datacenter_id", dcID)
|
||||||
|
|
||||||
finder := find.NewFinder(v.client.Client, true)
|
finder := find.NewFinder(v.client.Client, true)
|
||||||
@@ -195,6 +196,12 @@ func (v *Vcenter) FindVMByIDWithDatacenter(vmID string, dcID string) (*VmPropert
|
|||||||
// Use finder.SetDatacenter to set the datacenter
|
// Use finder.SetDatacenter to set the datacenter
|
||||||
finder.SetDatacenter(datacenter)
|
finder.SetDatacenter(datacenter)
|
||||||
|
|
||||||
|
dcName, err = datacenter.ObjectName(v.ctx)
|
||||||
|
if err != nil {
|
||||||
|
v.Logger.Error("Couldn't find the name of the datacenter", "error", err)
|
||||||
|
dcName = ""
|
||||||
|
}
|
||||||
|
|
||||||
// Create a ManagedObjectReference for the VM
|
// Create a ManagedObjectReference for the VM
|
||||||
vmRef := types.ManagedObjectReference{
|
vmRef := types.ManagedObjectReference{
|
||||||
Type: "VirtualMachine",
|
Type: "VirtualMachine",
|
||||||
@@ -203,12 +210,11 @@ func (v *Vcenter) FindVMByIDWithDatacenter(vmID string, dcID string) (*VmPropert
|
|||||||
|
|
||||||
var vm mo.VirtualMachine
|
var vm mo.VirtualMachine
|
||||||
//err := v.client.RetrieveOne(v.ctx, vmRef, []string{"config", "name"}, &vm)
|
//err := v.client.RetrieveOne(v.ctx, vmRef, []string{"config", "name"}, &vm)
|
||||||
err := v.client.RetrieveOne(v.ctx, vmRef, nil, &vm)
|
err = v.client.RetrieveOne(v.ctx, vmRef, nil, &vm)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
v.Logger.Debug("Found VM", "vm", vm)
|
v.Logger.Debug("Found VM", "vm", vm)
|
||||||
return &VmProperties{
|
return &VmProperties{
|
||||||
Datacenter: datacenter.Name(),
|
Datacenter: dcName,
|
||||||
Vm: vm,
|
Vm: vm,
|
||||||
}, nil
|
}, nil
|
||||||
} else if _, ok := err.(*find.NotFoundError); !ok {
|
} else if _, ok := err.(*find.NotFoundError); !ok {
|
||||||
|
@@ -79,8 +79,13 @@ func (h *Handler) VmCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
//prettyPrint(vmObject)
|
//prettyPrint(vmObject)
|
||||||
|
|
||||||
// calculate VM properties we want to store
|
// calculate VM properties we want to store
|
||||||
numRam = vmObject.Vm.Config.Hardware.MemoryMB
|
if vmObject.Vm.Config != nil {
|
||||||
numVcpus = vmObject.Vm.Config.Hardware.NumCPU * vmObject.Vm.Config.Hardware.NumCoresPerSocket
|
numRam = vmObject.Vm.Config.Hardware.MemoryMB
|
||||||
|
numVcpus = vmObject.Vm.Config.Hardware.NumCPU * vmObject.Vm.Config.Hardware.NumCoresPerSocket
|
||||||
|
} else {
|
||||||
|
h.Logger.Error("Empty VM config")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
err = vc.Logout()
|
err = vc.Logout()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user