From 489e2acaecc58ea83c7b1c552fed320797106f77 Mon Sep 17 00:00:00 2001 From: Ruslan Gabitov Date: Fri, 5 Dec 2014 17:25:03 -0800 Subject: [PATCH] Fixed Remove() method in Azure driver Fixed Remove() method in Azure driver Signed-off-by: Ruslan Gabitov --- Godeps/Godeps.json | 2 +- .../clients/vmClient/vmClient.go | 22 ++++--------------- drivers/azure/azure.go | 14 ++++-------- 3 files changed, 9 insertions(+), 29 deletions(-) diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index fd8567b166..fd756f3747 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -10,7 +10,7 @@ { "ImportPath": "github.com/MSOpenTech/azure-sdk-for-go", "Comment": "v1.1-14-g814812a", - "Rev": "814812a21a49da38c5cc808ec0958277e33c81d3" + "Rev": "515f3ec74ce6a5b31e934cefae997c97bd0a1b1e" }, { "ImportPath": "github.com/Sirupsen/logrus", diff --git a/Godeps/_workspace/src/github.com/MSOpenTech/azure-sdk-for-go/clients/vmClient/vmClient.go b/Godeps/_workspace/src/github.com/MSOpenTech/azure-sdk-for-go/clients/vmClient/vmClient.go index 44df8e1355..3d6f538e7e 100644 --- a/Godeps/_workspace/src/github.com/MSOpenTech/azure-sdk-for-go/clients/vmClient/vmClient.go +++ b/Godeps/_workspace/src/github.com/MSOpenTech/azure-sdk-for-go/clients/vmClient/vmClient.go @@ -18,16 +18,16 @@ import ( "github.com/MSOpenTech/azure-sdk-for-go/clients/imageClient" "github.com/MSOpenTech/azure-sdk-for-go/clients/locationClient" "github.com/MSOpenTech/azure-sdk-for-go/clients/storageServiceClient" - "github.com/MSOpenTech/azure-sdk-for-go/clients/vmDiskClient" ) const ( azureXmlns = "http://schemas.microsoft.com/windowsazure" azureDeploymentListURL = "services/hostedservices/%s/deployments" azureHostedServiceListURL = "services/hostedservices" - azureHostedServiceURL = "services/hostedservices/%s" + deleteAzureHostedServiceURL = "services/hostedservices/%s?comp=media" azureHostedServiceAvailabilityURL = "services/hostedservices/operations/isavailable/%s" azureDeploymentURL = "services/hostedservices/%s/deployments/%s" + deleteAzureDeploymentURL = "services/hostedservices/%s/deployments/%s?comp=media" azureRoleURL = "services/hostedservices/%s/deployments/%s/roles/%s" azureOperationsURL = "services/hostedservices/%s/deployments/%s/roleinstances/%s/Operations" azureCertificatListURL = "services/hostedservices/%s/certificates" @@ -174,7 +174,7 @@ func DeleteHostedService(dnsName string) error { return err } - requestURL := fmt.Sprintf(azureHostedServiceURL, dnsName) + requestURL := fmt.Sprintf(deleteAzureHostedServiceURL, dnsName) requestId, err := azure.SendAzureDeleteRequest(requestURL) if err != nil { return err @@ -321,9 +321,6 @@ func SetAzureDockerVMExtension(azureVMConfiguration *Role, dockerPort int, versi } privateConfiguration := "{}" - if err != nil { - return nil, err - } azureVMConfiguration, err = SetAzureVMExtension(azureVMConfiguration, "DockerExtension", "MSOpenTech.Extensions", version, "DockerExtension", "enable", publicConfiguration, privateConfiguration) return azureVMConfiguration, nil @@ -361,13 +358,7 @@ func DeleteVMDeployment(cloudserviceName, deploymentName string) error { return fmt.Errorf(azure.ParamNotSpecifiedError, "deploymentName") } - vmDeployment, err := GetVMDeployment(cloudserviceName, deploymentName) - if err != nil { - return err - } - vmDiskName := vmDeployment.RoleList.Role[0].OSVirtualHardDisk.DiskName - - requestURL := fmt.Sprintf(azureDeploymentURL, cloudserviceName, deploymentName) + requestURL := fmt.Sprintf(deleteAzureDeploymentURL, cloudserviceName, deploymentName) requestId, err := azure.SendAzureDeleteRequest(requestURL) if err != nil { return err @@ -375,11 +366,6 @@ func DeleteVMDeployment(cloudserviceName, deploymentName string) error { azure.WaitAsyncOperation(requestId) - err = vmDiskClient.DeleteDisk(vmDiskName) - if err != nil { - return err - } - return nil } diff --git a/drivers/azure/azure.go b/drivers/azure/azure.go index a6a0cdfdf5..5895cc4f56 100644 --- a/drivers/azure/azure.go +++ b/drivers/azure/azure.go @@ -319,24 +319,18 @@ func (driver *Driver) Remove() error { if err != nil { return err } - - _, err = vmClient.GetVMDeployment(driver.Name, driver.Name) + available, _, err := vmClient.CheckHostedServiceNameAvailability(driver.Name) if err != nil { - if strings.Contains(err.Error(), "Code: ResourceNotFound") { - return nil - } - return err } - - err = vmClient.DeleteVMDeployment(driver.Name, driver.Name) - if err != nil { - return err + if available { + return nil } err = vmClient.DeleteHostedService(driver.Name) if err != nil { return err } + return nil }