From bc286f07ad5ba4612a3dfe0f4ddddd936acdc548 Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Sun, 8 Oct 2023 16:38:13 +0800 Subject: [PATCH 1/7] fix help/examples --- .../azext_network_manager/_help.py | 16 ++++++++-------- .../network/manager/connect_config/_create.py | 10 +++++----- .../network/manager/connect_config/_update.py | 8 ++++---- .../connection/management_group/_create.py | 2 +- .../manager/group/static_member/_create.py | 2 +- .../network/manager/group/static_member/_list.py | 2 +- .../manager/security_admin_config/_delete.py | 2 +- .../rule_collection/_create.py | 2 +- .../rule_collection/_update.py | 2 +- 9 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/network-manager/azext_network_manager/_help.py b/src/network-manager/azext_network_manager/_help.py index 0b2a6c49eb2..de20559a73f 100644 --- a/src/network-manager/azext_network_manager/_help.py +++ b/src/network-manager/azext_network_manager/_help.py @@ -55,9 +55,9 @@ Usage: --applies-to-groups network-group-id=XX use-hub-gateway=XX is-global=XX group-connectivity=XX network-group-id: Network group Id. - use-hub-gateway: Flag if need to use hub gateway. - is-global: Flag if global is supported. - group-connectivity: Group connectivity type. Allowed values: None, DirectlyConnected + use-hub-gateway: Flag if need to use hub gateway. Only required if topology is Hub and Spoke. + is-global: Flag if global is supported. Only required if topology is Hub and Spoke. + group-connectivity: Group connectivity type. Only required if topology is Hub and Spoke. Allowed values: None, DirectlyConnected Multiple actions can be specified by using more than one --applies-to-groups argument. - name: --hub @@ -66,7 +66,7 @@ Usage: --hub resource-id=XX resource-type=XX resource-id: Resource ID - resource-type: Resource Type + resource-type: Resource type, suggested value(s): 'Microsoft.Network/virtualNetworks' examples: - name: Create/Update Azure Virtual Network Manager Connectivity Configuration @@ -90,9 +90,9 @@ Usage: --applies-to-groups network-group-id=XX use-hub-gateway=XX is-global=XX group-connectivity=XX network-group-id: Network group Id. - use-hub-gateway: Flag if need to use hub gateway. - is-global: Flag if global is supported. - group-connectivity: Group connectivity type. Allowed values: None, DirectlyConnected + use-hub-gateway: Flag if need to use hub gateway. Only required if topology is Hub and Spoke. + is-global: Flag if global is supported. Only required if topology is Hub and Spoke. + group-connectivity: Group connectivity type. Only required if topology is Hub and Spoke. Allowed values: None, DirectlyConnected Multiple actions can be specified by using more than one --applies-to-groups argument. - name: --hub @@ -101,7 +101,7 @@ Usage: --hub resource-id=XX resource-type=XX resource-id: Resource ID - resource-type: Resource Type + resource-type: Resource type, suggested value(s): 'Microsoft.Network/virtualNetworks' """ helps['network manager security-admin-config rule-collection create'] = """ diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py index aa87d9a7eb6..4043d1fd3f0 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create a new network manager connectivity configuration :example: Create/Update Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is- global=false network-group-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/pr oviders/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" + az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is-global=false network-group-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { @@ -101,13 +101,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _element = cls._args_schema.applies_to_groups.Element _element.group_connectivity = AAZStrArg( options=["group-connectivity"], - help="Group connectivity type.", + help="Group connectivity type. Only required if topology is Hub and Spoke.", required=True, enum={"DirectlyConnected": "DirectlyConnected", "None": "None"}, ) _element.is_global = AAZStrArg( options=["is-global"], - help="Flag if global is supported.", + help="Flag if global is supported. Only required if topology is Hub and Spoke.", enum={"False": "False", "True": "True"}, ) _element.network_group_id = AAZStrArg( @@ -117,7 +117,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.use_hub_gateway = AAZStrArg( options=["use-hub-gateway"], - help="Flag if need to use hub gateway.", + help="Flag if need to use hub gateway. Only required if topology is Hub and Spoke.", enum={"False": "False", "True": "True"}, ) @@ -131,7 +131,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.resource_type = AAZStrArg( options=["resource-type"], - help="Resource Type.", + help="Resource Type, suggested value(s): 'Microsoft.Network/virtualNetworks'", ) return cls._args_schema diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py index e78014443b9..dd2a0a7ed62 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py @@ -108,12 +108,12 @@ def _build_arguments_schema(cls, *args, **kwargs): _element = cls._args_schema.applies_to_groups.Element _element.group_connectivity = AAZStrArg( options=["group-connectivity"], - help="Group connectivity type.", + help="Group connectivity type. Only required if topology is Hub and Spoke.", enum={"DirectlyConnected": "DirectlyConnected", "None": "None"}, ) _element.is_global = AAZStrArg( options=["is-global"], - help="Flag if global is supported.", + help="Flag if global is supported. Only required if topology is Hub and Spoke.", nullable=True, enum={"False": "False", "True": "True"}, ) @@ -123,7 +123,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.use_hub_gateway = AAZStrArg( options=["use-hub-gateway"], - help="Flag if need to use hub gateway.", + help="Flag if need to use hub gateway. Only required if topology is Hub and Spoke.", nullable=True, enum={"False": "False", "True": "True"}, ) @@ -141,7 +141,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.resource_type = AAZStrArg( options=["resource-type"], - help="Resource Type.", + help="Resource Type, suggested value(s): 'Microsoft.Network/virtualNetworks'", nullable=True, ) return cls._args_schema diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_create.py index b1b6a0f5160..e83ef67ffac 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create a network manager connection on this management group. :example: Create network manager connection management-group - az network manager connection management-group create --management-group-id "testManagementGroupId" --connection-name "testNetworkManagerConnection" --network-manager "testNetworkManagerId" --description "A sample policy" + az network manager connection management-group create --management-group-id "testManagementGroupId" --connection-name "testNetworkManagerConnection" --network-manager "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testGroup/providers/Microsoft.Network/networkManagers/testNm" --description "A sample connection." """ _aaz_info = { diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_create.py index caa91b86440..3998602f274 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create a static member. :example: Create network manager group static-member - az network manager group static-member create --network-group-name "testNetworkManagerGroup" --network-manager-name "testNetworkManager" --resource-group "rg1" --static-member-name "testStaticMember" --resource_id "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/ Microsoft.Network/virtualnetworks/virtual_network" + az network manager group static-member create --network-group-name "testNetworkManagerGroup" --network-manager-name "testNetworkManager" --resource-group "rg1" --static-member-name "testStaticMember" --resource-id "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/ Microsoft.Network/virtualnetworks/virtual_network" """ _aaz_info = { diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_list.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_list.py index d858b62c347..3ebd413c6f0 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_list.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/group/static_member/_list.py @@ -15,7 +15,7 @@ "network manager group static-member list", ) class List(AAZCommand): - """List the specified static member. + """List the static members within a specific network group. :example: List static member in a network manager group az network manager group static-member list --network-manager-name "testNetworkManager" --resource-group "rg1" --network-group-name "testNetworkManagerGroup" diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/_delete.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/_delete.py index faba8a90c0b..cae79022a2a 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/_delete.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/_delete.py @@ -19,7 +19,7 @@ class Delete(AAZCommand): """Delete a network manager security admin configuration. :example: Delete a network manager security admin configuration. - az network manager security-admin-config delete --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" --resource-group "rg1" --force + az network manager security-admin-config delete --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" --resource-group "rg1" --force n """ _aaz_info = { diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_create.py index d9aed6251cd..7bc6af2aaa0 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create an admin rule collection. :example: Create security admin rule collections - az network manager security-admin-config rule-collection create --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" -g "rg1" --rule-collection-name "myTestCollection" --description "A sample description" --applies-to-groups network-group-id="/subscriptions/sub_id/resourceGroups/rgid/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup" + az network manager security-admin-config rule-collection create --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" -g "rg1" --rule-collection-name "myTestCollection" --description "A sample description" --applies-to-groups network-group-id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/networkManagers/testNetworkManager/networkGroups/testNetworkGroup" """ _aaz_info = { diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_update.py index 30f274d3877..9ce91aee1ec 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/security_admin_config/rule_collection/_update.py @@ -18,7 +18,7 @@ class Update(AAZCommand): """Update an admin rule collection. :example: Update security admin rule collection - az network manager security-admin-config rule-collection update --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" --resource-group "rg1" --rule-collection-name "myTestCollection" + az network manager security-admin-config rule-collection update --configuration-name "myTestSecurityConfig" --network-manager-name "testNetworkManager" --resource-group "rg1" --rule-collection-name "myTestCollection" --description "Updated description." --applies-to-groups network-group-id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/networkManagers/testNetworkManager/networkGroups/testNetworkGroup" """ _aaz_info = { From 788e43295f5e18c74ca8dec05cbe813ee3974465 Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Sun, 8 Oct 2023 17:02:09 +0800 Subject: [PATCH 2/7] missed / --- .../aaz/latest/network/manager/connect_config/_create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py index 4043d1fd3f0..aec2c0e486a 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create a new network manager connectivity configuration :example: Create/Update Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is-global=false network-group-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" + az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is-global=false network-group-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="/subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { From 439ef7a273ca9c170d6aad75cd5ab5188d415453 Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Sun, 8 Oct 2023 17:07:37 +0800 Subject: [PATCH 3/7] missed / --- .../aaz/latest/network/manager/connect_config/_create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py index aec2c0e486a..41dd003f2ba 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py @@ -18,7 +18,7 @@ class Create(AAZCommand): """Create a new network manager connectivity configuration :example: Create/Update Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is-global=false network-group-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="/subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" + az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-groups group-connectivity="None" is-global=false network-group-id="/subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { From 3897cb801a3c7fed0bbe38d73bc81c6c6f172675 Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Mon, 9 Oct 2023 11:22:27 +0800 Subject: [PATCH 4/7] make some params required and nonupdatable --- .../connection/management_group/_update.py | 7 ----- .../connection/subscription/_update.py | 7 ----- .../manager/scope_connection/_update.py | 14 --------- .../azext_network_manager/commands.py | 14 ++++++++- .../azext_network_manager/custom.py | 30 ++++++++++++++++++- 5 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_update.py index ca3bb167cba..25b9441a7ac 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/management_group/_update.py @@ -66,12 +66,6 @@ def _build_arguments_schema(cls, *args, **kwargs): help="A description of the network manager connection.", nullable=True, ) - _args_schema.network_manager_id = AAZStrArg( - options=["--network-manager", "--network-manager-id"], - arg_group="Properties", - help="Network Manager Id.", - nullable=True, - ) return cls._args_schema def _execute_operations(self): @@ -290,7 +284,6 @@ def _update_instance(self, instance): properties = _builder.get(".properties") if properties is not None: properties.set_prop("description", AAZStrType, ".description") - properties.set_prop("networkManagerId", AAZStrType, ".network_manager_id") return _instance_value diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/subscription/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/subscription/_update.py index 2d1f52970b7..12f77ca8640 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/subscription/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connection/subscription/_update.py @@ -62,12 +62,6 @@ def _build_arguments_schema(cls, *args, **kwargs): help="A description of the network manager connection.", nullable=True, ) - _args_schema.network_manager_id = AAZStrArg( - options=["--network-manager", "--network-manager-id"], - arg_group="Properties", - help="Network Manager Id.", - nullable=True, - ) return cls._args_schema def _execute_operations(self): @@ -286,7 +280,6 @@ def _update_instance(self, instance): properties = _builder.get(".properties") if properties is not None: properties.set_prop("description", AAZStrType, ".description") - properties.set_prop("networkManagerId", AAZStrType, ".network_manager_id") return _instance_value diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/scope_connection/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/scope_connection/_update.py index 4b62554f76d..7331c4c0857 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/scope_connection/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/scope_connection/_update.py @@ -71,18 +71,6 @@ def _build_arguments_schema(cls, *args, **kwargs): help="A description of the scope connection.", nullable=True, ) - _args_schema.resource_id = AAZStrArg( - options=["--resource-id"], - arg_group="Properties", - help="Resource ID.", - nullable=True, - ) - _args_schema.tenant_id = AAZStrArg( - options=["--tenant-id"], - arg_group="Properties", - help="Tenant ID.", - nullable=True, - ) return cls._args_schema def _execute_operations(self): @@ -317,8 +305,6 @@ def _update_instance(self, instance): properties = _builder.get(".properties") if properties is not None: properties.set_prop("description", AAZStrType, ".description") - properties.set_prop("resourceId", AAZStrType, ".resource_id") - properties.set_prop("tenantId", AAZStrType, ".tenant_id") return _instance_value diff --git a/src/network-manager/azext_network_manager/commands.py b/src/network-manager/azext_network_manager/commands.py index ab0ee45e0b0..741ebe38ed6 100644 --- a/src/network-manager/azext_network_manager/commands.py +++ b/src/network-manager/azext_network_manager/commands.py @@ -29,6 +29,18 @@ def load_command_table(self, _): g.custom_command('create', 'network_manager_admin_rule_collection_create') g.custom_command('update', 'network_manager_admin_rule_collection_update') - with self.command_group("network manager group static-member") as g: + with self.command_group("network manager group static-member"): from .custom import GroupStaticMemberCreate self.command_table["network manager group static-member create"] = GroupStaticMemberCreate(loader=self) + + with self.command_group("network manager scope-connection"): + from .custom import ScopeConnectionCreate + self.command_table["network manager scope-connection create"] = ScopeConnectionCreate(loader=self) + + with self.command_group("network manager connection subscription"): + from .custom import ConnectionSubscriptionCreate + self.command_table["network manager connection subscription create"] = ConnectionSubscriptionCreate(loader=self) + + with self.command_group("network manager connection management-group"): + from .custom import ConnectionManagementGroupCreate + self.command_table["network manager connection management-group create"] = ConnectionManagementGroupCreate(loader=self) diff --git a/src/network-manager/azext_network_manager/custom.py b/src/network-manager/azext_network_manager/custom.py index bc727c89071..e0c4f03ecda 100644 --- a/src/network-manager/azext_network_manager/custom.py +++ b/src/network-manager/azext_network_manager/custom.py @@ -11,7 +11,9 @@ # pylint: disable=unused-argument from knack.util import CLIError from .aaz.latest.network.manager.group.static_member import Create as _GroupStaticMemberCreate - +from .aaz.latest.network.manager.scope_connection import Create as _ScopeConnectionCreate +from .aaz.latest.network.manager.connection.management_group import Create as _ConnectionManagementGroupCreate +from .aaz.latest.network.manager.connection.subscription import Create as _ConnectionSubscriptionCreate def network_manager_create(cmd, resource_group_name, @@ -256,4 +258,30 @@ def _build_arguments_schema(cls, *args, **kwargs): args_schema.resource_id._fmt = AAZResourceIdArgFormat( template="/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.Network/virtualNetworks/{}", ) + args_schema.resource_id._required = True + return args_schema + + +class ScopeConnectionCreate(_ScopeConnectionCreate): + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + args_schema = super()._build_arguments_schema(*args, **kwargs) + args_schema.resource_id._required = True + args_schema.tenant_id._required = True + return args_schema + + +class ConnectionSubscriptionCreate(_ConnectionSubscriptionCreate): + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + args_schema = super()._build_arguments_schema(*args, **kwargs) + args_schema.network_manager_id._required = True + return args_schema + + +class ConnectionManagementGroupCreate(_ConnectionManagementGroupCreate): + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + args_schema = super()._build_arguments_schema(*args, **kwargs) + args_schema.network_manager_id._required = True return args_schema From 076e48957a9a479aeb52d33a485b9e428f8f9a1b Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Mon, 9 Oct 2023 14:48:10 +0800 Subject: [PATCH 5/7] `az network manager security-admin-config rule-collection rule create/update` since --kind is not required, update based on params provided --- src/network-manager/azext_network_manager/custom.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/network-manager/azext_network_manager/custom.py b/src/network-manager/azext_network_manager/custom.py index e0c4f03ecda..a5c987909cc 100644 --- a/src/network-manager/azext_network_manager/custom.py +++ b/src/network-manager/azext_network_manager/custom.py @@ -15,6 +15,7 @@ from .aaz.latest.network.manager.connection.management_group import Create as _ConnectionManagementGroupCreate from .aaz.latest.network.manager.connection.subscription import Create as _ConnectionSubscriptionCreate + def network_manager_create(cmd, resource_group_name, network_manager_name, @@ -182,10 +183,10 @@ def network_manager_admin_rule_create(cmd, rule['configuration_name'] = configuration_name rule['rule_collection_name'] = rule_collection_name rule['rule_name'] = rule_name - if kind == "Default": + if kind == "Default" or flag is not None: rule['default'] = {} rule['default']['flag'] = flag - elif kind == "Custom": + else: rule['custom'] = {} rule['custom']['description'] = description rule['custom']['protocol'] = protocol @@ -223,11 +224,11 @@ def network_manager_admin_rule_update(cmd, rule['configuration_name'] = configuration_name rule['rule_collection_name'] = rule_collection_name rule['rule_name'] = rule_name - if kind == "Default": + if kind == "Default" or flag is not None: rule['default'] = {} if flag is not None: rule['default']['flag'] = flag - elif kind == "Custom": + else: rule['custom'] = {} if description is not None: rule['custom']['description'] = description From c316e193dd4975570600e48e102baa2901383de4 Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:12:02 +0800 Subject: [PATCH 6/7] test for rule update --- .../test_network_manager_admin_rule_crud.yaml | 104 +++++++++--------- .../tests/latest/test_network_scenario.py | 14 ++- 2 files changed, 64 insertions(+), 54 deletions(-) diff --git a/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_admin_rule_crud.yaml b/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_admin_rule_crud.yaml index 5eacc0f5cff..46ed8f987b5 100644 --- a/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_admin_rule_crud.yaml +++ b/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_admin_rule_crud.yaml @@ -19,13 +19,13 @@ interactions: ParameterSetName: - --name --description --scope-accesses --network-manager-scopes -l --resource-group User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager?api-version=2022-01-01 response: body: string: '{"name":"TestNetworkManager","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager","location":"eastus2","type":"Microsoft.Network/networkManagers","tags":{},"etag":"","properties":{"description":"My - Test Network Manager","networkManagerScopes":{"managementGroups":[],"subscriptions":["/subscriptions/00000000-0000-0000-0000-000000000000"],"crossTenantScopes":[]},"provisioningState":"Succeeded","networkManagerScopeAccesses":["SecurityAdmin","Connectivity"],"resourceGuid":"2167e9fb-4f3a-4fd3-b668-1c9764a29b79"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:15.8422552Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:15.8422552Z"}}' + Test Network Manager","networkManagerScopes":{"managementGroups":[],"subscriptions":["/subscriptions/00000000-0000-0000-0000-000000000000"],"crossTenantScopes":[]},"provisioningState":"Succeeded","networkManagerScopeAccesses":["SecurityAdmin","Connectivity"],"resourceGuid":"1c4a4d06-3f20-4dce-8be1-cced7bbf8ccc"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:04.7706913Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:04.7706913Z"}}' headers: cache-control: - no-cache @@ -34,7 +34,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:16 GMT + - Tue, 10 Oct 2023 06:08:05 GMT expires: - '-1' pragma: @@ -50,9 +50,9 @@ interactions: x-content-type-options: - nosniff x-ms-operation-identifier: - - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/d9b76fd9-a7d1-4650-a508-519f0647052b + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/2b10d9a8-6bbc-4bc9-a00e-bc6f99152eb9 x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1199' status: code: 200 message: OK @@ -74,13 +74,13 @@ interactions: ParameterSetName: - --name --network-manager-name --description -g User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup?api-version=2022-01-01 response: body: string: '{"name":"TestNetworkGroup","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup","type":"Microsoft.Network/networkManagers/networkGroups","etag":"","properties":{"description":"A - sample policy","provisioningState":"Succeeded","memberType":"VirtualNetwork","resourceGuid":"a71562dc-4495-41f8-bbb3-967f7f946164"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:18.3422658Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:18.3422658Z"}}' + sample policy","provisioningState":"Succeeded","memberType":"VirtualNetwork","resourceGuid":"9389b9c1-f7b4-4220-8b4b-026f36c28b4c"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:08.1284522Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:08.1284522Z"}}' headers: cache-control: - no-cache @@ -89,7 +89,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:17 GMT + - Tue, 10 Oct 2023 06:08:08 GMT expires: - '-1' pragma: @@ -105,7 +105,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1199' status: code: 200 message: OK @@ -127,12 +127,12 @@ interactions: ParameterSetName: - --name --network-group-name --network-manager-name --resource-id -g User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup/staticMembers/TestStaticMember?api-version=2022-01-01 response: body: - string: '{"name":"TestStaticMember","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup/staticMembers/TestStaticMember","type":"Microsoft.Network/networkManagers/networkGroups/staticMembers","etag":"","properties":{"resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/virtualnetworks/clitest.vn000002","provisioningState":"Updating","location":""},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:20.1500926Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:20.1500926Z"}}' + string: '{"name":"TestStaticMember","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup/staticMembers/TestStaticMember","type":"Microsoft.Network/networkManagers/networkGroups/staticMembers","etag":"","properties":{"resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/virtualnetworks/clitest.vn000002","provisioningState":"Updating","location":""},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:11.0790187Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:11.0790187Z"}}' headers: cache-control: - no-cache @@ -141,7 +141,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:20 GMT + - Tue, 10 Oct 2023 06:08:11 GMT expires: - '-1' pragma: @@ -157,7 +157,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1199' status: code: 200 message: OK @@ -179,13 +179,13 @@ interactions: ParameterSetName: - --configuration-name --network-manager-name -g --description User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig?api-version=2022-05-01 response: body: string: '{"name":"myTestSecurityConfig","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig","type":"Microsoft.Network/networkManagers/securityAdminConfigurations","etag":"","properties":{"description":"A - sample policy","provisioningState":"Succeeded","resourceGuid":"e9d3ac72-ccdc-4d59-b80a-791c3f1e334d","applyOnNetworkIntentPolicyBasedServices":[]},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:22.0644675Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:22.0644675Z"}}' + sample policy","provisioningState":"Succeeded","resourceGuid":"86949d6f-b282-4ca8-9bb4-26965bea4224","applyOnNetworkIntentPolicyBasedServices":[]},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:13.6143372Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:13.6143372Z"}}' headers: cache-control: - no-cache @@ -194,7 +194,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:22 GMT + - Tue, 10 Oct 2023 06:08:14 GMT expires: - '-1' pragma: @@ -210,7 +210,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1198' status: code: 200 message: OK @@ -234,13 +234,13 @@ interactions: - --configuration-name --network-manager-name -g --rule-collection-name --description --applies-to-groups User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection?api-version=2022-01-01 response: body: string: '{"name":"myTestCollection","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections","etag":"","properties":{"description":"A - sample policy","appliesToGroups":[{"networkGroupId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup"}],"provisioningState":"Succeeded","resourceGuid":"1742a477-2aed-4aec-9465-f73433a550f3"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:23.9480491Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:23.9480491Z"}}' + sample policy","appliesToGroups":[{"networkGroupId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup"}],"provisioningState":"Succeeded","resourceGuid":"fd1f9b81-6db6-4db5-8b6d-95da79e18b7a"},"systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:16.7025042Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:16.7025042Z"}}' headers: cache-control: - no-cache @@ -249,7 +249,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:24 GMT + - Tue, 10 Oct 2023 06:08:17 GMT expires: - '-1' pragma: @@ -265,7 +265,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1199' status: code: 200 message: OK @@ -289,12 +289,12 @@ interactions: - -g --network-manager-name --configuration-name --rule-collection-name --rule-name --kind --protocol --access --priority --direction User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule?api-version=2022-01-01 response: body: - string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"7c5fd69c-31ed-4189-b6a8-d16cd4bafb9b"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:25.9082031Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:25.9082031Z"}}' + string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"4651fbaf-9880-457b-bc44-47f336241f6c"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:19.2806519Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:19.2806519Z"}}' headers: cache-control: - no-cache @@ -303,7 +303,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:26 GMT + - Tue, 10 Oct 2023 06:08:19 GMT expires: - '-1' pragma: @@ -319,7 +319,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1195' + - '1198' status: code: 200 message: OK @@ -337,12 +337,12 @@ interactions: ParameterSetName: - -g --network-manager-name --configuration-name --rule-collection-name --rule-name User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule?api-version=2022-01-01 response: body: - string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"7000815c-0000-0200-0000-64ec1b620000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"7c5fd69c-31ed-4189-b6a8-d16cd4bafb9b"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:25.9082031Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:25.9082031Z"}}' + string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"3b014bfc-0000-0200-0000-6524ea530000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"4651fbaf-9880-457b-bc44-47f336241f6c"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:19.2806519Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:19.2806519Z"}}' headers: cache-control: - no-cache @@ -351,7 +351,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:27 GMT + - Tue, 10 Oct 2023 06:08:21 GMT expires: - '-1' pragma: @@ -384,12 +384,12 @@ interactions: - -g --network-manager-name --configuration-name --rule-collection-name --rule-name --access User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule?api-version=2022-01-01 response: body: - string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"7000815c-0000-0200-0000-64ec1b620000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"7c5fd69c-31ed-4189-b6a8-d16cd4bafb9b"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:25.9082031Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:25.9082031Z"}}' + string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"3b014bfc-0000-0200-0000-6524ea530000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"4651fbaf-9880-457b-bc44-47f336241f6c"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:19.2806519Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:19.2806519Z"}}' headers: cache-control: - no-cache @@ -398,7 +398,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:29 GMT + - Tue, 10 Oct 2023 06:08:23 GMT expires: - '-1' pragma: @@ -417,7 +417,7 @@ interactions: code: 200 message: OK - request: - body: '{"kind": "Custom", "properties": {"access": "Allow", "description": "", + body: '{"kind": "Custom", "properties": {"access": "Deny", "description": "", "destinationPortRanges": [], "destinations": [], "direction": "Inbound", "priority": 32, "protocol": "Tcp", "sourcePortRanges": [], "sources": []}}' headers: @@ -430,28 +430,28 @@ interactions: Connection: - keep-alive Content-Length: - - '219' + - '218' Content-Type: - application/json ParameterSetName: - -g --network-manager-name --configuration-name --rule-collection-name --rule-name --access User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule?api-version=2022-01-01 response: body: - string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"7c5fd69c-31ed-4189-b6a8-d16cd4bafb9b"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:25.9082031Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:30.0211117Z"}}' + string: '{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Deny","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"4651fbaf-9880-457b-bc44-47f336241f6c"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:19.2806519Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:24.2350466Z"}}' headers: cache-control: - no-cache content-length: - - '929' + - '928' content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:29 GMT + - Tue, 10 Oct 2023 06:08:24 GMT expires: - '-1' pragma: @@ -485,21 +485,21 @@ interactions: ParameterSetName: - -g --network-manager-name --configuration-name --rule-collection-name User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules?api-version=2022-01-01 response: body: - string: '{"nextLink":"","value":[{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"7000d45c-0000-0200-0000-64ec1b660000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Allow","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"7c5fd69c-31ed-4189-b6a8-d16cd4bafb9b"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-08-28T03:58:25.9082031Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-08-28T03:58:30.0211117Z"}}]}' + string: '{"nextLink":"","value":[{"name":"myRule","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule","type":"Microsoft.Network/networkManagers/securityAdminConfigurations/ruleCollections/rules","etag":"\"3b018cfc-0000-0200-0000-6524ea580000\"","properties":{"description":"","flag":"","priority":32,"protocol":"Tcp","direction":"Inbound","access":"Deny","sources":[],"destinations":[],"sourcePortRanges":[],"destinationPortRanges":[],"provisioningState":"Succeeded","resourceGuid":"4651fbaf-9880-457b-bc44-47f336241f6c"},"kind":"Custom","systemData":{"createdBy":"zhiyihuang@microsoft.com","createdByType":"User","createdAt":"2023-10-10T06:08:19.2806519Z","lastModifiedBy":"zhiyihuang@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2023-10-10T06:08:24.2350466Z"}}]}' headers: cache-control: - no-cache content-length: - - '995' + - '994' content-type: - application/json; charset=utf-8 date: - - Mon, 28 Aug 2023 03:58:31 GMT + - Tue, 10 Oct 2023 06:08:25 GMT expires: - '-1' pragma: @@ -534,7 +534,7 @@ interactions: - -g --network-manager-name --configuration-name --rule-collection-name --rule-name --force --yes User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig/ruleCollections/myTestCollection/rules/myRule?force=true&api-version=2022-01-01 response: @@ -546,7 +546,7 @@ interactions: content-length: - '0' date: - - Mon, 28 Aug 2023 03:58:33 GMT + - Tue, 10 Oct 2023 06:08:28 GMT expires: - '-1' pragma: @@ -558,7 +558,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14997' + - '14999' status: code: 200 message: OK @@ -578,7 +578,7 @@ interactions: ParameterSetName: - --configuration-name --network-manager-name -g --force --yes User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/securityAdminConfigurations/myTestSecurityConfig?force=true&api-version=2022-05-01 response: @@ -590,7 +590,7 @@ interactions: content-length: - '0' date: - - Mon, 28 Aug 2023 03:58:36 GMT + - Tue, 10 Oct 2023 06:08:31 GMT expires: - '-1' pragma: @@ -602,7 +602,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14998' + - '14999' status: code: 200 message: OK @@ -622,7 +622,7 @@ interactions: ParameterSetName: - -g --name --network-manager-name --force --yes User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup?force=true&api-version=2022-01-01 response: @@ -634,7 +634,7 @@ interactions: content-length: - '0' date: - - Mon, 28 Aug 2023 03:58:37 GMT + - Tue, 10 Oct 2023 06:08:33 GMT expires: - '-1' pragma: @@ -646,7 +646,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14996' + - '14998' status: code: 200 message: OK @@ -666,7 +666,7 @@ interactions: ParameterSetName: - --resource-group --name --force --yes User-Agent: - - AZURECLI/2.51.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.53.0 (PIP) (AAZ) azsdk-python-core/1.26.0 Python/3.9.13 (Windows-10-10.0.19045-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_admin_rule_crud000001/providers/Microsoft.Network/networkManagers/TestNetworkManager?force=true&api-version=2022-01-01 response: @@ -678,7 +678,7 @@ interactions: content-length: - '0' date: - - Mon, 28 Aug 2023 03:58:41 GMT + - Tue, 10 Oct 2023 06:08:37 GMT expires: - '-1' pragma: diff --git a/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py b/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py index 95e442f2331..bb416a927fe 100644 --- a/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py +++ b/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py @@ -215,10 +215,20 @@ def test_network_manager_admin_rule_crud(self, virtual_network, resource_group): self.cmd('network manager security-admin-config rule-collection rule create -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name} ' - '--rule-name {rule_name} --kind "Custom" --protocol "Tcp" --access "Allow" --priority 32 --direction "Inbound"') + '--rule-name {rule_name} --kind "Custom" --protocol "Tcp" --access "Allow" --priority 32 --direction "Inbound"', + checks=[self.check('access', 'Allow'), + self.check('direction', 'Inbound'), + self.check('kind', 'Custom'), + self.check('priority', '32'), + self.check('protocol', 'Tcp')]) self.cmd('network manager security-admin-config rule-collection rule show -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name} --rule-name {rule_name}') self.cmd('network manager security-admin-config rule-collection rule update -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name} --rule-name {rule_name} ' - '--access "Deny"') + '--access "Deny"', + checks=[self.check('access', 'Deny'), + self.check('direction', 'Inbound'), + self.check('kind', 'Custom'), + self.check('priority', '32'), + self.check('protocol', 'Tcp')]) self.cmd('network manager security-admin-config rule-collection rule list -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name}') self.cmd('network manager security-admin-config rule-collection rule delete -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name} --rule-name {rule_name} --force --yes') From db3dcabd04b326e7e2b62e116a6df881d6aa789e Mon Sep 17 00:00:00 2001 From: Zhiyi Huang <17182306+calvinhzy@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:56:27 +0800 Subject: [PATCH 7/7] update version --- src/network-manager/HISTORY.rst | 6 ++++++ src/network-manager/setup.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/network-manager/HISTORY.rst b/src/network-manager/HISTORY.rst index 0ab915e0fc9..7e2117b808a 100644 --- a/src/network-manager/HISTORY.rst +++ b/src/network-manager/HISTORY.rst @@ -2,6 +2,12 @@ Release History =============== +1.0.0 ++++++ +* Fix example and help info (Fix #6788) +* BREAKING CHANGE: Make params required and remove non-updatable params (Fix #6786) +* Fix `az network manager security-admin-config rule-collection rule update`: Fix to respect params provided. (Fix #6787) + 1.0.0b2 +++++ * `az network manager group static-member create`: Fix cross-tenant --resource-id diff --git a/src/network-manager/setup.py b/src/network-manager/setup.py index a551c517500..b315072dfd4 100644 --- a/src/network-manager/setup.py +++ b/src/network-manager/setup.py @@ -10,7 +10,7 @@ from setuptools import setup, find_packages # HISTORY.rst entry. -VERSION = '1.0.0b2' +VERSION = '1.0.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers