improve datacenter name handling
Some checks are pending
CI / Lint (push) Waiting to run
CI / Test (push) Waiting to run
CI / End-to-End (push) Waiting to run
CI / Publish Docker (push) Blocked by required conditions
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-13 11:28:09 +10:00
parent 4f8aff1ab8
commit 5affdb8eb1
2 changed files with 17 additions and 6 deletions

View File

@@ -175,7 +175,8 @@ func (v *Vcenter) FindVMByID(vmID 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)
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
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
vmRef := types.ManagedObjectReference{
Type: "VirtualMachine",
@@ -203,12 +210,11 @@ func (v *Vcenter) FindVMByIDWithDatacenter(vmID string, dcID string) (*VmPropert
var vm mo.VirtualMachine
//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 {
v.Logger.Debug("Found VM", "vm", vm)
return &VmProperties{
Datacenter: datacenter.Name(),
Datacenter: dcName,
Vm: vm,
}, nil
} else if _, ok := err.(*find.NotFoundError); !ok {

View File

@@ -79,8 +79,13 @@ func (h *Handler) VmCreate(w http.ResponseWriter, r *http.Request) {
//prettyPrint(vmObject)
// calculate VM properties we want to store
numRam = vmObject.Vm.Config.Hardware.MemoryMB
numVcpus = vmObject.Vm.Config.Hardware.NumCPU * vmObject.Vm.Config.Hardware.NumCoresPerSocket
if vmObject.Vm.Config != nil {
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()
if err != nil {