Skip to content

[AKS] az aks create/update: Add support for feature Advanced Container Networking Services#30312

Closed
FumingZhang wants to merge 5 commits into
Azure:devfrom
FumingZhang:fuming/acns-cli-2024-09-01
Closed

[AKS] az aks create/update: Add support for feature Advanced Container Networking Services#30312
FumingZhang wants to merge 5 commits into
Azure:devfrom
FumingZhang:fuming/acns-cli-2024-09-01

Conversation

@FumingZhang
Copy link
Copy Markdown
Member

Related command

  • az aks create
  • az aks update

Description

[AKS] az aks create/update: Add support for feature Advanced Container Networking Services, forked from #30208

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature


This checklist is used to make sure that common guidelines for a pull request are followed.

snguyen64 and others added 5 commits November 11, 2024 13:57
address pr comments, remove redundant commands, add more tests, raise mutual exclusion errors for acns cases

update test ctx

convert one test to non cilium for enable acns

update help msg

update style

update managed_cluster_decorator for acns and tests
@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd Bot commented Nov 12, 2024

❌AzureCLI-FullTest
️✔️acr
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
❌acs
❌2020-09-01-hybrid
❌3.12
Type Test Case Error Message Line
Failed test_aks_create_default_setting self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f66b73fe360>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f66bcbd4b00>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --location=westus2 --dns-name-prefix=cliaksdns00000...=1 --ssh-key-value=/tmp/tmpsb6579dy --service-principal=clitest000002 --client-secret=ReplacedSPPassword123* --no-wait'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, *kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_create_default_setting>
resource_group = 'clitest000001', resource_group_location = 'westus2'
sp_name = 'clitest000002', sp_password = 'ReplacedSPPassword123
'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_create_default_setting(self, resource_group, resource_group_location, sp_name, sp_password):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'dns_name_prefix': self.create_random_name('cliaksdns', 16),
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\'),
            'location': resource_group_location,
            'service_principal': sp_name,
            'client_secret': sp_password,
            'resource_type': 'Microsoft.ContainerService/ManagedClusters'
        })
    
        # create
        create_cmd = 'aks create --resource-group={resource_group} --name={name} --location={location} ' <br>                     '--dns-name-prefix={dns_name_prefix} --node-count=1 --ssh-key-value={ssh_key_value} ' <br>                     '--service-principal={service_principal} --client-secret={client_secret} ' <br>                     '--no-wait'
    
>       self.cmd(create_cmd, checks=[self.is_empty()])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:187: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f66b5223d40>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f66b5911ee0>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:161
Failed test_aks_nodepool_create_scale_delete self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f66b716bbc0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f66bcbe5b80>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --location=westus2 --dns-name-prefix=cliaksdns00000...node-count=1 --ssh-key-value=/tmp/tmpbl85o620 --service-principal=clitest000002 --client-secret=ReplacedSPPassword123*'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, *kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_nodepool_create_scale_delete>
resource_group = 'clitest000001', resource_group_location = 'westus2'
sp_name = 'clitest000002', sp_password = 'ReplacedSPPassword123
'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_nodepool_create_scale_delete(self, resource_group, resource_group_location, sp_name, sp_password):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        nodepool1_name = "nodepool1"
        nodepool2_name = "nodepool2"
        tags = "key1=value1"
        new_tags = "key2=value2"
        labels = "label1=value1"
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'dns_name_prefix': self.create_random_name('cliaksdns', 16),
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\'),
            'location': resource_group_location,
            'service_principal': sp_name,
            'client_secret': sp_password,
            'resource_type': 'Microsoft.ContainerService/ManagedClusters',
            'tags': tags,
            'new_tags': new_tags,
            'labels': labels,
            'nodepool1_name': nodepool1_name,
            'nodepool2_name': nodepool2_name
        })
    
        # create
        create_cmd = 'aks create --resource-group={resource_group} --name={name} --location={location} ' <br>                     '--dns-name-prefix={dns_name_prefix} --node-count=1 --ssh-key-value={ssh_key_value} ' <br>                     '--service-principal={service_principal} --client-secret={client_secret}'
