Delete monitor
diff --git a/rackspace/lb/v1/monitors/requests.go b/rackspace/lb/v1/monitors/requests.go
index bf96d88..b1629bf 100644
--- a/rackspace/lb/v1/monitors/requests.go
+++ b/rackspace/lb/v1/monitors/requests.go
@@ -156,6 +156,7 @@
return res
}
+// Get is the operation responsible for showing details of a health monitor.
func Get(c *gophercloud.ServiceClient, id int) GetResult {
var res GetResult
@@ -167,3 +168,15 @@
return res
}
+
+// Delete is the operation responsible for deleting a health monitor.
+func Delete(c *gophercloud.ServiceClient, id int) DeleteResult {
+ var res DeleteResult
+
+ _, res.Err = perigee.Request("DELETE", rootURL(c, id), perigee.Options{
+ MoreHeaders: c.AuthenticatedHeaders(),
+ OkCodes: []int{200},
+ })
+
+ return res
+}
diff --git a/rackspace/lb/v1/monitors/requests_test.go b/rackspace/lb/v1/monitors/requests_test.go
index 9841227..76a60db 100644
--- a/rackspace/lb/v1/monitors/requests_test.go
+++ b/rackspace/lb/v1/monitors/requests_test.go
@@ -63,3 +63,13 @@
th.AssertDeepEquals(t, expected, m)
}
+
+func TestDelete(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ mockDeleteResponse(t, lbID)
+
+ err := Delete(client.ServiceClient(), lbID).ExtractErr()
+ th.AssertNoErr(t, err)
+}
diff --git a/rackspace/lb/v1/monitors/results.go b/rackspace/lb/v1/monitors/results.go
index 29149d8..e4c6f4d 100644
--- a/rackspace/lb/v1/monitors/results.go
+++ b/rackspace/lb/v1/monitors/results.go
@@ -69,6 +69,11 @@
gophercloud.Result
}
+// DeleteResult represents the result of an Delete operation.
+type DeleteResult struct {
+ gophercloud.ErrResult
+}
+
// Extract interprets any GetResult as a Monitor.
func (r GetResult) Extract() (*Monitor, error) {
if r.Err != nil {