Skip to content

Commit 4ca539c

Browse files
committed
Octavia LBaaSv2: Allow setting an empty members list
1 parent 1effcf5 commit 4ca539c

3 files changed

Lines changed: 25 additions & 1 deletion

File tree

openstack/loadbalancer/v2/pools/requests.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ func (opts BatchUpdateMemberOpts) ToBatchMemberUpdateMap() (map[string]interface
354354

355355
// BatchUpdateMembers updates the pool members in batch
356356
func BatchUpdateMembers(c *gophercloud.ServiceClient, poolID string, opts []BatchUpdateMemberOpts) (r UpdateMembersResult) {
357-
var members []map[string]interface{}
357+
members := []map[string]interface{}{}
358358
for _, opt := range opts {
359359
b, err := opt.ToBatchMemberUpdateMap()
360360
if err != nil {

openstack/loadbalancer/v2/pools/testing/fixtures.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,3 +438,18 @@ func HandleMembersUpdateSuccessfully(t *testing.T) {
438438
w.WriteHeader(http.StatusAccepted)
439439
})
440440
}
441+
442+
// HandleEmptyMembersUpdateSuccessfully sets up the test server to respond to an empty batch member Update request.
443+
func HandleEmptyMembersUpdateSuccessfully(t *testing.T) {
444+
th.Mux.HandleFunc("/v2.0/lbaas/pools/332abe93-f488-41ba-870b-2ac66be7f853/members", func(w http.ResponseWriter, r *http.Request) {
445+
th.TestMethod(t, r, "PUT")
446+
th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
447+
th.TestHeader(t, r, "Accept", "application/json")
448+
th.TestHeader(t, r, "Content-Type", "application/json")
449+
th.TestJSONRequest(t, r, `{
450+
"members": []
451+
}`)
452+
453+
w.WriteHeader(http.StatusAccepted)
454+
})
455+
}

openstack/loadbalancer/v2/pools/testing/requests_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,15 @@ func TestBatchUpdateMembers(t *testing.T) {
293293
th.AssertNoErr(t, res.Err)
294294
}
295295

296+
func TestEmptyBatchUpdateMembers(t *testing.T) {
297+
th.SetupHTTP()
298+
defer th.TeardownHTTP()
299+
HandleEmptyMembersUpdateSuccessfully(t)
300+
301+
res := pools.BatchUpdateMembers(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", []pools.BatchUpdateMemberOpts{})
302+
th.AssertNoErr(t, res.Err)
303+
}
304+
296305
func TestRequiredBatchUpdateMemberOpts(t *testing.T) {
297306
th.SetupHTTP()
298307
defer th.TeardownHTTP()

0 commit comments

Comments
 (0)