diff --git a/clients/vmClient/vmClient.go b/clients/vmClient/vmClient.go index 6036ad12d780..3e1366d67d73 100644 --- a/clients/vmClient/vmClient.go +++ b/clients/vmClient/vmClient.go @@ -18,6 +18,7 @@ import ( "github.com/MSOpenTech/azure-sdk-for-go/clients/locationClient" "github.com/MSOpenTech/azure-sdk-for-go/clients/imageClient" "github.com/MSOpenTech/azure-sdk-for-go/clients/storageServiceClient" + "github.com/MSOpenTech/azure-sdk-for-go/clients/vmDiskClient" azure "github.com/MSOpenTech/azure-sdk-for-go" ) @@ -329,6 +330,12 @@ 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) requestId, err := azure.SendAzureDeleteRequest(requestURL) if err != nil { @@ -336,6 +343,12 @@ func DeleteVMDeployment(cloudserviceName, deploymentName string) error { } azure.WaitAsyncOperation(requestId) + + err = vmDiskClient.DeleteDisk(vmDiskName) + if err != nil { + return err + } + return nil } diff --git a/clients/vmDiskClient/vmDiskClient.go b/clients/vmDiskClient/vmDiskClient.go new file mode 100644 index 000000000000..477d8a1327da --- /dev/null +++ b/clients/vmDiskClient/vmDiskClient.go @@ -0,0 +1,29 @@ +package vmDiskClient + +import ( + "fmt" + azure "github.com/MSOpenTech/azure-sdk-for-go" +) + +const ( + azureVMDiskURL = "services/disks/%s" +) + +//Region public methods starts + +func DeleteDisk(diskName string) error { + if len(diskName) == 0 { + return fmt.Errorf(azure.ParamNotSpecifiedError, "diskName") + } + + requestURL := fmt.Sprintf(azureVMDiskURL, diskName) + requestId, err := azure.SendAzureDeleteRequest(requestURL) + if err != nil { + return err + } + + azure.WaitAsyncOperation(requestId) + return nil +} + +//Region public methods ends \ No newline at end of file