MCPcopy Create free account
hub / github.com/cloudbase/garm / validateInstanceStatusTransition

Method validateInstanceStatusTransition

database/sql/instances.go:328–344  ·  view source on GitHub ↗

validateInstanceStatusTransition validates instance status state transition

(current, newStatus commonParams.InstanceStatus)

Source from the content-addressed store, hash-verified

326
327// validateInstanceStatusTransition validates instance status state transition
328func (s *sqlDatabase) validateInstanceStatusTransition(current, newStatus commonParams.InstanceStatus) error {
329 if newStatus == "" || newStatus == current {
330 return nil
331 }
332
333 allowedTransitions, ok := params.InstanceStatusTransitions[current]
334 if !ok {
335 // we need a better way to handle this. Because if we err out here, we cannot recover
336 // unless the user manually updates the instance.
337 return fmt.Errorf("Instance is in invalid state: %s", current)
338 }
339
340 if !slices.Contains(allowedTransitions, newStatus) {
341 return runnerErrors.NewBadRequestError("invalid instance status transition from %s to %s", current, newStatus)
342 }
343 return nil
344}
345
346// applyInstanceUpdates applies parameter updates to the instance
347func (s *sqlDatabase) applyInstanceUpdates(instance *Instance, param params.UpdateInstanceParams) error {

Callers 1

updateInstanceMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected