Skip to content

Commit 137909a

Browse files
Swopxvzf
authored andcommitted
feat: add provider config in API responses
1 parent e6b3cfb commit 137909a

File tree

2 files changed

+57
-13
lines changed

2 files changed

+57
-13
lines changed

e2e/api_test.go

+40-10
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,15 @@ var _ = Describe("API", Ordered, func() {
8989
"%s:%s:%s": {
9090
"last_updated_at": "%s",
9191
"acquired": null,
92-
"known": []
92+
"known": [],
93+
"config": {
94+
"stabilize_duration": %d,
95+
"ttl": %d,
96+
"expected_request_count": %d,
97+
"delay_assignment_count": %d
98+
}
9399
}
94-
}`, owner, repo, baseRef, now.Format(time.RFC3339))
100+
}`, owner, repo, baseRef, now.Format(time.RFC3339), configHelper.DefaultConfigRepoStabilizeDurationSeconds, configHelper.DefaultConfigRepoTTLSeconds, configHelper.DefaultConfigRepoExpectedRequestCount, configHelper.DefaultConfigRepoDelayAssignmentCount)
95101

96102
Expect(providerListingRespBody).To(MatchJSON(expectedPayload))
97103
})
@@ -122,9 +128,15 @@ var _ = Describe("API", Ordered, func() {
122128
"%s:%s:%s": {
123129
"last_updated_at": "%s",
124130
"acquired": %s,
125-
"known": %s
131+
"known": %s,
132+
"config": {
133+
"stabilize_duration": %d,
134+
"ttl": %d,
135+
"expected_request_count": %d,
136+
"delay_assignment_count": %d
137+
}
126138
}
127-
}`, owner, repo, baseRef, providerStateOpts.LastUpdatedAt.Format(time.RFC3339), acquiredLeaseRequestPayloadJSON, leaseRequestsPayloadsJSON)
139+
}`, owner, repo, baseRef, providerStateOpts.LastUpdatedAt.Format(time.RFC3339), acquiredLeaseRequestPayloadJSON, leaseRequestsPayloadsJSON, configHelper.DefaultConfigRepoStabilizeDurationSeconds, configHelper.DefaultConfigRepoTTLSeconds, configHelper.DefaultConfigRepoExpectedRequestCount, configHelper.DefaultConfigRepoDelayAssignmentCount)
128140

129141
Expect(providerListingRespBody).To(MatchJSON(expectedPayload))
130142
})
@@ -159,8 +171,14 @@ var _ = Describe("API", Ordered, func() {
159171
expectedPayload := fmt.Sprintf(`{
160172
"last_updated_at": "%s",
161173
"acquired": null,
162-
"known": []
163-
}`, now.Format(time.RFC3339))
174+
"known": [],
175+
"config": {
176+
"stabilize_duration": %d,
177+
"ttl": %d,
178+
"expected_request_count": %d,
179+
"delay_assignment_count": %d
180+
}
181+
}`, now.Format(time.RFC3339), configHelper.DefaultConfigRepoStabilizeDurationSeconds, configHelper.DefaultConfigRepoTTLSeconds, configHelper.DefaultConfigRepoExpectedRequestCount, configHelper.DefaultConfigRepoDelayAssignmentCount)
164182

165183
Expect(providerDetailsRespBody).To(MatchJSON(expectedPayload))
166184
})
@@ -190,8 +208,14 @@ var _ = Describe("API", Ordered, func() {
190208
expectedPayload := fmt.Sprintf(`{
191209
"last_updated_at": "%s",
192210
"acquired": %s,
193-
"known": %s
194-
}`, providerStateOpts.LastUpdatedAt.Format(time.RFC3339), acquiredLeaseRequestPayloadJSON, leaseRequestsPayloadsJSON)
211+
"known": %s,
212+
"config": {
213+
"stabilize_duration": %d,
214+
"ttl": %d,
215+
"expected_request_count": %d,
216+
"delay_assignment_count": %d
217+
}
218+
}`, providerStateOpts.LastUpdatedAt.Format(time.RFC3339), acquiredLeaseRequestPayloadJSON, leaseRequestsPayloadsJSON, configHelper.DefaultConfigRepoStabilizeDurationSeconds, configHelper.DefaultConfigRepoTTLSeconds, configHelper.DefaultConfigRepoExpectedRequestCount, configHelper.DefaultConfigRepoDelayAssignmentCount)
195219

196220
Expect(providerDetailsRespBody).To(MatchJSON(expectedPayload))
197221
})
@@ -220,8 +244,14 @@ var _ = Describe("API", Ordered, func() {
220244
expectedPayload := fmt.Sprintf(`{
221245
"last_updated_at": "%s",
222246
"acquired": null,
223-
"known": []
224-
}`, clk.Now().Format(time.RFC3339))
247+
"known": [],
248+
"config": {
249+
"stabilize_duration": %d,
250+
"ttl": %d,
251+
"expected_request_count": %d,
252+
"delay_assignment_count": %d
253+
}
254+
}`, clk.Now().Format(time.RFC3339), configHelper.DefaultConfigRepoStabilizeDurationSeconds, configHelper.DefaultConfigRepoTTLSeconds, configHelper.DefaultConfigRepoExpectedRequestCount, configHelper.DefaultConfigRepoDelayAssignmentCount)
225255
Expect(respBody).To(MatchJSON(expectedPayload))
226256
}
227257

internal/lease/leaseprovider.go

+17-3
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,28 @@ func (lp *leaseProviderImpl) MarshalJSON() ([]byte, error) {
254254
return []byte{}, err
255255
}
256256

257+
type providerConfigJSON struct {
258+
StabilizeDuration int `json:"stabilize_duration"`
259+
TTL int `json:"ttl"`
260+
ExpectedRequestCount int `json:"expected_request_count"`
261+
DelayAssignmentCount int `json:"delay_assignment_count"`
262+
}
263+
257264
return json.Marshal(&struct {
258-
LastUpdatedAt time.Time `json:"last_updated_at"`
259-
Acquired *RequestContext `json:"acquired"`
260-
Known []*RequestContext `json:"known"`
265+
LastUpdatedAt time.Time `json:"last_updated_at"`
266+
Acquired *RequestContext `json:"acquired"`
267+
Known []*RequestContext `json:"known"`
268+
Config providerConfigJSON `json:"config"`
261269
}{
262270
LastUpdatedAt: lp.state.lastUpdatedAt,
263271
Acquired: acquiredReqContext,
264272
Known: requestContexts,
273+
Config: providerConfigJSON{
274+
StabilizeDuration: int(lp.opts.StabilizeDuration.Seconds()),
275+
TTL: int(lp.opts.TTL.Seconds()),
276+
ExpectedRequestCount: lp.opts.ExpectedRequestCount,
277+
DelayAssignmentCount: lp.opts.DelayAssignmentCount,
278+
},
265279
})
266280
}
267281

0 commit comments

Comments
 (0)