@@ -575,7 +575,7 @@ def create_or_update_certificate(cls, cmd, resource_group_name, name, certificat
575575 return r .json ()
576576
577577 @classmethod
578- def delete_certificate (cls , cmd , resource_group_name , name , certificate_name ):
578+ def delete_certificate (cls , cmd , resource_group_name , name , certificate_name , no_wait = False ):
579579 management_hostname = cmd .cli_ctx .cloud .endpoints .resource_manager
580580 sub_id = get_subscription_id (cmd .cli_ctx )
581581 url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/connectedEnvironments/{}/certificates/{}?api-version={}"
@@ -587,7 +587,16 @@ def delete_certificate(cls, cmd, resource_group_name, name, certificate_name):
587587 certificate_name ,
588588 cls .api_version )
589589
590- return send_raw_request (cmd .cli_ctx , "DELETE" , request_url , body = None )
590+ r = send_raw_request (cmd .cli_ctx , "DELETE" , request_url , body = None )
591+
592+ if no_wait :
593+ return # API doesn't return JSON (it returns no content)
594+ elif r .status_code == 202 :
595+ operation_url = r .headers .get (HEADER_LOCATION )
596+ poll_results (cmd , operation_url )
597+ logger .warning ('Certificate %s was successfully deleted' , certificate_name )
598+
599+ return
591600
592601 @classmethod
593602 def check_name_availability (cls , cmd , resource_group_name , name , name_availability_request ):
@@ -635,7 +644,7 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr
635644 return r .json ()
636645
637646 @classmethod
638- def delete (cls , cmd , resource_group_name , environment_name , name ):
647+ def delete (cls , cmd , resource_group_name , environment_name , name , no_wait = False ):
639648 management_hostname = cmd .cli_ctx .cloud .endpoints .resource_manager
640649 sub_id = get_subscription_id (cmd .cli_ctx )
641650 url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/connectedEnvironments/{}/daprComponents/{}?api-version={}"
@@ -647,7 +656,15 @@ def delete(cls, cmd, resource_group_name, environment_name, name):
647656 name ,
648657 cls .api_version )
649658
650- send_raw_request (cmd .cli_ctx , "DELETE" , request_url )
659+ r = send_raw_request (cmd .cli_ctx , "DELETE" , request_url )
660+
661+ if no_wait :
662+ return # API doesn't return JSON (it returns no content)
663+ elif r .status_code == 202 :
664+ operation_url = r .headers .get (HEADER_LOCATION )
665+ poll_results (cmd , operation_url )
666+ logger .warning ('Dapr component %s was successfully deleted' , name )
667+
651668 return
652669
653670 @classmethod
@@ -700,7 +717,7 @@ class ConnectedEnvStorageClient():
700717 api_version = PREVIEW_API_VERSION
701718
702719 @classmethod
703- def create_or_update (cls , cmd , resource_group_name , env_name , name , storage_envelope ):
720+ def create_or_update (cls , cmd , resource_group_name , env_name , name , storage_envelope , no_wait = False ):
704721 management_hostname = cmd .cli_ctx .cloud .endpoints .resource_manager
705722 sub_id = get_subscription_id (cmd .cli_ctx )
706723 url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/connectedEnvironments/{}/storages/{}?api-version={}"
@@ -714,10 +731,17 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve
714731
715732 r = send_raw_request (cmd .cli_ctx , "PUT" , request_url , body = json .dumps (storage_envelope ))
716733
734+ if no_wait :
735+ return r .json ()
736+ elif r .status_code == 201 :
737+ operation_url = r .headers .get (HEADER_AZURE_ASYNC_OPERATION )
738+ poll_status (cmd , operation_url )
739+ r = send_raw_request (cmd .cli_ctx , "GET" , request_url )
740+
717741 return r .json ()
718742
719743 @classmethod
720- def delete (cls , cmd , resource_group_name , env_name , name ):
744+ def delete (cls , cmd , resource_group_name , env_name , name , no_wait = False ):
721745 management_hostname = cmd .cli_ctx .cloud .endpoints .resource_manager
722746 sub_id = get_subscription_id (cmd .cli_ctx )
723747 url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/connectedEnvironments/{}/storages/{}?api-version={}"
@@ -729,7 +753,14 @@ def delete(cls, cmd, resource_group_name, env_name, name):
729753 name ,
730754 cls .api_version )
731755
732- send_raw_request (cmd .cli_ctx , "DELETE" , request_url )
756+ r = send_raw_request (cmd .cli_ctx , "DELETE" , request_url )
757+
758+ if no_wait :
759+ return # API doesn't return JSON (it returns no content)
760+ elif r .status_code == 202 :
761+ operation_url = r .headers .get (HEADER_LOCATION )
762+ poll_results (cmd , operation_url )
763+ logger .warning ('Storage %s was successfully deleted' , name )
733764
734765 return
735766
0 commit comments