Merge lp:~allenap/gwacl/delete-entity into lp:gwacl

Proposed by Gavin Panella
Status: Merged
Approved by: Gavin Panella
Approved revision: 197
Merged at revision: 192
Proposed branch: lp:~allenap/gwacl/delete-entity
Merge into: lp:gwacl
Diff against target: 123 lines (+46/-0)
2 files modified
management_base.go (+15/-0)
management_base_test.go (+31/-0)
To merge this branch: bzr merge lp:~allenap/gwacl/delete-entity
Reviewer Review Type Date Requested Status
Raphaël Badin (community) Approve
Julian Edwards (community) Approve
Review via email: mp+175583@code.launchpad.net

Commit message

It is no longer an error to delete a non-existing entity through Azure's management API.

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) :
review: Approve
Revision history for this message
Raphaël Badin (rvb) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'management_base.go'
--- management_base.go 2013-07-17 01:11:29 +0000
+++ management_base.go 2013-07-18 14:26:22 +0000
@@ -184,6 +184,9 @@
184func (api *ManagementAPI) DeleteHostedService(serviceName string) error {184func (api *ManagementAPI) DeleteHostedService(serviceName string) error {
185 response, err := api.session.delete("services/hostedservices/"+serviceName, "2010-10-28")185 response, err := api.session.delete("services/hostedservices/"+serviceName, "2010-10-28")
186 if err != nil {186 if err != nil {
187 if IsNotFoundError(err) {
188 return nil
189 }
187 return err190 return err
188 }191 }
189 return api.blockUntilCompleted(response)192 return api.blockUntilCompleted(response)
@@ -214,6 +217,9 @@
214 path := "services/hostedservices/" + serviceName + "/deployments/" + deploymentName217 path := "services/hostedservices/" + serviceName + "/deployments/" + deploymentName
215 response, err := api.session.delete(path, "2012-03-01")218 response, err := api.session.delete(path, "2012-03-01")
216 if err != nil {219 if err != nil {
220 if IsNotFoundError(err) {
221 return nil
222 }
217 return err223 return err
218 }224 }
219 return api.blockUntilCompleted(response)225 return api.blockUntilCompleted(response)
@@ -268,6 +274,9 @@
268func (api *ManagementAPI) DeleteStorageAccount(storageAccountName string) error {274func (api *ManagementAPI) DeleteStorageAccount(storageAccountName string) error {
269 response, err := api.session.delete("services/storageservices/"+storageAccountName, "2011-06-01")275 response, err := api.session.delete("services/storageservices/"+storageAccountName, "2011-06-01")
270 if err != nil {276 if err != nil {
277 if IsNotFoundError(err) {
278 return nil
279 }
271 return err280 return err
272 }281 }
273 return api.blockUntilCompleted(response)282 return api.blockUntilCompleted(response)
@@ -312,6 +321,9 @@
312 }321 }
313 response, err := api.session.delete(url, "2012-08-01")322 response, err := api.session.delete(url, "2012-08-01")
314 if err != nil {323 if err != nil {
324 if IsNotFoundError(err) {
325 return nil
326 }
315 return err327 return err
316 }328 }
317 return api.blockUntilCompleted(response)329 return api.blockUntilCompleted(response)
@@ -476,6 +488,9 @@
476 }488 }
477 response, err := api.session.delete(url, "2011-02-25")489 response, err := api.session.delete(url, "2011-02-25")
478 if err != nil {490 if err != nil {
491 if IsNotFoundError(err) {
492 return nil
493 }
479 return err494 return err
480 }495 }
481 return api.blockUntilCompleted(response)496 return api.blockUntilCompleted(response)
482497
=== modified file 'management_base_test.go'
--- management_base_test.go 2013-07-18 03:46:50 +0000
+++ management_base_test.go 2013-07-18 14:26:22 +0000
@@ -541,6 +541,12 @@
541 assertDeleteHostedServiceRequest(c, api, hostedServiceName, (*recordedRequests)[0])541 assertDeleteHostedServiceRequest(c, api, hostedServiceName, (*recordedRequests)[0])
542}542}
543543
544func (suite *managementBaseAPISuite) TestDeleteHostedServiceWhenServiceDoesNotExist(c *C) {
545 rigFixedResponseDispatcher(&x509Response{StatusCode: http.StatusNotFound})
546 err := makeAPI(c).DeleteHostedService("hosted-service-name")
547 c.Assert(err, IsNil)
548}
549
544func (suite *managementBaseAPISuite) TestAddDeployment(c *C) {550func (suite *managementBaseAPISuite) TestAddDeployment(c *C) {
545 api := makeAPI(c)551 api := makeAPI(c)
546 recordedRequests := setUpDispatcher("operationID")552 recordedRequests := setUpDispatcher("operationID")
@@ -576,6 +582,12 @@
576 assertDeleteDeploymentRequest(c, api, hostedServiceName, deploymentName, (*recordedRequests)[0])582 assertDeleteDeploymentRequest(c, api, hostedServiceName, deploymentName, (*recordedRequests)[0])
577}583}
578584
585func (suite *managementBaseAPISuite) TestDeleteDeploymentWhenDeploymentDoesNotExist(c *C) {
586 rigFixedResponseDispatcher(&x509Response{StatusCode: http.StatusNotFound})
587 err := makeAPI(c).DeleteDeployment("hosted-service-name", "deployment-name")
588 c.Assert(err, IsNil)
589}
590
579var getDeploymentResponse = `591var getDeploymentResponse = `
580<?xml version="1.0"?>592<?xml version="1.0"?>
581<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">593<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
@@ -713,6 +725,12 @@
713 checkOneRequest(c, recordedRequests, accountURL, "2011-06-01", nil, "DELETE")725 checkOneRequest(c, recordedRequests, accountURL, "2011-06-01", nil, "DELETE")
714}726}
715727
728func (suite *managementBaseAPISuite) TestDeleteStorageAccountWhenAccountDoesNotExist(c *C) {
729 rigFixedResponseDispatcher(&x509Response{StatusCode: http.StatusNotFound})
730 err := makeAPI(c).DeleteStorageAccount("account-name")
731 c.Assert(err, IsNil)
732}
733
716func (suite *managementBaseAPISuite) TestGetStorageAccountKeys(c *C) {734func (suite *managementBaseAPISuite) TestGetStorageAccountKeys(c *C) {
717 const (735 const (
718 accountName = "accountname"736 accountName = "accountname"
@@ -765,6 +783,12 @@
765 assertDeleteDiskRequest(c, api, diskName, (*recordedRequests)[0])783 assertDeleteDiskRequest(c, api, diskName, (*recordedRequests)[0])
766}784}
767785
786func (suite *managementBaseAPISuite) TestDeleteDiskWhenDiskDoesNotExist(c *C) {
787 rigFixedResponseDispatcher(&x509Response{StatusCode: http.StatusNotFound})
788 err := makeAPI(c).DeleteDisk(&DeleteDiskRequest{DiskName: "disk-name"})
789 c.Assert(err, IsNil)
790}
791
768func (suite *managementBaseAPISuite) TestDeleteDiskWithDeleteBlob(c *C) {792func (suite *managementBaseAPISuite) TestDeleteDiskWithDeleteBlob(c *C) {
769 // Setting deleteBlob=true should append comp=media as a url query value.793 // Setting deleteBlob=true should append comp=media as a url query value.
770 deleteDiskInterval = time.Nanosecond794 deleteDiskInterval = time.Nanosecond
@@ -968,6 +992,13 @@
968 checkOneRequest(c, &recordedRequests, expectedURL, "2011-02-25", nil, "DELETE")992 checkOneRequest(c, &recordedRequests, expectedURL, "2011-02-25", nil, "DELETE")
969}993}
970994
995func (suite *managementBaseAPISuite) TestDeleteAffinityGroupWhenGroupDoesNotExist(c *C) {
996 rigFixedResponseDispatcher(&x509Response{StatusCode: http.StatusNotFound})
997 request := DeleteAffinityGroupRequest{Name: "groupname"}
998 err := makeAPI(c).DeleteAffinityGroup(&request)
999 c.Assert(err, IsNil)
1000}
1001
971func makeNetworkConfiguration() *NetworkConfiguration {1002func makeNetworkConfiguration() *NetworkConfiguration {
972 return &NetworkConfiguration{1003 return &NetworkConfiguration{
973 XMLNS: XMLNS_NC,1004 XMLNS: XMLNS_NC,

Subscribers

People subscribed via source and target branches

to all changes: