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

Method GenerateJitRunnerConfig

util/github/scalesets/runners.go:33–72  ·  view source on GitHub ↗
(ctx context.Context, runnerName string, scaleSetID int)

Source from the content-addressed store, hash-verified

31}
32
33func (s *ScaleSetClient) GenerateJitRunnerConfig(ctx context.Context, runnerName string, scaleSetID int) (_ params.RunnerScaleSetJitRunnerConfig, err error) {
34 s.recordOperation("GenerateJitRunnerConfig")
35 defer func() {
36 if err != nil {
37 s.recordFailedOperation("GenerateJitRunnerConfig")
38 }
39 }()
40
41 runnerSettings := scaleSetJitRunnerConfig{
42 Name: runnerName,
43 WorkFolder: "_work",
44 }
45
46 body, err := json.Marshal(runnerSettings)
47 if err != nil {
48 return params.RunnerScaleSetJitRunnerConfig{}, err
49 }
50
51 if err := s.ensureAdminInfo(ctx); err != nil {
52 return params.RunnerScaleSetJitRunnerConfig{}, fmt.Errorf("failed to ensure admin info: %w", err)
53 }
54
55 jitConfigPath := fmt.Sprintf("%s/%d/generatejitconfig", scaleSetEndpoint, scaleSetID)
56 req, err := s.newActionsRequest(ctx, http.MethodPost, jitConfigPath, bytes.NewBuffer(body))
57 if err != nil {
58 return params.RunnerScaleSetJitRunnerConfig{}, fmt.Errorf("failed to create request: %w", err)
59 }
60
61 resp, err := s.Do(req)
62 if err != nil {
63 return params.RunnerScaleSetJitRunnerConfig{}, fmt.Errorf("request failed for %s: %w", req.URL.String(), err)
64 }
65 defer resp.Body.Close()
66
67 var runnerJitConfig params.RunnerScaleSetJitRunnerConfig
68 if err := json.NewDecoder(resp.Body).Decode(&runnerJitConfig); err != nil {
69 return params.RunnerScaleSetJitRunnerConfig{}, fmt.Errorf("failed to decode response: %w", err)
70 }
71 return runnerJitConfig, nil
72}
73
74func (s *ScaleSetClient) GetRunner(ctx context.Context, runnerID int64) (_ params.RunnerReference, err error) {
75 s.recordOperation("GetRunner")

Callers 1

handleScaleUpMethod · 0.80

Calls 8

recordOperationMethod · 0.95
recordFailedOperationMethod · 0.95
ensureAdminInfoMethod · 0.95
newActionsRequestMethod · 0.95
DoMethod · 0.95
CloseMethod · 0.65
MarshalMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected