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

Method AcquireJobs

util/github/scalesets/jobs.go:32–68  ·  view source on GitHub ↗
(ctx context.Context, runnerScaleSetID int, messageQueueAccessToken string, requestIDs []int64)

Source from the content-addressed store, hash-verified

30}
31
32func (s *ScaleSetClient) AcquireJobs(ctx context.Context, runnerScaleSetID int, messageQueueAccessToken string, requestIDs []int64) (_ []int64, err error) {
33 s.recordOperation("AcquireJobs")
34 defer func() {
35 if err != nil {
36 s.recordFailedOperation("AcquireJobs")
37 }
38 }()
39
40 u := fmt.Sprintf("%s/%d/acquirejobs?api-version=6.0-preview", scaleSetEndpoint, runnerScaleSetID)
41
42 body, err := json.Marshal(requestIDs)
43 if err != nil {
44 return nil, err
45 }
46
47 req, err := s.newActionsRequest(ctx, http.MethodPost, u, bytes.NewBuffer(body))
48 if err != nil {
49 return nil, fmt.Errorf("failed to construct request: %w", err)
50 }
51
52 req.Header.Set("Content-Type", "application/json")
53 req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", messageQueueAccessToken))
54
55 resp, err := s.Do(req)
56 if err != nil {
57 return nil, fmt.Errorf("request failed for %s: %w", req.URL.String(), err)
58 }
59 defer resp.Body.Close()
60
61 var acquiredJobs acquireJobsResult
62 err = json.NewDecoder(resp.Body).Decode(&acquiredJobs)
63 if err != nil {
64 return nil, fmt.Errorf("failed to decode response: %w", err)
65 }
66
67 return acquiredJobs.Value, nil
68}
69
70func (s *ScaleSetClient) GetAcquirableJobs(ctx context.Context, runnerScaleSetID int) (_ params.AcquirableJobList, err error) {
71 s.recordOperation("GetAcquirableJobs")

Callers 1

handleSessionMessageMethod · 0.80

Calls 8

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

Tested by

no test coverage detected