Michael Blake
Michael Blake

Reputation: 2168

Is there an API call I can make to Azure Storage to tell if my container has been deleted?

I want to clear a storage account then "restore" to it using AzCopy.

I clear last nights storage using

$ctx = New-AzureStorageContext -StorageAccountName $storage -StorageAccountKey $key Get-AzureStorageContainer a* -Context $ctx | Remove-AzureStorageContainer -Force

And then use AzCopy but get;

The remote server returned an error: (409) Conflict. The specified container is being deleted. Try operation later.

I don't want to loop, trying to create the storage again. How can I wait for the Remove operation to complete?

Is there a Get-AzureStorageContainer status? "Deleting?"

Upvotes: 2

Views: 2236

Answers (2)

ASB
ASB

Reputation: 101

Isn't the error message enough to give you the same behavior. You can write that API yourself. Or I'm missing something?

"The specified container is being deleted. Try operation later."

Upvotes: 1

Gaurav Mantri
Gaurav Mantri

Reputation: 136206

Is there a Get-AzureStorageContainer status? "Deleting?"

Unfortunately there's none. You just have to keep on trying.

Based on the documentation here: https://msdn.microsoft.com/en-us/library/azure/dd179408.aspx

When a container is deleted, a container with the same name cannot be created for at least 30 seconds; the container may not be available for more than 30 seconds if the service is still processing the request. While the container is being deleted, attempts to create a container of the same name will fail with status code 409 (Conflict), with the service returning additional error information indicating that the container is being deleted. All other operations, including operations on any blobs under the container, will fail with status code 404 (Not Found) while the container is being deleted.

Though they are saying 30 seconds but depending on the number of blobs in the container, it may take even longer than that.

Other alternative would be to delete all blobs individually instead of deleting the container. However because each delete is a separate network call, the process may run for a longer duration (and is prone to network failures) but it would guarantee you that when you start using AzCopy, the container will be empty.

Upvotes: 4

Related Questions