(instance Instance)
| 35 | ) |
| 36 | |
| 37 | func (s *sqlDatabase) sqlToParamsInstance(instance Instance) (params.Instance, error) { |
| 38 | var id string |
| 39 | if instance.ProviderID != nil { |
| 40 | id = *instance.ProviderID |
| 41 | } |
| 42 | |
| 43 | var labels []string |
| 44 | if len(instance.AditionalLabels) > 0 { |
| 45 | if err := json.Unmarshal(instance.AditionalLabels, &labels); err != nil { |
| 46 | return params.Instance{}, fmt.Errorf("error unmarshalling labels: %w", err) |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | var jitConfig map[string]string |
| 51 | if len(instance.JitConfiguration) > 0 { |
| 52 | if err := s.unsealAndUnmarshal(instance.JitConfiguration, &jitConfig); err != nil { |
| 53 | return params.Instance{}, fmt.Errorf("error unmarshalling jit configuration: %w", err) |
| 54 | } |
| 55 | } |
| 56 | ret := params.Instance{ |
| 57 | ID: instance.ID.String(), |
| 58 | ProviderID: id, |
| 59 | AgentID: instance.AgentID, |
| 60 | Name: instance.Name, |
| 61 | OSType: instance.OSType, |
| 62 | OSName: instance.OSName, |
| 63 | OSVersion: instance.OSVersion, |
| 64 | OSArch: instance.OSArch, |
| 65 | Status: instance.Status, |
| 66 | RunnerStatus: instance.RunnerStatus, |
| 67 | CallbackURL: instance.CallbackURL, |
| 68 | MetadataURL: instance.MetadataURL, |
| 69 | StatusMessages: []params.StatusMessage{}, |
| 70 | CreateAttempt: instance.CreateAttempt, |
| 71 | CreatedAt: instance.CreatedAt, |
| 72 | UpdatedAt: instance.UpdatedAt, |
| 73 | TokenFetched: instance.TokenFetched, |
| 74 | JitConfiguration: jitConfig, |
| 75 | GitHubRunnerGroup: instance.GitHubRunnerGroup, |
| 76 | AditionalLabels: labels, |
| 77 | Heartbeat: instance.Heartbeat, |
| 78 | Generation: instance.Generation, |
| 79 | } |
| 80 | |
| 81 | if len(instance.Capabilities) > 0 { |
| 82 | var caps params.AgentCapabilities |
| 83 | if err := json.Unmarshal(instance.Capabilities, &caps); err == nil { |
| 84 | ret.Capabilities = caps |
| 85 | } else { |
| 86 | slog.ErrorContext(s.ctx, "failed to unmarshal capabilities", "instance_name", instance.Name, "error", err) |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | if instance.ScaleSetFkID != nil { |
| 91 | ret.ScaleSetID = *instance.ScaleSetFkID |
| 92 | ret.ProviderName = instance.ScaleSet.ProviderName |
| 93 | } |
| 94 |
no test coverage detected