handle moves of VMs not in inventory
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-10-15 16:56:06 +11:00
parent 2a9489619d
commit b07ed9ee09
2 changed files with 40 additions and 6 deletions

View File

@@ -106,16 +106,18 @@ func (h *Handler) VmModifyEvent(w http.ResponseWriter, r *http.Request) {
params.UpdateType = "reconfigure"
}
case "config.managedBy": // This changes when a VM becomes a placeholder or vice versa
if change["newValue"] == "(extensionKey = \"com.vmware.vcDr\", type = \"placeholderVm\")" {
params.PlaceholderChange = sql.NullString{String: "placeholderVm", Valid: true}
h.Logger.Debug("placeholderVm")
changeFound = true
params.UpdateType = "srm"
} else if change["newValue"] == "<unset>" {
params.PlaceholderChange = sql.NullString{String: "Vm", Valid: true}
h.Logger.Debug("vm")
changeFound = true
params.UpdateType = "srm"
} else if change["newValue"] == "testVm" {
h.Logger.Debug("testVm")
params.PlaceholderChange = sql.NullString{String: "testVm", Valid: true}
changeFound = true
params.UpdateType = "srm"
@@ -217,15 +219,15 @@ func (h *Handler) VmModifyEvent(w http.ResponseWriter, r *http.Request) {
// TODO Add a record to the inventory table for this VM
h.Logger.Info("Received VM modify event for a VM not currently in the inventory. Adding to inventory")
iid, err := h.AddVmToInventory(event, ctx, unixTimestamp)
if err != nil {
h.Logger.Error("Received error adding VM to inventory", "error", err)
iid, err2 := h.AddVmToInventory(event, ctx, unixTimestamp)
if err2 != nil {
h.Logger.Error("Received error adding VM to inventory", "error", err2)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusInternalServerError)
json.NewEncoder(w).Encode(map[string]string{
"status": "ERROR",
"message": fmt.Sprintf("Valid request but experienced error adding vm id '%s' in datacenter name '%s' to inventory table : %s",
event.CloudEvent.Data.VM.VM.Value, event.CloudEvent.Data.Datacenter.Name, err),
event.CloudEvent.Data.VM.VM.Value, event.CloudEvent.Data.Datacenter.Name, err2),
})
return
}