applyInstanceUpdates applies parameter updates to the instance
(instance *Instance, param params.UpdateInstanceParams)
| 345 | |
| 346 | // applyInstanceUpdates applies parameter updates to the instance |
| 347 | func (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 = ¶m.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 | |
| 398 | func (s *sqlDatabase) ForceUpdateInstance(ctx context.Context, instanceName string, param params.UpdateInstanceParams) (params.Instance, error) { |
| 399 | return s.updateInstance(ctx, instanceName, param, true) |
no test coverage detected