From 43d7f7f31c740467b9ae070857bab3f023a013dd Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Tue, 4 Jul 2023 14:11:46 +0800 Subject: [PATCH 1/8] fix 404 --- .../azext_containerapp/containerapp_decorator.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/containerapp/azext_containerapp/containerapp_decorator.py b/src/containerapp/azext_containerapp/containerapp_decorator.py index 696597082fc..d43f3c00a37 100644 --- a/src/containerapp/azext_containerapp/containerapp_decorator.py +++ b/src/containerapp/azext_containerapp/containerapp_decorator.py @@ -11,7 +11,7 @@ from azure.cli.core.azclierror import ( RequiredArgumentMissingError, - ValidationError, ResourceNotFoundError) + ValidationError) from azure.cli.core.commands.client_factory import get_subscription_id from knack.log import get_logger @@ -21,7 +21,7 @@ from msrest.exceptions import DeserializationError from ._clients import ManagedEnvironmentClient -from ._client_factory import handle_raw_exception +from ._client_factory import handle_raw_exception, handle_non_404_exception from ._models import ( Ingress as IngressModel, @@ -339,8 +339,8 @@ def construct_containerapp(self): try: managed_env_info = self.get_environment_client().show(cmd=self.cmd, resource_group_name=managed_env_rg, name=managed_env_name) - except ResourceNotFoundError: - pass + except Exception as e: + handle_non_404_exception(e) if not managed_env_info: raise ValidationError("The environment '{}' does not exist. Specify a valid environment".format(self.get_argument_managed_env())) @@ -657,8 +657,8 @@ def set_up_create_containerapp_yaml(self, name, file_name): try: env_info = self.get_environment_client().show(cmd=self.cmd, resource_group_name=env_rg, name=env_name) - except ResourceNotFoundError: - pass + except Exception as e: + handle_non_404_exception(e) if not env_info: raise ValidationError("The environment '{}' in resource group '{}' was not found".format(env_name, env_rg)) From 00b7b8cd1a21de676df175fd8e6304c6e48829cc Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Mon, 3 Jul 2023 16:27:36 +0800 Subject: [PATCH 2/8] refactor client --- .../azext_containerapp/_clients.py | 236 ++++++++---------- 1 file changed, 106 insertions(+), 130 deletions(-) diff --git a/src/containerapp/azext_containerapp/_clients.py b/src/containerapp/azext_containerapp/_clients.py index c4cac87ecbc..da5c105e15f 100644 --- a/src/containerapp/azext_containerapp/_clients.py +++ b/src/containerapp/azext_containerapp/_clients.py @@ -15,7 +15,6 @@ logger = get_logger(__name__) -PREVIEW_API_VERSION = "2023-04-01-preview" CURRENT_API_VERSION = "2023-04-01-preview" POLLING_TIMEOUT = 600 # how many seconds before exiting POLLING_SECONDS = 2 # how many seconds between requests @@ -147,10 +146,13 @@ def _extract_delay(response): class ContainerAppClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}?api-version={}" request_url = url_fmt.format( @@ -158,7 +160,7 @@ def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(container_app_envelope)) @@ -173,7 +175,7 @@ def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -182,8 +184,6 @@ def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope def update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION - sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}?api-version={}" request_url = url_fmt.format( @@ -191,7 +191,7 @@ def update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait= sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(container_app_envelope)) @@ -210,7 +210,6 @@ def update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait= @classmethod def delete(cls, cmd, resource_group_name, name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}?api-version={}" request_url = url_fmt.format( @@ -218,7 +217,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -233,7 +232,6 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): @classmethod def show(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}?api-version={}" request_url = url_fmt.format( @@ -241,7 +239,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -251,12 +249,11 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): app_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) request_url = "{}/subscriptions/{}/providers/Microsoft.App/containerApps?api-version={}".format( management_hostname.strip('/'), sub_id, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -279,14 +276,13 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) app_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps?api-version={}" request_url = url_fmt.format( management_hostname.strip('/'), sub_id, resource_group_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -308,7 +304,6 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) def list_secrets(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/listSecrets?api-version={}" request_url = url_fmt.format( @@ -316,7 +311,7 @@ def list_secrets(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=None) return r.json() @@ -327,7 +322,6 @@ def list_revisions(cls, cmd, resource_group_name, name, formatter=lambda x: x): revisions_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/revisions?api-version={}" request_url = url_fmt.format( @@ -335,7 +329,7 @@ def list_revisions(cls, cmd, resource_group_name, name, formatter=lambda x: x): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -356,7 +350,6 @@ def list_revisions(cls, cmd, resource_group_name, name, formatter=lambda x: x): @classmethod def show_revision(cls, cmd, resource_group_name, container_app_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/revisions/{}?api-version={}" request_url = url_fmt.format( @@ -365,7 +358,7 @@ def show_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -373,7 +366,6 @@ def show_revision(cls, cmd, resource_group_name, container_app_name, name): @classmethod def restart_revision(cls, cmd, resource_group_name, container_app_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/revisions/{}/restart?api-version={}" request_url = url_fmt.format( @@ -382,7 +374,7 @@ def restart_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -390,7 +382,6 @@ def restart_revision(cls, cmd, resource_group_name, container_app_name, name): @classmethod def activate_revision(cls, cmd, resource_group_name, container_app_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/revisions/{}/activate?api-version={}" request_url = url_fmt.format( @@ -399,7 +390,7 @@ def activate_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -407,7 +398,6 @@ def activate_revision(cls, cmd, resource_group_name, container_app_name, name): @classmethod def deactivate_revision(cls, cmd, resource_group_name, container_app_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/revisions/{}/deactivate?api-version={}" request_url = url_fmt.format( @@ -416,7 +406,7 @@ def deactivate_revision(cls, cmd, resource_group_name, container_app_name, name) resource_group_name, container_app_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -434,7 +424,7 @@ def list_replicas(cls, cmd, resource_group_name, container_app_name, revision_na resource_group_name, container_app_name, revision_name, - CURRENT_API_VERSION) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -462,7 +452,7 @@ def get_replica(cls, cmd, resource_group_name, container_app_name, revision_name container_app_name, revision_name, replica_name, - CURRENT_API_VERSION) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -477,7 +467,7 @@ def get_auth_token(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - CURRENT_API_VERSION) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -492,7 +482,7 @@ def validate_domain(cls, cmd, resource_group_name, name, hostname): sub_id, resource_group_name, name, - CURRENT_API_VERSION, + cls.get_api_version(), hostname) r = send_raw_request(cmd.cli_ctx, "POST", request_url) @@ -500,10 +490,13 @@ def validate_domain(cls, cmd, resource_group_name, name, hostname): class ManagedEnvironmentClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create(cls, cmd, resource_group_name, name, managed_environment_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}?api-version={}" request_url = url_fmt.format( @@ -511,7 +504,7 @@ def create(cls, cmd, resource_group_name, name, managed_environment_envelope, no sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(managed_environment_envelope)) @@ -527,7 +520,6 @@ def create(cls, cmd, resource_group_name, name, managed_environment_envelope, no @classmethod def update(cls, cmd, resource_group_name, name, managed_environment_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}?api-version={}" request_url = url_fmt.format( @@ -535,7 +527,7 @@ def update(cls, cmd, resource_group_name, name, managed_environment_envelope, no sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(managed_environment_envelope)) @@ -560,7 +552,6 @@ def update(cls, cmd, resource_group_name, name, managed_environment_envelope, no @classmethod def delete(cls, cmd, resource_group_name, name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}?api-version={}" request_url = url_fmt.format( @@ -568,7 +559,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -584,7 +575,6 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): @classmethod def show(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}?api-version={}" request_url = url_fmt.format( @@ -592,7 +582,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -602,12 +592,11 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): env_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) request_url = "{}/subscriptions/{}/providers/Microsoft.App/managedEnvironments?api-version={}".format( management_hostname.strip('/'), sub_id, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -630,14 +619,13 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) env_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments?api-version={}" request_url = url_fmt.format( management_hostname.strip('/'), sub_id, resource_group_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -658,7 +646,6 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) @classmethod def show_certificate(cls, cmd, resource_group_name, name, certificate_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/certificates/{}?api-version={}" request_url = url_fmt.format( @@ -667,7 +654,7 @@ def show_certificate(cls, cmd, resource_group_name, name, certificate_name): resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) return r.json() @@ -675,7 +662,6 @@ def show_certificate(cls, cmd, resource_group_name, name, certificate_name): @classmethod def show_managed_certificate(cls, cmd, resource_group_name, name, certificate_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = PREVIEW_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/managedCertificates/{}?api-version={}" request_url = url_fmt.format( @@ -684,7 +670,7 @@ def show_managed_certificate(cls, cmd, resource_group_name, name, certificate_na resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) return r.json() @@ -694,7 +680,6 @@ def list_certificates(cls, cmd, resource_group_name, name, formatter=lambda x: x certs_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/certificates?api-version={}" request_url = url_fmt.format( @@ -702,7 +687,7 @@ def list_certificates(cls, cmd, resource_group_name, name, formatter=lambda x: x sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) j = r.json() @@ -716,7 +701,6 @@ def list_managed_certificates(cls, cmd, resource_group_name, name, formatter=lam certs_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = PREVIEW_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/managedCertificates?api-version={}" request_url = url_fmt.format( @@ -724,7 +708,7 @@ def list_managed_certificates(cls, cmd, resource_group_name, name, formatter=lam sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) j = r.json() @@ -736,7 +720,6 @@ def list_managed_certificates(cls, cmd, resource_group_name, name, formatter=lam @classmethod def create_or_update_certificate(cls, cmd, resource_group_name, name, certificate_name, certificate): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/certificates/{}?api-version={}" request_url = url_fmt.format( @@ -745,7 +728,7 @@ def create_or_update_certificate(cls, cmd, resource_group_name, name, certificat resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(certificate)) return r.json() @@ -753,7 +736,6 @@ def create_or_update_certificate(cls, cmd, resource_group_name, name, certificat @classmethod def create_or_update_managed_certificate(cls, cmd, resource_group_name, name, certificate_name, certificate_envelop, no_wait=False, is_TXT=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = PREVIEW_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/managedCertificates/{}?api-version={}" request_url = url_fmt.format( @@ -762,7 +744,7 @@ def create_or_update_managed_certificate(cls, cmd, resource_group_name, name, ce resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(certificate_envelop)) if no_wait and not is_TXT: @@ -798,7 +780,6 @@ def create_or_update_managed_certificate(cls, cmd, resource_group_name, name, ce @classmethod def delete_certificate(cls, cmd, resource_group_name, name, certificate_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/certificates/{}?api-version={}" request_url = url_fmt.format( @@ -807,14 +788,13 @@ def delete_certificate(cls, cmd, resource_group_name, name, certificate_name): resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) return send_raw_request(cmd.cli_ctx, "DELETE", request_url, body=None) @classmethod def delete_managed_certificate(cls, cmd, resource_group_name, name, certificate_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = PREVIEW_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/managedCertificates/{}?api-version={}" request_url = url_fmt.format( @@ -823,14 +803,13 @@ def delete_managed_certificate(cls, cmd, resource_group_name, name, certificate_ resource_group_name, name, certificate_name, - api_version) + cls.get_api_version()) return send_raw_request(cmd.cli_ctx, "DELETE", request_url, body=None) @classmethod def check_name_availability(cls, cmd, resource_group_name, name, name_availability_request): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/checkNameAvailability?api-version={}" request_url = url_fmt.format( @@ -838,7 +817,7 @@ def check_name_availability(cls, cmd, resource_group_name, name, name_availabili sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=json.dumps(name_availability_request)) return r.json() @@ -853,24 +832,27 @@ def get_auth_token(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - CURRENT_API_VERSION) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() class WorkloadProfileClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def list_supported(cls, cmd, location): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/providers/Microsoft.App/locations/{}/availableManagedEnvironmentsWorkloadProfileTypes?api-version={}" request_url = url_fmt.format( management_hostname.strip('/'), sub_id, location, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json().get("value") @@ -878,7 +860,6 @@ def list_supported(cls, cmd, location): @classmethod def list(cls, cmd, resource_group_name, env_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourcegroups/{}/providers/Microsoft.App/managedEnvironments/{}/workloadProfileStates?api-version={}" request_url = url_fmt.format( @@ -886,17 +867,20 @@ def list(cls, cmd, resource_group_name, env_name): sub_id, resource_group_name, env_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json().get("value") class ContainerAppsJobClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}?api-version={}" request_url = url_fmt.format( @@ -904,7 +888,7 @@ def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envel sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(containerapp_job_envelope)) @@ -917,7 +901,7 @@ def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envel sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) return poll(cmd, request_url, "inprogress") return r.json() @@ -926,8 +910,6 @@ def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envel def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION - sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}?api-version={}" request_url = url_fmt.format( @@ -935,7 +917,7 @@ def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wa sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(containerapp_job_envelope)) @@ -948,7 +930,7 @@ def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wa sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) response = poll_results(cmd, request_url) if response is None: raise ResourceNotFoundError("Could not find a container App Job") @@ -960,7 +942,6 @@ def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wa @classmethod def show(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}?api-version={}" request_url = url_fmt.format( @@ -968,7 +949,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -978,12 +959,11 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): app_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) request_url = "{}/subscriptions/{}/providers/Microsoft.App/jobs?api-version={}".format( management_hostname.strip('/'), sub_id, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -998,14 +978,13 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) app_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs?api-version={}" request_url = url_fmt.format( management_hostname.strip('/'), sub_id, resource_group_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1018,7 +997,6 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) @classmethod def delete(cls, cmd, resource_group_name, name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}?api-version={}" request_url = url_fmt.format( @@ -1026,7 +1004,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1039,7 +1017,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1052,7 +1030,6 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): @classmethod def start_job(cls, cmd, resource_group_name, name, containerapp_job_start_envelope): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/start?api-version={}" request_url = url_fmt.format( @@ -1060,7 +1037,7 @@ def start_job(cls, cmd, resource_group_name, name, containerapp_job_start_envelo sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) if containerapp_job_start_envelope is None: r = send_raw_request(cmd.cli_ctx, "POST", request_url) else: @@ -1071,7 +1048,6 @@ def start_job(cls, cmd, resource_group_name, name, containerapp_job_start_envelo @classmethod def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execution_names=None): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) if not job_execution_name: @@ -1081,7 +1057,7 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) else: url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/stop/{}?api-version={}" request_url = url_fmt.format( @@ -1090,7 +1066,7 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut resource_group_name, name, job_execution_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=json.dumps(job_execution_names)) return r.json() @@ -1098,7 +1074,6 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut @classmethod def get_executions(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/executions?api-version={}" request_url = url_fmt.format( @@ -1106,7 +1081,7 @@ def get_executions(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1114,7 +1089,6 @@ def get_executions(cls, cmd, resource_group_name, name): @classmethod def get_single_execution(cls, cmd, resource_group_name, name, job_execution_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/executions/{}?api-version={}" request_url = url_fmt.format( @@ -1123,7 +1097,7 @@ def get_single_execution(cls, cmd, resource_group_name, name, job_execution_name resource_group_name, name, job_execution_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1132,7 +1106,6 @@ def get_single_execution(cls, cmd, resource_group_name, name, job_execution_name def list_secrets(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/listSecrets?api-version={}" request_url = url_fmt.format( @@ -1140,17 +1113,20 @@ def list_secrets(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=None) return r.json() class GitHubActionClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope, headers, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/sourcecontrols/current?api-version={}" request_url = url_fmt.format( @@ -1158,7 +1134,7 @@ def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(github_action_envelope), headers=headers) @@ -1171,7 +1147,7 @@ def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) return poll(cmd, request_url, "inprogress") return r.json() @@ -1179,7 +1155,6 @@ def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope @classmethod def show(cls, cmd, resource_group_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/sourcecontrols/current?api-version={}" request_url = url_fmt.format( @@ -1187,7 +1162,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1195,7 +1170,6 @@ def show(cls, cmd, resource_group_name, name): @classmethod def delete(cls, cmd, resource_group_name, name, headers, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/containerApps/{}/sourcecontrols/current?api-version={}" request_url = url_fmt.format( @@ -1203,7 +1177,7 @@ def delete(cls, cmd, resource_group_name, name, headers, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url, headers=headers) @@ -1216,7 +1190,7 @@ def delete(cls, cmd, resource_group_name, name, headers, no_wait=False): sub_id, resource_group_name, name, - api_version) + cls.get_api_version()) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1257,11 +1231,14 @@ def get_workflow_name(cls, cmd, repo, branch_name, container_app_name, token): class DaprComponentClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr_component_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/daprComponents/{}?api-version={}" request_url = url_fmt.format( @@ -1270,7 +1247,7 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr resource_group_name, environment_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(dapr_component_envelope)) @@ -1284,7 +1261,7 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr resource_group_name, environment_name, name, - api_version) + cls.get_api_version()) return poll(cmd, request_url, "inprogress") return r.json() @@ -1292,7 +1269,6 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr @classmethod def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/daprComponents/{}?api-version={}" request_url = url_fmt.format( @@ -1301,7 +1277,7 @@ def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False) resource_group_name, environment_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1315,7 +1291,7 @@ def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False) resource_group_name, environment_name, name, - api_version) + cls.get_api_version()) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1329,7 +1305,6 @@ def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False) @classmethod def show(cls, cmd, resource_group_name, environment_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/daprComponents/{}?api-version={}" request_url = url_fmt.format( @@ -1338,7 +1313,7 @@ def show(cls, cmd, resource_group_name, environment_name, name): resource_group_name, environment_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1348,14 +1323,13 @@ def list(cls, cmd, resource_group_name, environment_name, formatter=lambda x: x) app_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) request_url = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/daprComponents?api-version={}".format( management_hostname.strip('/'), sub_id, resource_group_name, environment_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1375,10 +1349,13 @@ def list(cls, cmd, resource_group_name, environment_name, formatter=lambda x: x) class StorageClient(): + @classmethod + def get_api_version(cls): + return CURRENT_API_VERSION + @classmethod def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/storages/{}?api-version={}" request_url = url_fmt.format( @@ -1387,7 +1364,7 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve resource_group_name, env_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(storage_envelope)) @@ -1401,7 +1378,7 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve resource_group_name, env_name, name, - api_version) + cls.get_api_version()) return poll(cmd, request_url, "waiting") return r.json() @@ -1409,7 +1386,6 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve @classmethod def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/storages/{}?api-version={}" request_url = url_fmt.format( @@ -1418,7 +1394,7 @@ def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): resource_group_name, env_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1432,7 +1408,7 @@ def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): resource_group_name, env_name, name, - api_version) + cls.get_api_version()) if r.status_code == 200: # 200 successful delete, 204 means storage not found from azure.cli.core.azclierror import ResourceNotFoundError try: @@ -1445,7 +1421,6 @@ def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): @classmethod def show(cls, cmd, resource_group_name, env_name, name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/storages/{}?api-version={}" request_url = url_fmt.format( @@ -1454,7 +1429,7 @@ def show(cls, cmd, resource_group_name, env_name, name): resource_group_name, env_name, name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1464,7 +1439,6 @@ def list(cls, cmd, resource_group_name, env_name, formatter=lambda x: x): env_list = [] management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/managedEnvironments/{}/storages?api-version={}" request_url = url_fmt.format( @@ -1472,7 +1446,7 @@ def list(cls, cmd, resource_group_name, env_name, formatter=lambda x: x): sub_id, resource_group_name, env_name, - api_version) + cls.get_api_version()) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1493,11 +1467,15 @@ def list(cls, cmd, resource_group_name, env_name, formatter=lambda x: x): class AuthClient(): @classmethod - def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_config_name, auth_config_envelope, no_wait=False): + def get_api_version(cls): + return CURRENT_API_VERSION + + @classmethod + def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_config_name, auth_config_envelope, + no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={api_version}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" if "properties" not in auth_config_envelope: # sdk does this for us temp_env = auth_config_envelope @@ -1509,7 +1487,7 @@ def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_con if no_wait: return r.json() elif r.status_code == 201: - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={api_version}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" return poll(cmd, request_url, "waiting") return r.json() @@ -1517,16 +1495,15 @@ def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_con @classmethod def delete(cls, cmd, resource_group_name, container_app_name, auth_config_name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={api_version}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) if no_wait: return # API doesn't return JSON (it returns no content) elif r.status_code in [200, 201, 202, 204]: - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={api_version}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" if r.status_code == 200: # 200 successful delete, 204 means storage not found from azure.cli.core.azclierror import ResourceNotFoundError try: @@ -1539,9 +1516,8 @@ def delete(cls, cmd, resource_group_name, container_app_name, auth_config_name, @classmethod def get(cls, cmd, resource_group_name, container_app_name, auth_config_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager - api_version = CURRENT_API_VERSION sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={api_version}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() From db99bfc24920ef20f97d658b6794b02e038e2240 Mon Sep 17 00:00:00 2001 From: ZelinWang Date: Wed, 12 Jul 2023 11:58:21 +0800 Subject: [PATCH 3/8] fix ref doc --- scripts/ci/index_ref_doc.py | 13 ++++++++++--- scripts/refdoc/generate.py | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/scripts/ci/index_ref_doc.py b/scripts/ci/index_ref_doc.py index 74e8387f008..bf1288151d6 100644 --- a/scripts/ci/index_ref_doc.py +++ b/scripts/ci/index_ref_doc.py @@ -51,14 +51,18 @@ class TestIndexRefDocsMeta(type): def __new__(mcs, name, bases, _dict): - def gen_test(ext_name, ext_url, filename): + def gen_test(ext_name, ext_url, filename, dep_url): def test(self): + if dep_url.get(ext_name): + dep_file = get_whl_from_url(dep_url[ext_name][0], dep_url[ext_name][1], self.whl_dir) + else: + dep_file = '' ext_file = get_whl_from_url(ext_url, filename, self.whl_dir) ref_doc_out_dir = os.path.join(REF_DOC_OUT_DIR, ext_name) if not os.path.isdir(ref_doc_out_dir): os.mkdir(ref_doc_out_dir) script_args = [sys.executable, REF_GEN_SCRIPT, '--extension-file', ext_file, '--output-dir', - ref_doc_out_dir] + ref_doc_out_dir, '--dependent-file', dep_file] try: check_call(script_args) except CalledProcessError as e: @@ -66,9 +70,12 @@ def test(self): raise e return test + dep_url = {} for ext_name, ext_url, filename in ALL_TESTS: test_name = "test_ref_doc_%s" % ext_name - _dict[test_name] = gen_test(ext_name, ext_url, filename) + if ext_name == 'containerapp': + dep_url['containerapp-preview'] = [ext_url, filename] + _dict[test_name] = gen_test(ext_name, ext_url, filename, dep_url) return type.__new__(mcs, name, bases, _dict) diff --git a/scripts/refdoc/generate.py b/scripts/refdoc/generate.py index ae5778ae142..5fd723dfbda 100644 --- a/scripts/refdoc/generate.py +++ b/scripts/refdoc/generate.py @@ -21,7 +21,7 @@ def print_status(msg=''): print('-- '+msg) -def generate(ext_file, output_dir): +def generate(ext_file, output_dir, dep_file): # Verify sphinx installed in environment before we get started check_call(['sphinx-build', '--version']) if not output_dir: @@ -29,6 +29,12 @@ def generate(ext_file, output_dir): print_status('Using output directory {}'.format(output_dir)) temp_extension_dir = tempfile.mkdtemp() try: + if dep_file: + pip_cmd = [sys.executable, '-m', 'pip', 'install', '--target', + os.path.join(temp_extension_dir, 'extension'), + dep_file, '--disable-pip-version-check', '--no-cache-dir'] + print_status('Executing "{}"'.format(' '.join(pip_cmd))) + check_call(pip_cmd) pip_cmd = [sys.executable, '-m', 'pip', 'install', '--target', os.path.join(temp_extension_dir, 'extension'), ext_file, '--disable-pip-version-check', '--no-cache-dir'] print_status('Executing "{}"'.format(' '.join(pip_cmd))) @@ -75,6 +81,7 @@ def _type_path(val): help='Path to the extension .whl file.', required=True, type=_type_ext_file) parser.add_argument('-o', '--output-dir', dest='output_dir', help='Path to place the generated documentation. By default, a temporary directory will be created.', required=False, type=_type_path) - + parser.add_argument('-d', '--dependent-file', dest='dep_file', + help='Path to the dependent extension .whl file.', required=True, type=str) args = parser.parse_args() - generate(args.ext_file, args.output_dir) + generate(args.ext_file, args.output_dir, args.dep_file) From 510d21e4edd5cae34d20b1858a6b532065f9415a Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 12 Jul 2023 14:30:00 +0800 Subject: [PATCH 4/8] revert --- scripts/ci/index_ref_doc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/ci/index_ref_doc.py b/scripts/ci/index_ref_doc.py index bf1288151d6..8743f6c5adf 100644 --- a/scripts/ci/index_ref_doc.py +++ b/scripts/ci/index_ref_doc.py @@ -73,6 +73,8 @@ def test(self): dep_url = {} for ext_name, ext_url, filename in ALL_TESTS: test_name = "test_ref_doc_%s" % ext_name + # The containerapp-preview extension is a special case, + # it must depend on the continerapp extension and cannot run independently. if ext_name == 'containerapp': dep_url['containerapp-preview'] = [ext_url, filename] _dict[test_name] = gen_test(ext_name, ext_url, filename, dep_url) From 5d8fdba9d3f0b641ecf780429f831ccc5fb261f4 Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 12 Jul 2023 14:33:22 +0800 Subject: [PATCH 5/8] Revert "revert" This reverts commit 510d21e4edd5cae34d20b1858a6b532065f9415a. --- scripts/ci/index_ref_doc.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/ci/index_ref_doc.py b/scripts/ci/index_ref_doc.py index 8743f6c5adf..bf1288151d6 100644 --- a/scripts/ci/index_ref_doc.py +++ b/scripts/ci/index_ref_doc.py @@ -73,8 +73,6 @@ def test(self): dep_url = {} for ext_name, ext_url, filename in ALL_TESTS: test_name = "test_ref_doc_%s" % ext_name - # The containerapp-preview extension is a special case, - # it must depend on the continerapp extension and cannot run independently. if ext_name == 'containerapp': dep_url['containerapp-preview'] = [ext_url, filename] _dict[test_name] = gen_test(ext_name, ext_url, filename, dep_url) From b8db9df5816972a5625f52665faefb1dad239672 Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 12 Jul 2023 14:33:37 +0800 Subject: [PATCH 6/8] Revert "fix ref doc" This reverts commit db99bfc24920ef20f97d658b6794b02e038e2240. --- scripts/ci/index_ref_doc.py | 13 +++---------- scripts/refdoc/generate.py | 13 +++---------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/scripts/ci/index_ref_doc.py b/scripts/ci/index_ref_doc.py index bf1288151d6..74e8387f008 100644 --- a/scripts/ci/index_ref_doc.py +++ b/scripts/ci/index_ref_doc.py @@ -51,18 +51,14 @@ class TestIndexRefDocsMeta(type): def __new__(mcs, name, bases, _dict): - def gen_test(ext_name, ext_url, filename, dep_url): + def gen_test(ext_name, ext_url, filename): def test(self): - if dep_url.get(ext_name): - dep_file = get_whl_from_url(dep_url[ext_name][0], dep_url[ext_name][1], self.whl_dir) - else: - dep_file = '' ext_file = get_whl_from_url(ext_url, filename, self.whl_dir) ref_doc_out_dir = os.path.join(REF_DOC_OUT_DIR, ext_name) if not os.path.isdir(ref_doc_out_dir): os.mkdir(ref_doc_out_dir) script_args = [sys.executable, REF_GEN_SCRIPT, '--extension-file', ext_file, '--output-dir', - ref_doc_out_dir, '--dependent-file', dep_file] + ref_doc_out_dir] try: check_call(script_args) except CalledProcessError as e: @@ -70,12 +66,9 @@ def test(self): raise e return test - dep_url = {} for ext_name, ext_url, filename in ALL_TESTS: test_name = "test_ref_doc_%s" % ext_name - if ext_name == 'containerapp': - dep_url['containerapp-preview'] = [ext_url, filename] - _dict[test_name] = gen_test(ext_name, ext_url, filename, dep_url) + _dict[test_name] = gen_test(ext_name, ext_url, filename) return type.__new__(mcs, name, bases, _dict) diff --git a/scripts/refdoc/generate.py b/scripts/refdoc/generate.py index 5fd723dfbda..ae5778ae142 100644 --- a/scripts/refdoc/generate.py +++ b/scripts/refdoc/generate.py @@ -21,7 +21,7 @@ def print_status(msg=''): print('-- '+msg) -def generate(ext_file, output_dir, dep_file): +def generate(ext_file, output_dir): # Verify sphinx installed in environment before we get started check_call(['sphinx-build', '--version']) if not output_dir: @@ -29,12 +29,6 @@ def generate(ext_file, output_dir, dep_file): print_status('Using output directory {}'.format(output_dir)) temp_extension_dir = tempfile.mkdtemp() try: - if dep_file: - pip_cmd = [sys.executable, '-m', 'pip', 'install', '--target', - os.path.join(temp_extension_dir, 'extension'), - dep_file, '--disable-pip-version-check', '--no-cache-dir'] - print_status('Executing "{}"'.format(' '.join(pip_cmd))) - check_call(pip_cmd) pip_cmd = [sys.executable, '-m', 'pip', 'install', '--target', os.path.join(temp_extension_dir, 'extension'), ext_file, '--disable-pip-version-check', '--no-cache-dir'] print_status('Executing "{}"'.format(' '.join(pip_cmd))) @@ -81,7 +75,6 @@ def _type_path(val): help='Path to the extension .whl file.', required=True, type=_type_ext_file) parser.add_argument('-o', '--output-dir', dest='output_dir', help='Path to place the generated documentation. By default, a temporary directory will be created.', required=False, type=_type_path) - parser.add_argument('-d', '--dependent-file', dest='dep_file', - help='Path to the dependent extension .whl file.', required=True, type=str) + args = parser.parse_args() - generate(args.ext_file, args.output_dir, args.dep_file) + generate(args.ext_file, args.output_dir) From 8f006a1f531726e8044cae7df61a715e01931c59 Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 12 Jul 2023 15:36:43 +0800 Subject: [PATCH 7/8] refactor --- .../azext_containerapp_preview/_clients.py | 24 +-- .../azext_containerapp/_clients.py | 174 ++++++++---------- 2 files changed, 90 insertions(+), 108 deletions(-) diff --git a/src/containerapp-preview/azext_containerapp_preview/_clients.py b/src/containerapp-preview/azext_containerapp_preview/_clients.py index 64a1dca7e9a..d0227767002 100644 --- a/src/containerapp-preview/azext_containerapp_preview/_clients.py +++ b/src/containerapp-preview/azext_containerapp_preview/_clients.py @@ -30,21 +30,15 @@ def poll_results(cmd, request_url): class ContainerAppClient(_get_azext_containerapp_module("azext_containerapp._clients").ContainerAppClient): - @classmethod - def get_api_version(cls): - return PREVIEW_API_VERSION + api_version = PREVIEW_API_VERSION class ManagedEnvironmentClient(_get_azext_containerapp_module("azext_containerapp._clients").ManagedEnvironmentClient): - @classmethod - def get_api_version(cls): - return PREVIEW_API_VERSION + api_version = PREVIEW_API_VERSION class ConnectedEnvironmentClient(): - @classmethod - def get_api_version(cls): - return PREVIEW_API_VERSION + api_version = PREVIEW_API_VERSION @classmethod def create(cls, cmd, resource_group_name, name, connected_environment_envelope, no_wait=False): @@ -56,7 +50,7 @@ def create(cls, cmd, resource_group_name, name, connected_environment_envelope, sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(connected_environment_envelope)) @@ -79,7 +73,7 @@ def update(cls, cmd, resource_group_name, name, managed_environment_envelope, no sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(managed_environment_envelope)) @@ -105,7 +99,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -128,7 +122,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -142,7 +136,7 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): request_url = "{}/subscriptions/{}/providers/Microsoft.App/connectedEnvironments?api-version={}".format( management_hostname.strip('/'), sub_id, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -171,7 +165,7 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) management_hostname.strip('/'), sub_id, resource_group_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() diff --git a/src/containerapp/azext_containerapp/_clients.py b/src/containerapp/azext_containerapp/_clients.py index da5c105e15f..430f40cb066 100644 --- a/src/containerapp/azext_containerapp/_clients.py +++ b/src/containerapp/azext_containerapp/_clients.py @@ -146,9 +146,7 @@ def _extract_delay(response): class ContainerAppClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait=False): @@ -160,7 +158,7 @@ def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(container_app_envelope)) @@ -175,7 +173,7 @@ def create_or_update(cls, cmd, resource_group_name, name, container_app_envelope sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -191,7 +189,7 @@ def update(cls, cmd, resource_group_name, name, container_app_envelope, no_wait= sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(container_app_envelope)) @@ -217,7 +215,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -239,7 +237,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -253,7 +251,7 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): request_url = "{}/subscriptions/{}/providers/Microsoft.App/containerApps?api-version={}".format( management_hostname.strip('/'), sub_id, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -282,7 +280,7 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) management_hostname.strip('/'), sub_id, resource_group_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -311,7 +309,7 @@ def list_secrets(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=None) return r.json() @@ -329,7 +327,7 @@ def list_revisions(cls, cmd, resource_group_name, name, formatter=lambda x: x): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -358,7 +356,7 @@ def show_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -374,7 +372,7 @@ def restart_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -390,7 +388,7 @@ def activate_revision(cls, cmd, resource_group_name, container_app_name, name): resource_group_name, container_app_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -406,7 +404,7 @@ def deactivate_revision(cls, cmd, resource_group_name, container_app_name, name) resource_group_name, container_app_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -424,7 +422,7 @@ def list_replicas(cls, cmd, resource_group_name, container_app_name, revision_na resource_group_name, container_app_name, revision_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -452,7 +450,7 @@ def get_replica(cls, cmd, resource_group_name, container_app_name, revision_name container_app_name, revision_name, replica_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -467,7 +465,7 @@ def get_auth_token(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() @@ -482,7 +480,7 @@ def validate_domain(cls, cmd, resource_group_name, name, hostname): sub_id, resource_group_name, name, - cls.get_api_version(), + cls.api_version, hostname) r = send_raw_request(cmd.cli_ctx, "POST", request_url) @@ -490,6 +488,8 @@ def validate_domain(cls, cmd, resource_group_name, name, hostname): class ManagedEnvironmentClient(): + api_version = CURRENT_API_VERSION + @classmethod def get_api_version(cls): return CURRENT_API_VERSION @@ -504,7 +504,7 @@ def create(cls, cmd, resource_group_name, name, managed_environment_envelope, no sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(managed_environment_envelope)) @@ -527,7 +527,7 @@ def update(cls, cmd, resource_group_name, name, managed_environment_envelope, no sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(managed_environment_envelope)) @@ -559,7 +559,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -582,7 +582,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -596,7 +596,7 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): request_url = "{}/subscriptions/{}/providers/Microsoft.App/managedEnvironments?api-version={}".format( management_hostname.strip('/'), sub_id, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -625,7 +625,7 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) management_hostname.strip('/'), sub_id, resource_group_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -654,7 +654,7 @@ def show_certificate(cls, cmd, resource_group_name, name, certificate_name): resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) return r.json() @@ -670,7 +670,7 @@ def show_managed_certificate(cls, cmd, resource_group_name, name, certificate_na resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) return r.json() @@ -687,7 +687,7 @@ def list_certificates(cls, cmd, resource_group_name, name, formatter=lambda x: x sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) j = r.json() @@ -708,7 +708,7 @@ def list_managed_certificates(cls, cmd, resource_group_name, name, formatter=lam sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url, body=None) j = r.json() @@ -728,7 +728,7 @@ def create_or_update_certificate(cls, cmd, resource_group_name, name, certificat resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(certificate)) return r.json() @@ -744,7 +744,7 @@ def create_or_update_managed_certificate(cls, cmd, resource_group_name, name, ce resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(certificate_envelop)) if no_wait and not is_TXT: @@ -788,7 +788,7 @@ def delete_certificate(cls, cmd, resource_group_name, name, certificate_name): resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) return send_raw_request(cmd.cli_ctx, "DELETE", request_url, body=None) @@ -803,7 +803,7 @@ def delete_managed_certificate(cls, cmd, resource_group_name, name, certificate_ resource_group_name, name, certificate_name, - cls.get_api_version()) + cls.api_version) return send_raw_request(cmd.cli_ctx, "DELETE", request_url, body=None) @@ -817,7 +817,7 @@ def check_name_availability(cls, cmd, resource_group_name, name, name_availabili sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=json.dumps(name_availability_request)) return r.json() @@ -832,16 +832,14 @@ def get_auth_token(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url) return r.json() class WorkloadProfileClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def list_supported(cls, cmd, location): @@ -852,7 +850,7 @@ def list_supported(cls, cmd, location): management_hostname.strip('/'), sub_id, location, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json().get("value") @@ -867,16 +865,14 @@ def list(cls, cmd, resource_group_name, env_name): sub_id, resource_group_name, env_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json().get("value") class ContainerAppsJobClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wait=False): @@ -888,7 +884,7 @@ def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envel sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(containerapp_job_envelope)) @@ -901,7 +897,7 @@ def create_or_update(cls, cmd, resource_group_name, name, containerapp_job_envel sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) return poll(cmd, request_url, "inprogress") return r.json() @@ -917,7 +913,7 @@ def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wa sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PATCH", request_url, body=json.dumps(containerapp_job_envelope)) @@ -930,7 +926,7 @@ def update(cls, cmd, resource_group_name, name, containerapp_job_envelope, no_wa sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) response = poll_results(cmd, request_url) if response is None: raise ResourceNotFoundError("Could not find a container App Job") @@ -949,7 +945,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -963,7 +959,7 @@ def list_by_subscription(cls, cmd, formatter=lambda x: x): request_url = "{}/subscriptions/{}/providers/Microsoft.App/jobs?api-version={}".format( management_hostname.strip('/'), sub_id, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -984,7 +980,7 @@ def list_by_resource_group(cls, cmd, resource_group_name, formatter=lambda x: x) management_hostname.strip('/'), sub_id, resource_group_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1004,7 +1000,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1017,7 +1013,7 @@ def delete(cls, cmd, resource_group_name, name, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1037,7 +1033,7 @@ def start_job(cls, cmd, resource_group_name, name, containerapp_job_start_envelo sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) if containerapp_job_start_envelope is None: r = send_raw_request(cmd.cli_ctx, "POST", request_url) else: @@ -1057,7 +1053,7 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) else: url_fmt = "{}/subscriptions/{}/resourceGroups/{}/providers/Microsoft.App/jobs/{}/stop/{}?api-version={}" request_url = url_fmt.format( @@ -1066,7 +1062,7 @@ def stop_job(cls, cmd, resource_group_name, name, job_execution_name, job_execut resource_group_name, name, job_execution_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=json.dumps(job_execution_names)) return r.json() @@ -1081,7 +1077,7 @@ def get_executions(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1097,7 +1093,7 @@ def get_single_execution(cls, cmd, resource_group_name, name, job_execution_name resource_group_name, name, job_execution_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1113,16 +1109,14 @@ def list_secrets(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "POST", request_url, body=None) return r.json() class GitHubActionClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope, headers, no_wait=False): @@ -1134,7 +1128,7 @@ def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(github_action_envelope), headers=headers) @@ -1147,7 +1141,7 @@ def create_or_update(cls, cmd, resource_group_name, name, github_action_envelope sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) return poll(cmd, request_url, "inprogress") return r.json() @@ -1162,7 +1156,7 @@ def show(cls, cmd, resource_group_name, name): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1177,7 +1171,7 @@ def delete(cls, cmd, resource_group_name, name, headers, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url, headers=headers) @@ -1190,7 +1184,7 @@ def delete(cls, cmd, resource_group_name, name, headers, no_wait=False): sub_id, resource_group_name, name, - cls.get_api_version()) + cls.api_version) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1231,9 +1225,7 @@ def get_workflow_name(cls, cmd, repo, branch_name, container_app_name, token): class DaprComponentClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr_component_envelope, no_wait=False): @@ -1247,7 +1239,7 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr resource_group_name, environment_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(dapr_component_envelope)) @@ -1261,7 +1253,7 @@ def create_or_update(cls, cmd, resource_group_name, environment_name, name, dapr resource_group_name, environment_name, name, - cls.get_api_version()) + cls.api_version) return poll(cmd, request_url, "inprogress") return r.json() @@ -1277,7 +1269,7 @@ def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False) resource_group_name, environment_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1291,7 +1283,7 @@ def delete(cls, cmd, resource_group_name, environment_name, name, no_wait=False) resource_group_name, environment_name, name, - cls.get_api_version()) + cls.api_version) if r.status_code == 202: from azure.cli.core.azclierror import ResourceNotFoundError @@ -1313,7 +1305,7 @@ def show(cls, cmd, resource_group_name, environment_name, name): resource_group_name, environment_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1329,7 +1321,7 @@ def list(cls, cmd, resource_group_name, environment_name, formatter=lambda x: x) sub_id, resource_group_name, environment_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1349,9 +1341,7 @@ def list(cls, cmd, resource_group_name, environment_name, formatter=lambda x: x) class StorageClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_envelope, no_wait=False): @@ -1364,7 +1354,7 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve resource_group_name, env_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "PUT", request_url, body=json.dumps(storage_envelope)) @@ -1378,7 +1368,7 @@ def create_or_update(cls, cmd, resource_group_name, env_name, name, storage_enve resource_group_name, env_name, name, - cls.get_api_version()) + cls.api_version) return poll(cmd, request_url, "waiting") return r.json() @@ -1394,7 +1384,7 @@ def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): resource_group_name, env_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) @@ -1408,7 +1398,7 @@ def delete(cls, cmd, resource_group_name, env_name, name, no_wait=False): resource_group_name, env_name, name, - cls.get_api_version()) + cls.api_version) if r.status_code == 200: # 200 successful delete, 204 means storage not found from azure.cli.core.azclierror import ResourceNotFoundError try: @@ -1429,7 +1419,7 @@ def show(cls, cmd, resource_group_name, env_name, name): resource_group_name, env_name, name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() @@ -1446,7 +1436,7 @@ def list(cls, cmd, resource_group_name, env_name, formatter=lambda x: x): sub_id, resource_group_name, env_name, - cls.get_api_version()) + cls.api_version) r = send_raw_request(cmd.cli_ctx, "GET", request_url) j = r.json() @@ -1466,16 +1456,14 @@ def list(cls, cmd, resource_group_name, env_name, formatter=lambda x: x): class AuthClient(): - @classmethod - def get_api_version(cls): - return CURRENT_API_VERSION + api_version = CURRENT_API_VERSION @classmethod def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_config_name, auth_config_envelope, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.api_version}" if "properties" not in auth_config_envelope: # sdk does this for us temp_env = auth_config_envelope @@ -1487,7 +1475,7 @@ def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_con if no_wait: return r.json() elif r.status_code == 201: - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.api_version}" return poll(cmd, request_url, "waiting") return r.json() @@ -1496,14 +1484,14 @@ def create_or_update(cls, cmd, resource_group_name, container_app_name, auth_con def delete(cls, cmd, resource_group_name, container_app_name, auth_config_name, no_wait=False): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.api_version}" r = send_raw_request(cmd.cli_ctx, "DELETE", request_url) if no_wait: return # API doesn't return JSON (it returns no content) elif r.status_code in [200, 201, 202, 204]: - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.api_version}" if r.status_code == 200: # 200 successful delete, 204 means storage not found from azure.cli.core.azclierror import ResourceNotFoundError try: @@ -1517,7 +1505,7 @@ def delete(cls, cmd, resource_group_name, container_app_name, auth_config_name, def get(cls, cmd, resource_group_name, container_app_name, auth_config_name): management_hostname = cmd.cli_ctx.cloud.endpoints.resource_manager sub_id = get_subscription_id(cmd.cli_ctx) - request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.get_api_version()}" + request_url = f"{management_hostname}subscriptions/{sub_id}/resourceGroups/{resource_group_name}/providers/Microsoft.App/containerApps/{container_app_name}/authConfigs/{auth_config_name}?api-version={cls.api_version}" r = send_raw_request(cmd.cli_ctx, "GET", request_url) return r.json() From af02ec7129232f4d86923776b021a863910bcd7c Mon Sep 17 00:00:00 2001 From: xinyu pang <1042945277@qq.com> Date: Wed, 12 Jul 2023 16:02:01 +0800 Subject: [PATCH 8/8] fix tests --- .../tests/latest/test_containerapp_preview_scenario.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/containerapp-preview/azext_containerapp_preview/tests/latest/test_containerapp_preview_scenario.py b/src/containerapp-preview/azext_containerapp_preview/tests/latest/test_containerapp_preview_scenario.py index 38db7fe5b0d..ee8ab4eb884 100644 --- a/src/containerapp-preview/azext_containerapp_preview/tests/latest/test_containerapp_preview_scenario.py +++ b/src/containerapp-preview/azext_containerapp_preview/tests/latest/test_containerapp_preview_scenario.py @@ -24,16 +24,6 @@ def setUp(self): cmd = ['azdev', 'extension', 'add', 'k8s-extension'] run(cmd, check=True) - def tearDown(self): - cmd = ['azdev', 'extension', 'remove', 'containerapp'] - run(cmd, check=True) - cmd = ['azdev', 'extension', 'remove', 'connectedk8s'] - run(cmd, check=True) - cmd = ['azdev', 'extension', 'remove', 'k8s-extension'] - run(cmd, check=True) - - super(ContainerappScenarioTest, self).tearDown() - @ResourceGroupPreparer(location="eastus", random_name_length=15) def test_containerapp_preview_environment_type(self, resource_group): self.cmd('configure --defaults location={}'.format(TEST_LOCATION))