test unmarshal configspec
This commit is contained in:
@@ -24,6 +24,8 @@ func (h *Handler) VmModify(w http.ResponseWriter, r *http.Request) {
|
||||
params := queries.CreateUpdateParams{}
|
||||
var unixTimestamp int64
|
||||
|
||||
//re := regexp.MustCompile(`/([^/]+)/[^/]+\.vmdk$`)
|
||||
|
||||
reqBody, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
h.Logger.Error("Invalid data received", "error", err)
|
||||
@@ -52,7 +54,17 @@ func (h *Handler) VmModify(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusAccepted)
|
||||
fmt.Fprintf(w, "Processed update event but no config changes were found\n")
|
||||
} else {
|
||||
h.Logger.Debug("Received event contains config change info", "source", event.CloudEvent.Source, "vm", event.CloudEvent.Data.VM.Name)
|
||||
h.Logger.Debug("Received event contains config change info", "source", event.CloudEvent.Source,
|
||||
"vm", event.CloudEvent.Data.VM.Name, "user_name", event.CloudEvent.Data.UserName)
|
||||
|
||||
// Try to decode the config changes data
|
||||
var testConfig models.ConfigSpec
|
||||
if err := json.Unmarshal(*event.CloudEvent.Data.ConfigSpec, &testConfig); err != nil {
|
||||
h.Logger.Warn("unable to decode ConfigSpec json", "error", err)
|
||||
} else {
|
||||
h.Logger.Debug("successfully decoded ConfigSpec JSON")
|
||||
}
|
||||
|
||||
configChanges = h.processConfigChanges(event.CloudEvent.Data.ConfigChanges.Modified)
|
||||
//prettyPrint(configChanges)
|
||||
|
||||
@@ -85,6 +97,15 @@ func (h *Handler) VmModify(w http.ResponseWriter, r *http.Request) {
|
||||
if strings.Contains(change["type"], "config.hardware.device") &&
|
||||
strings.Contains(event.CloudEvent.Data.FullFormattedMessage, ".vmdk") {
|
||||
|
||||
// TODO - query current disk size from Inventory table and only create an update if the size is now changed
|
||||
if testConfig.DeviceChange != nil {
|
||||
for i := range testConfig.DeviceChange {
|
||||
if testConfig.DeviceChange[i].Device.Backing != nil {
|
||||
h.Logger.Debug("Found backing in configspec", "backing", testConfig.DeviceChange[i].Device.Backing)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - recalculate total disk size
|
||||
h.Logger.Debug("Detected config change for VM disk")
|
||||
found = true
|
||||
|
Reference in New Issue
Block a user