>       self.cmd(create_cmd, checks=[
            self.exists('fqdn'),
            self.exists('nodeResourceGroup'),
            self.check('provisioningState', 'Succeeded')
        ])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:283: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f66b50757f0>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f66b58b1ee0>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:249
Failed test_aks_upgrade_node_image_only_cluster self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f66b71e4dd0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f66bcbe7d10>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --nodepool-name c000002 --vm-set-type VirtualMachineScaleSets --node-count=1 --ssh-key-value=/tmp/tmp_3eovs1u -o json'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_upgrade_node_image_only_cluster>
resource_group = 'clitest000001', resource_group_location = 'westus2'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_upgrade_node_image_only_cluster(self, resource_group, resource_group_location):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        node_pool_name = self.create_random_name('c', 6)
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'node_pool_name': node_pool_name,
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\')
        })
    
        create_cmd = 'aks create --resource-group={resource_group} --name={name} ' <br>                     '--nodepool-name {node_pool_name} ' <br>                     '--vm-set-type VirtualMachineScaleSets --node-count=1 ' <br>                     '--ssh-key-value={ssh_key_value} ' <br>                     '-o json'
>       self.cmd(create_cmd, checks=[
            self.check('provisioningState', 'Succeeded')
        ])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:395: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f66b5252810>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f66b598bb30>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:373
Failed test_aks_upgrade_node_image_only_nodepool The error message is too long, please check the pipeline log for details. azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:408
❌3.9
Type Test Case Error Message Line
Failed test_aks_create_default_setting self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f774c1f8d00>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f774de58880>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --location=westus2 --dns-name-prefix=cliaksdns00000...=1 --ssh-key-value=/tmp/tmp29pvqsz8 --service-principal=clitest000002 --client-secret=ReplacedSPPassword123* --no-wait'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, *kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_create_default_setting>
resource_group = 'clitest000001', resource_group_location = 'westus2'
sp_name = 'clitest000002', sp_password = 'ReplacedSPPassword123
'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_create_default_setting(self, resource_group, resource_group_location, sp_name, sp_password):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'dns_name_prefix': self.create_random_name('cliaksdns', 16),
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\'),
            'location': resource_group_location,
            'service_principal': sp_name,
            'client_secret': sp_password,
            'resource_type': 'Microsoft.ContainerService/ManagedClusters'
        })
    
        # create
        create_cmd = 'aks create --resource-group={resource_group} --name={name} --location={location} ' <br>                     '--dns-name-prefix={dns_name_prefix} --node-count=1 --ssh-key-value={ssh_key_value} ' <br>                     '--service-principal={service_principal} --client-secret={client_secret} ' <br>                     '--no-wait'
    
>       self.cmd(create_cmd, checks=[self.is_empty()])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:187: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f774a0c0280>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f774a0be070>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:161
Failed test_aks_nodepool_create_scale_delete self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f774c207f70>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f774de42eb0>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --location=westus2 --dns-name-prefix=cliaksdns00000...node-count=1 --ssh-key-value=/tmp/tmpymt5b1w6 --service-principal=clitest000002 --client-secret=ReplacedSPPassword123*'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, *kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_nodepool_create_scale_delete>
resource_group = 'clitest000001', resource_group_location = 'westus2'
sp_name = 'clitest000002', sp_password = 'ReplacedSPPassword123
'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_nodepool_create_scale_delete(self, resource_group, resource_group_location, sp_name, sp_password):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        nodepool1_name = "nodepool1"
        nodepool2_name = "nodepool2"
        tags = "key1=value1"
        new_tags = "key2=value2"
        labels = "label1=value1"
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'dns_name_prefix': self.create_random_name('cliaksdns', 16),
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\'),
            'location': resource_group_location,
            'service_principal': sp_name,
            'client_secret': sp_password,
            'resource_type': 'Microsoft.ContainerService/ManagedClusters',
            'tags': tags,
            'new_tags': new_tags,
            'labels': labels,
            'nodepool1_name': nodepool1_name,
            'nodepool2_name': nodepool2_name
        })
    
        # create
        create_cmd = 'aks create --resource-group={resource_group} --name={name} --location={location} ' <br>                     '--dns-name-prefix={dns_name_prefix} --node-count=1 --ssh-key-value={ssh_key_value} ' <br>                     '--service-principal={service_principal} --client-secret={client_secret}'
