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

Method sqlToParamsInstance

database/sql/util.go:37–133  ·  view source on GitHub ↗
(instance Instance)

Source from the content-addressed store, hash-verified

35)
36
37func (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

Callers 7

ListEntityInstancesMethod · 0.95
GetInstanceMethod · 0.95
updateInstanceMethod · 0.95
listInstancesBatchedMethod · 0.95
sqlToCommonPoolMethod · 0.95
sqlToCommonScaleSetMethod · 0.95

Calls 4

unsealAndUnmarshalMethod · 0.95
StringMethod · 0.45

Tested by

no test coverage detected