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

Method CreateRunnerScaleSet

util/github/scalesets/scalesets.go:140–171  ·  view source on GitHub ↗

CreateRunnerScaleSet creates a new runner scale set in the target GitHub entity.

(ctx context.Context, runnerScaleSet *params.RunnerScaleSet)

Source from the content-addressed store, hash-verified

138
139// CreateRunnerScaleSet creates a new runner scale set in the target GitHub entity.
140func (s *ScaleSetClient) CreateRunnerScaleSet(ctx context.Context, runnerScaleSet *params.RunnerScaleSet) (_ params.RunnerScaleSet, err error) {
141 s.recordOperation("CreateRunnerScaleSet")
142 defer func() {
143 if err != nil {
144 s.recordFailedOperation("CreateRunnerScaleSet")
145 }
146 }()
147
148 runnerScaleSet.Labels = applyDefaultLabelTypes(runnerScaleSet.Labels)
149
150 body, err := json.Marshal(runnerScaleSet)
151 if err != nil {
152 return params.RunnerScaleSet{}, err
153 }
154
155 req, err := s.newActionsRequest(ctx, http.MethodPost, scaleSetEndpoint, bytes.NewReader(body))
156 if err != nil {
157 return params.RunnerScaleSet{}, err
158 }
159
160 resp, err := s.Do(req)
161 if err != nil {
162 return params.RunnerScaleSet{}, fmt.Errorf("failed to create runner scale set: %w", err)
163 }
164 defer resp.Body.Close()
165
166 var createdRunnerScaleSet params.RunnerScaleSet
167 if err := json.NewDecoder(resp.Body).Decode(&createdRunnerScaleSet); err != nil {
168 return params.RunnerScaleSet{}, fmt.Errorf("failed to decode response: %w", err)
169 }
170 return createdRunnerScaleSet, nil
171}
172
173func (s *ScaleSetClient) UpdateRunnerScaleSet(ctx context.Context, runnerScaleSetID int, runnerScaleSet params.RunnerScaleSet) (_ params.RunnerScaleSet, err error) {
174 s.recordOperation("UpdateRunnerScaleSet")

Callers 2

CreateEntityScaleSetMethod · 0.80

Calls 7

recordOperationMethod · 0.95
recordFailedOperationMethod · 0.95
newActionsRequestMethod · 0.95
DoMethod · 0.95
applyDefaultLabelTypesFunction · 0.85
CloseMethod · 0.65
MarshalMethod · 0.45

Tested by

no test coverage detected