Skip to content
This repository was archived by the owner on Aug 1, 2023. It is now read-only.

Commit 370c430

Browse files
author
Ian Duffy
committed
Add support for forced delete
Signed-off-by: Ian Duffy <[email protected]>
1 parent 680aa02 commit 370c430

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

openstack/compute/v2/servers/fixtures.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,18 @@ func HandleServerDeletionSuccessfully(t *testing.T) {
399399
})
400400
}
401401

402+
// HandleAdminPasswordChangeSuccessfully sets up the test server to respond to a server password
403+
// change request.
404+
func HandleServerForceDeletionSuccessfully(t *testing.T) {
405+
th.Mux.HandleFunc("/servers/asdfasdfasdf/action", func(w http.ResponseWriter, r *http.Request) {
406+
th.TestMethod(t, r, "POST")
407+
th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
408+
th.TestJSONRequest(t, r, `{ "forceDelete": "" }`)
409+
410+
w.WriteHeader(http.StatusAccepted)
411+
})
412+
}
413+
402414
// HandleServerGetSuccessfully sets up the test server to respond to a server Get request.
403415
func HandleServerGetSuccessfully(t *testing.T) {
404416
th.Mux.HandleFunc("/servers/1234asdf", func(w http.ResponseWriter, r *http.Request) {

openstack/compute/v2/servers/requests.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,17 @@ func Delete(client *gophercloud.ServiceClient, id string) DeleteResult {
303303
return res
304304
}
305305

306+
func ForceDelete(client *gophercloud.ServiceClient, id string) ActionResult {
307+
var req struct {
308+
ForceDelete string `json:"forceDelete"`
309+
}
310+
311+
var res ActionResult
312+
_, res.Err = client.Post(actionURL(client, id), req, nil, nil)
313+
return res
314+
315+
}
316+
306317
// Get requests details on a single server, by ID.
307318
func Get(client *gophercloud.ServiceClient, id string) GetResult {
308319
var result GetResult

openstack/compute/v2/servers/requests_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,15 @@ func TestDeleteServer(t *testing.T) {
7878
th.AssertNoErr(t, res.Err)
7979
}
8080

81+
func TestForceDeleteServer(t *testing.T) {
82+
th.SetupHTTP()
83+
defer th.TeardownHTTP()
84+
HandleServerForceDeletionSuccessfully(t)
85+
86+
res := ForceDelete(client.ServiceClient(), "asdfasdfasdf")
87+
th.AssertNoErr(t, res.Err)
88+
}
89+
8190
func TestGetServer(t *testing.T) {
8291
th.SetupHTTP()
8392
defer th.TeardownHTTP()

0 commit comments

Comments
 (0)