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

Method applyInstanceUpdates

database/sql/instances.go:347–396  ·  view source on GitHub ↗

applyInstanceUpdates applies parameter updates to the instance

(instance *Instance, param params.UpdateInstanceParams)

Source from the content-addressed store, hash-verified

345
346// applyInstanceUpdates applies parameter updates to the instance
347func (s *sqlDatabase) applyInstanceUpdates(instance *Instance, param params.UpdateInstanceParams) error {
348 // Simple field updates
349 if param.AgentID != 0 {
350 instance.AgentID = param.AgentID
351 }
352 if param.ProviderID != "" {
353 instance.ProviderID = &param.ProviderID
354 }
355 if param.OSName != "" {
356 instance.OSName = param.OSName
357 }
358 if param.OSVersion != "" {
359 instance.OSVersion = param.OSVersion
360 }
361 if string(param.RunnerStatus) != "" {
362 instance.RunnerStatus = param.RunnerStatus
363 }
364 if param.Heartbeat != nil {
365 instance.Heartbeat = *param.Heartbeat
366 }
367 if param.Status != "" {
368 instance.Status = param.Status
369 }
370 if param.CreateAttempt != 0 {
371 instance.CreateAttempt = param.CreateAttempt
372 }
373 if param.TokenFetched != nil {
374 instance.TokenFetched = *param.TokenFetched
375 }
376
377 // Complex field updates
378 if param.Capabilities != nil {
379 asJs, err := json.Marshal(*param.Capabilities)
380 if err != nil {
381 return runnerErrors.NewBadRequestError("invalid capabilities: %s", err)
382 }
383 instance.Capabilities = asJs
384 }
385
386 if param.JitConfiguration != nil {
387 secret, err := s.marshalAndSeal(param.JitConfiguration)
388 if err != nil {
389 return fmt.Errorf("error marshalling jit config: %w", err)
390 }
391 instance.JitConfiguration = secret
392 }
393
394 instance.ProviderFault = param.ProviderFault
395 return nil
396}
397
398func (s *sqlDatabase) ForceUpdateInstance(ctx context.Context, instanceName string, param params.UpdateInstanceParams) (params.Instance, error) {
399 return s.updateInstance(ctx, instanceName, param, true)

Callers 1

updateInstanceMethod · 0.95

Calls 2

marshalAndSealMethod · 0.95
MarshalMethod · 0.45

Tested by

no test coverage detected