>       self.cmd(create_cmd, checks=[
            self.exists('fqdn'),
            self.exists('nodeResourceGroup'),
            self.check('provisioningState', 'Succeeded')
        ])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:283: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f774a0be3d0>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f774a0c2640>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:249
Failed test_aks_upgrade_node_image_only_cluster self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f774c1c7d30>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f774deaf310>
command = 'aks create --resource-group=clitest000001 --name=cliakstest000001 --nodepool-name c000002 --vm-set-type VirtualMachineScaleSets --node-count=1 --ssh-key-value=/tmp/tmp2c6_q0gi -o json'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = AttributeError("'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'")
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception AttributeError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.acs.tests.hybrid_2020_09_01.test_aks_commands.AzureKubernetesServiceScenarioTest testMethod=test_aks_upgrade_node_image_only_cluster>
resource_group = 'clitest000001', resource_group_location = 'westus2'

    @AllowLargeResponse()
    @ResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
    @RoleBasedServicePrincipalPreparer()
    def test_aks_upgrade_node_image_only_cluster(self, resource_group, resource_group_location):
        # reset the count so in replay mode the random names will start with 0
        self.test_resources_count = 0
        # kwargs for string formatting
        aks_name = self.create_random_name('cliakstest', 16)
        node_pool_name = self.create_random_name('c', 6)
        self.kwargs.update({
            'resource_group': resource_group,
            'name': aks_name,
            'node_pool_name': node_pool_name,
            'ssh_key_value': self.generate_ssh_keys().replace('\', '\\')
        })
    
        create_cmd = 'aks create --resource-group={resource_group} --name={name} ' <br>                     '--nodepool-name {node_pool_name} ' <br>                     '--vm-set-type VirtualMachineScaleSets --node-count=1 ' <br>                     '--ssh-key-value={ssh_key_value} ' <br>                     '-o json'
>       self.cmd(create_cmd, checks=[
            self.check('provisioningState', 'Succeeded')
        ])

src/azure-cli/azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:395: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/acs/custom.py:674: in aks_create
    mc = aks_create_decorator.construct_mc_profile_default()
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6507: in construct_mc_profile_default
    mc = self.set_up_network_profile(mc)
 
 
 
 
                                   _ 

self = <azure.cli.command_modules.acs.managed_cluster_decorator.AKSManagedClusterCreateDecorator object at 0x7f774a10f490>
mc = <azure.mgmt.containerservice.v2020_11_01.models._models_py3.ManagedCluster object at 0x7f774a07d040>

    def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
        """Set up network profile for the ManagedCluster object.
    
        Build load balancer profile, verify outbound type and load balancer sku first, then set up network profile.
    
        :return: the ManagedCluster object
        """
        self._ensure_mc(mc)
    
        # build load balancer profile, which is part of the network profile
        load_balancer_profile = create_load_balancer_profile(
            self.context.get_load_balancer_managed_outbound_ip_count(),
            self.context.get_load_balancer_managed_outbound_ipv6_count(),
            self.context.get_load_balancer_outbound_ips(),
            self.context.get_load_balancer_outbound_ip_prefixes(),
            self.context.get_load_balancer_outbound_ports(),
            self.context.get_load_balancer_idle_timeout(),
            self.context.get_load_balancer_backend_pool_type(),
            models=self.models.load_balancer_models,
        )
    
        # verify outbound type
        # Note: Validation internally depends on load_balancer_sku, which is a temporary value that is
        # dynamically completed.
        outbound_type = self.context.get_outbound_type(
            load_balancer_profile=load_balancer_profile
        )
    
        # verify load balancer sku
        load_balancer_sku = safe_lower(self.context.get_load_balancer_sku())
    
        # verify network_plugin, pod_cidr, service_cidr, dns_service_ip, docker_bridge_address, network_policy
        network_plugin = self.context.get_network_plugin()
        network_plugin_mode = self.context.get_network_plugin_mode()
        (
            pod_cidr,
            service_cidr,
            dns_service_ip,
            docker_bridge_address,
            network_policy,
        ) = (
            self.context.get_pod_cidr_and_service_cidr_and_dns_service_ip_and_docker_bridge_address_and_network_policy()
        )
        network_profile = None
        # set up pod_cidrs, service_cidrs and ip_families
        (
            pod_cidrs,
            service_cidrs,
            ip_families
        ) = (
            self.context.get_pod_cidrs_and_service_cidrs_and_ip_families()
        )
    
        network_dataplane = self.context.get_network_dataplane()
    
>       acns = self.models.AdvancedNetworking()
E       AttributeError: 'AKSManagedClusterModels' object has no attribute 'AdvancedNetworking'

src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:5702: AttributeError
azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:373
Failed test_aks_upgrade_node_image_only_nodepool The error message is too long, please check the pipeline log for details. azure/cli/command_modules/acs/tests/hybrid_2020_09_01/test_aks_commands.py:408
️✔️latest
️✔️3.12
️✔️3.9
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.9
️✔️ams
️✔️latest
️✔️3.12
️✔️3.9
️✔️apim
️✔️latest
️✔️3.12
️✔️3.9
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.9
❌appservice
❌latest
❌3.12
Type Test Case Error Message Line
Failed test_functionapp_access_restriction_add self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f4e23a19550>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f4e29db9160>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(random_name_length=17, parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    # random_name_length is temporary until the bug fix in the API is deployed successfully & then should be removed.
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:112: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f4e23666840>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:102
Failed test_functionapp_access_restriction_add_ip_address_validation self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f4e23a19550>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f4e29dfd100>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add_ip_address_validation>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add_ip_address_validation(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:132: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f4e234d3500>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:123
Failed test_functionapp_access_restriction_add_scm self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f4e235008c0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f4e29dff590>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add_scm>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add_scm(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:213: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f4e232d7830>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:204
Failed test_functionapp_access_restriction_remove self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f4e235008c0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f4e29c1fe90>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.12/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_remove>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_remove(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:187: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.12/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f4e232d7830>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:178
Failed test_functionapp_access_restriction_remove_scm The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:224
Failed test_functionapp_access_restriction_set_complex The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:82
Failed test_functionapp_access_restriction_set_simple The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:51
Failed test_functionapp_access_restriction_show The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:26
Failed test_functionapp_reserved_instance The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:171
Failed test_functionapp_https_only The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:193
Failed test_functionapp_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:212
Failed test_move_plan_to_elastic The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:366
Failed test_functionapp_consumption_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:433
Failed test_functionapp_consumption_ragrs_storage_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:461
Failed test_functionapp_enable_dapr The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:640
Failed test_functionapp_config_with_appcontainer_managed_environment_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1198
Failed test_functionapp_container_config_set_replicas The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1263
Failed test_functionapp_create_with_appcontainer_managed_environment The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:984
Failed test_functionapp_create_with_appcontainer_managed_environment_add_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1072
Failed test_functionapp_create_with_appcontainer_managed_environment_existing_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1008
Failed test_functionapp_create_with_appcontainer_managed_environment_list_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1125
Failed test_functionapp_create_with_appcontainer_managed_environment_remove_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1100
Failed test_functionapp_create_with_replicas The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1224
Failed test_functionapp_delete_functions The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1150
Failed test_functionapp_windows_without_runtime The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1513
Failed test_functionapp_with_app_insights_key The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1531
Failed test_functionapp_with_app_insights_conn_string The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1562
Failed test_functionapp_with_default_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1637
Failed test_functionapp_with_no_default_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1659
Failed test_functionapp_create_default_rg_and_workspace The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1687
Failed test_functionapp_existing_default_rg The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1715
Failed test_functionapp_existing_workspace The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1704
Failed test_functionapp_on_linux_dotnet_consumption The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1886
Failed test_functionapp_keys_delete The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2091
Failed test_functionapp_keys_list The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2067
Failed test_functionapp_keys_set The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2040
Failed test_functionapp_keys_set_slot The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2118
Failed test_functionapp_local_context The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2525
Failed test_functionapp_assign_user_identity The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2581
Failed test_functionapp_remove_identity The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2613
Failed test_functionapp_vnetE2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2673
Failed test_functionapp_vnet_EP_sku_E2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2769
Failed test_functionapp_vnet_basic_sku_E2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2747
Failed test_functionapp_vnet_duplicate_name The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2791
Failed test_functionapp_vnet_integration_consumption_plan The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2715
Failed test_functionapp_cors The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_webapp_commands.py:1578
❌3.9
Type Test Case Error Message Line
Failed test_functionapp_access_restriction_add self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f2aeb0d0580>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f2af2122b20>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(random_name_length=17, parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    # random_name_length is temporary until the bug fix in the API is deployed successfully & then should be removed.
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:112: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f2aeaf7cfd0>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:102
Failed test_functionapp_access_restriction_add_ip_address_validation self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f2aeb10e7f0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f2af2133f10>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add_ip_address_validation>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add_ip_address_validation(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:132: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f2aeaf8bd00>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:123
Failed test_functionapp_access_restriction_add_scm self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f2aeb0c67c0>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f2af20cd970>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_add_scm>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_add_scm(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:213: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f2aeaf7bc10>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:204
Failed test_functionapp_access_restriction_remove self = <azure.cli.testsdk.base.ExecutionResult object at 0x7f2aeb0cfb20>
cli_ctx = <azure.cli.core.mock.DummyCli object at 0x7f2af20ef820>
command = 'functionapp create -g clitest.rg000001 -n cli-funcapp-nwr000003 --consumption-plan-location northeurope -s clitest000002 --functions-version 4'
expect_failure = False

    def in_process_execute(self, cli_ctx, command, expect_failure=False):
        from io import StringIO
        from vcr.errors import CannotOverwriteExistingCassetteException
    
        if command.startswith('az '):
            command = command[3:]
    
        stdout_buf = StringIO()
        logging_buf = StringIO()
        try:
            # issue: stderr cannot be redirect in this form, as a result some failure information
            # is lost when command fails.
>           self.exit_code = cli_ctx.invoke(shlex.split(command), out_file=stdout_buf) or 0

src/azure-cli-testsdk/azure/cli/testsdk/base.py:302: 
                                        
env/lib/python3.9/site-packages/knack/cli.py:245: in invoke
    exit_code = self.exception_handler(ex)
src/azure-cli-core/azure/cli/core/init.py:129: in exception_handler
    return handle_exception(ex)
                                        

ex = ValidationError('dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/')
args = (), kwargs = {}

    def handle_main_exception(ex, *args, **kwargs):  # pylint: disable=unused-argument
        if isinstance(ex, CannotOverwriteExistingCassetteException):
            # This exception usually caused by a no match HTTP request. This is a product error
            # that is caused by change of SDK invocation.
            raise ex
    
>       raise CliExecutionError(ex)
E       azure.cli.testsdk.exceptions.CliExecutionError: The CLI throws exception ValidationError during execution and fails the command.

src/azure-cli-testsdk/azure/cli/testsdk/patches.py:35: CliExecutionError

During handling of the above exception, another exception occurred:

self = <azure.cli.command_modules.appservice.tests.latest.test_functionapp_access_restriction_commands.FunctionAppAccessRestrictionScenarioTest testMethod=test_functionapp_access_restriction_remove>
resource_group = 'clitest.rg000001', location = 'northeurope'

    @ResourceGroupPreparer(parameter_name_for_location='location', location=WINDOWS_ASP_LOCATION_WEBAPP)
    @StorageAccountPreparer(location=WINDOWS_ASP_LOCATION_WEBAPP)
    def test_functionapp_access_restriction_remove(self, resource_group, location):
        self.kwargs.update({
            'app_name': self.create_random_name(prefix='cli-funcapp-nwr', length=24),
            'loc': location
        })
    
>       self.cmd('functionapp create -g {rg} -n {app_name} --consumption-plan-location {loc} -s {sa} --functions-version 4', checks=[
            JMESPathCheck('state', 'Running')
        ])

src/azure-cli/azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:187: 
 
                                       
src/azure-cli-testsdk/azure/cli/testsdk/base.py:176: in cmd
    return execute(self.cli_ctx, command, expect_failure=expect_failure).assert_with_checks(checks)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:251: in init
    self.in_process_execute(cli_ctx, command, expect_failure=expect_failure)
src/azure-cli-testsdk/azure/cli/testsdk/base.py:314: in in_process_execute
    raise ex.exception
env/lib/python3.9/site-packages/knack/cli.py:233: in invoke
    cmd_result = self.invocation.execute(args)
src/azure-cli-core/azure/cli/core/commands/init.py:666: in execute
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:733: in run_jobs_serially
    results.append(self.run_job(expanded_arg, cmd_copy))
src/azure-cli-core/azure/cli/core/commands/init.py:725: in run_job
    return cmd_copy.exception_handler(ex)
src/azure-cli/azure/cli/command_modules/appservice/commands.py:46: in ex_handler
    raise ex
src/azure-cli-core/azure/cli/core/commands/init.py:703: in run_job
    result = cmd_copy(params)
src/azure-cli-core/azure/cli/core/commands/init.py:336: in call
    return self.handler(*args, **kwargs)
src/azure-cli-core/azure/cli/core/commands/command_operation.py:121: in handler
    return op(**command_args)
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4996: in create_functionapp
    matched_runtime = runtime_helper.resolve("dotnet" if not runtime else runtime,
src/azure-cli/azure/cli/command_modules/appservice/custom.py:4399: in resolve
    self.validate_end_of_life_date(
 
 
 
 
 
 
                                 _ 

self = <azure.cli.command_modules.appservice.custom._FunctionAppStackRuntimeHelper object at 0x7f2aeaf85ca0>
runtime = 'dotnet', version = '6'

    def validate_end_of_life_date(self, runtime, version):
        from dateutil.relativedelta import relativedelta
        today = datetime.datetime.now(datetime.timezone.utc)
        six_months = today + relativedelta(months=+6)
        runtimes_eol = [r for r in self.end_of_life_dates if runtime == r.name]
        matched_runtime_eol = next((r for r in runtimes_eol if r.version == version), None)
        if matched_runtime_eol:
            eol = matched_runtime_eol.eol
            runtime_deprecation_link = matched_runtime_eol.deprecation_link or ''
    
            if eol < today:
>               raise ValidationError('{} has reached EOL on {} and is no longer supported. {}'
                                      .format(runtime, eol.date(), runtime_deprecation_link))
E               azure.cli.core.azclierror.ValidationError: dotnet has reached EOL on 2024-11-12 and is no longer supported. https://azure.microsoft.com/en-us/updates/dotnet6support/

src/azure-cli/azure/cli/command_modules/appservice/custom.py:4382: ValidationError
azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:178
Failed test_functionapp_access_restriction_remove_scm The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:224
Failed test_functionapp_access_restriction_set_complex The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:82
Failed test_functionapp_access_restriction_set_simple The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:51
Failed test_functionapp_access_restriction_show The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_access_restriction_commands.py:26
Failed test_functionapp_reserved_instance The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:171
Failed test_functionapp_https_only The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:193
Failed test_functionapp_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:212
Failed test_move_plan_to_elastic The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:366
Failed test_functionapp_consumption_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:433
Failed test_functionapp_consumption_ragrs_storage_e2e The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:461
Failed test_functionapp_enable_dapr The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:640
Failed test_functionapp_config_with_appcontainer_managed_environment_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1198
Failed test_functionapp_container_config_set_replicas The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1263
Failed test_functionapp_create_with_appcontainer_managed_environment The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:984
Failed test_functionapp_create_with_appcontainer_managed_environment_add_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1072
Failed test_functionapp_create_with_appcontainer_managed_environment_existing_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1008
Failed test_functionapp_create_with_appcontainer_managed_environment_list_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1125
Failed test_functionapp_create_with_appcontainer_managed_environment_remove_vnet_error The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1100
Failed test_functionapp_create_with_replicas The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1224
Failed test_functionapp_delete_functions The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1150
Failed test_functionapp_windows_without_runtime The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1513
Failed test_functionapp_with_app_insights_key The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1531
Failed test_functionapp_with_app_insights_conn_string The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1562
Failed test_functionapp_with_default_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1637
Failed test_functionapp_with_no_default_app_insights The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1659
Failed test_functionapp_create_default_rg_and_workspace The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1687
Failed test_functionapp_existing_default_rg The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1715
Failed test_functionapp_existing_workspace The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1704
Failed test_functionapp_on_linux_dotnet_consumption The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:1886
Failed test_functionapp_keys_delete The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2091
Failed test_functionapp_keys_list The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2067
Failed test_functionapp_keys_set The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2040
Failed test_functionapp_keys_set_slot The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2118
Failed test_functionapp_local_context The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2525
Failed test_functionapp_assign_user_identity The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2581
Failed test_functionapp_remove_identity The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2613
Failed test_functionapp_vnetE2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2673
Failed test_functionapp_vnet_EP_sku_E2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2769
Failed test_functionapp_vnet_basic_sku_E2E The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2747
Failed test_functionapp_vnet_duplicate_name The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2791
Failed test_functionapp_vnet_integration_consumption_plan The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_functionapp_commands.py:2715
Failed test_functionapp_cors The error message is too long, please check the pipeline log for details. azure/cli/command_modules/appservice/tests/latest/test_webapp_commands.py:1578
️✔️aro
️✔️latest
️✔️3.12
️✔️3.9
️✔️backup
️✔️latest
️✔️3.12
️✔️3.9
️✔️batch
️✔️latest
️✔️3.12
️✔️3.9
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.9
️✔️billing
️✔️latest
️✔️3.12
️✔️3.9
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.9
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.9
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.9
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.9
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.9
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.9
️✔️config
️✔️latest
️✔️3.12
️✔️3.9
️✔️configure
️✔️latest
️✔️3.12
️✔️3.9
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.9
️✔️container
️✔️latest
️✔️3.12
️✔️3.9
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.9
️✔️core
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.9
️✔️databoxedge
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️dls
️✔️latest
️✔️3.12
️✔️3.9
️✔️dms
️✔️latest
️✔️3.12
️✔️3.9
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.9
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.9
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.9
️✔️find
️✔️latest
️✔️3.12
️✔️3.9
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.9
️✔️identity
️✔️latest
️✔️3.12
️✔️3.9
️✔️iot
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️keyvault
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️lab
️✔️latest
️✔️3.12
️✔️3.9
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.9
️✔️maps
️✔️latest
️✔️3.12
️✔️3.9
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.9
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.9
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.9
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.9
️✔️network
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.9
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.9
️✔️profile
️✔️latest
️✔️3.12
️✔️3.9
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.9
️✔️redis
️✔️latest
️✔️3.12
️✔️3.9
️✔️relay
️✔️latest
️✔️3.12
️✔️3.9
️✔️resource
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️role
️✔️latest
️✔️3.12
️✔️3.9
️✔️search
️✔️latest
️✔️3.12
️✔️3.9
️✔️security
️✔️latest
️✔️3.12
️✔️3.9
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.9
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.9
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.9
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.9
️✔️sql
️✔️latest
️✔️3.12
️✔️3.9
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.9
️✔️storage
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.9
️✔️telemetry
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️util
️✔️latest
️✔️3.12
️✔️3.9
️✔️vm
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9

@azure-client-tools-bot-prd
Copy link
Copy Markdown

Hi @FumingZhang,
Since the current milestone time is less than 7 days, this pr will be reviewed in the next milestone.

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd Bot commented Nov 12, 2024

⚠️AzureCLI-BreakingChangeTest
⚠️acs
rule cmd_name rule_message suggest_message
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter disable_acns_observability
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter disable_acns_security
⚠️ 1006 - ParaAdd aks create cmd aks create added parameter enable_acns
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_acns_observability
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_acns_security
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter disable_acns
⚠️ 1006 - ParaAdd aks update cmd aks update added parameter enable_acns

@yonzhan
Copy link
Copy Markdown
Collaborator

yonzhan commented Nov 12, 2024

Thank you for your contribution! We will review the pull request and get back to you soon.

@yanzhudd
Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 3 pipeline(s).

@FumingZhang FumingZhang deleted the fuming/acns-cli-2024-09-01 branch September 10, 2025 03:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AKS az aks/acs/openshift Auto-Assign Auto assign by bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants