@@ -29,10 +29,16 @@ def create_container_on_storage_account(storage_account: str, container_name: st
2929
3030 Returns:
3131 """
32- container_name = container_name
3332 blob_service_client = create_blob_service_client (storage_account = storage_account )
34- container_client = blob_service_client .create_container (container_name )
35- print (f"Container { container_name } created on { storage_account } " )
33+ list_container_names = container_name .split ("," )
34+ for container_name in list_container_names :
35+
36+ try :
37+ container_client = blob_service_client .create_container (container_name )
38+ print (f"Container { container_name } created on { storage_account } " )
39+
40+ except Exception as err :
41+ print (f"Error deleting container '{ container_name } ': { str (err )} " )
3642
3743
3844def delete_container_on_storage_account (storage_account :str , container_name : str ):
@@ -48,17 +54,30 @@ def delete_container_on_storage_account(storage_account:str, container_name: str
4854 print (f"Container { container_name } deleted from { storage_account } " )
4955
5056
51- # def delete_multiple_contaners_on_storage_aaccount(storage_account: str, *container_name: str):
52- # """
53- # deletes multiple containers in a single run
54- # Args:
55- # storage_account:
56- # *container_name:
57-
58- # Returns:
57+ def delete_multiple_contaners_on_storage_aaccount (storage_account : str , container_name : str ):
58+ """
59+ deletes multiple containers in a single run
60+ Args:
61+ storage_account:
62+ *container_name:
5963
60- # """
64+ Returns:
6165
66+ """
67+ blob_service_client = create_blob_service_client (storage_account = storage_account )
68+ list_container_name = container_name .split ("," )
69+ # Iterating through multiple container names
70+ for container_name in list_container_name :
71+ try :
72+ blob_service_client .delete_container (container_name )
73+ print (f"Container '{ container_name } ' deleted successfully." )
74+
75+ except Exception as err :
76+ print (f"Error deleting container '{ container_name } ': { str (err )} " )
77+
78+ print (f"Deleting containers completed!!!!!!!!!!!!!!!!!!!!!!" )
79+
80+
6281## stack overflow link: https://stackoverflow.com/questions/77643982/i-am-getting-an-error-while-using-azure-stprage-blob-sdk-while-undeleting-a-cont
6382def recover_soft_deleted_containers_on_storage_account (storage_account : str , container_name : str ):
6483 """
@@ -95,13 +114,15 @@ def recover_all_deleted_containers_from_storage_account(storage_account: str):
95114 blob_service_client = create_blob_service_client (storage_account = storage_account )
96115 container_list = list (blob_service_client .list_containers (include_deleted = True ))
97116 assert len (container_list ) >= 1
98- for container in container_list :
99- # Find the deleted container and restore it
100- if container .deleted :
101- restored_container_client = blob_service_client .undelete_container (
102- deleted_container_name = container .name , deleted_container_version = container .version )
103- print (f"Container { container .name } recovered from { storage_account } " )
104-
117+ try :
118+ for container in container_list :
119+ # Find the deleted container and restore it
120+ if container .deleted :
121+ restored_container_client = blob_service_client .undelete_container (
122+ deleted_container_name = container .name , deleted_container_version = container .version )
123+ print (f"Container { container .name } recovered from { storage_account } " )
124+ except Exception as err :
125+ print (f"Unable to recover container :{ container .name } " )
105126
106127def list_containers_on_storage_account (storage_account : str ):
107128 """
@@ -184,6 +205,8 @@ def azure_storage_blob(storage_account: str, time_limit_of_sas_token: int, keyva
184205 elif action == "recover_all_deleted_containers" :
185206 recover_all_deleted_containers_from_storage_account (storage_account = storage_account )
186207 print (f"Recovered all deleted containers from { storage_account } " )
208+ elif action == "delete_multiple_containers" :
209+ delete_multiple_contaners_on_storage_aaccount (storage_account = storage_account , container_name = container_name )
187210 else :
188211 print (f"provided invalid action. please provide one among the available choices" )
189212
@@ -197,7 +220,7 @@ def main():
197220 parser .add_argument ('--time_limit_of_sas_token' , help = 'time limit of SAS token' , type = float , default = 1 , required = True )
198221 parser .add_argument ('--keyvault_name' , help = 'keyvault name in which storage account key secret set' , type = str )
199222 parser .add_argument ('--secret_name' , help = 'storage account access key secret name' , type = str )
200- parser .add_argument ('--action' , required = True , help = 'create container / delete container/ list containers/ recover container or containers' , type = str , choices = [ 'create_container' ,'delete_container' ,'list_containers' ,'recover_container' ,'recover_all_deleted_containers' ])
223+ parser .add_argument ('--action' , required = True , help = 'create container / delete container/ list containers/ recover container or containers' , type = str , choices = [ 'create_container' ,'delete_container' ,'delete_multiple_containers' , ' list_containers' ,'recover_container' ,'recover_all_deleted_containers' ])
201224 parser .add_argument ('--container_name' , type = str , help = 'container name' ,default = '' , required = True )
202225 args = parser .parse_args ()
203226 storage_account = args .storage_account
0 commit comments