Skip to content
Merged
5 changes: 5 additions & 0 deletions src/azure-cli/azure/cli/command_modules/network/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -2782,6 +2782,11 @@
--peering-type MicrosoftPeering --peer-asn 10002 --vlan-id 103 \\
--primary-peer-subnet 101.0.0.0/30 --secondary-peer-subnet 102.0.0.0/30 \\
--advertised-public-prefixes 101.0.0.0/30
- name: Create Microsoft Peering settings with IPv6 configuration.
text: |
az network express-route peering create -g MyResourceGroup --circuit-name MyCircuit \\
--peering-type AzurePrivatePeering --peer-asn 10002 --vlan-id 103 --ip-version ipv6\\
--primary-peer-subnet 2002:db00::/126 --secondary-peer-subnet 2003:db00::/126
- name: Create peering settings for an ExpressRoute circuit. (autogenerated)
text: |
az network express-route peering create --circuit-name MyCircuit --peer-asn 10002 --peering-type AzurePublicPeering --primary-peer-subnet 101.0.0.0/30 --resource-group MyResourceGroup --secondary-peer-subnet 102.0.0.0/30 --shared-key Abc123 --vlan-id 103
Expand Down
4 changes: 2 additions & 2 deletions src/azure-cli/azure/cli/command_modules/network/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -741,8 +741,8 @@ def load_arguments(self, _):
c.argument('peering_type', validator=validate_peering_type, arg_type=get_enum_type(ExpressRoutePeeringType), help='BGP peering type for the circuit.')
c.argument('sku_family', arg_type=get_enum_type(ExpressRouteCircuitSkuFamily))
c.argument('sku_tier', arg_type=get_enum_type(ExpressRouteCircuitSkuTier))
c.argument('primary_peer_address_prefix', options_list=['--primary-peer-subnet'], help='/30 subnet used to configure IP addresses for primary interface.')
c.argument('secondary_peer_address_prefix', options_list=['--secondary-peer-subnet'], help='/30 subnet used to configure IP addresses for secondary interface.')
c.argument('primary_peer_address_prefix', options_list=['--primary-peer-subnet'], help='/30(ipv4) or /126(ipv6) subnet used to configure IP addresses for primary interface.')
c.argument('secondary_peer_address_prefix', options_list=['--secondary-peer-subnet'], help='/30(ipv4) or /126(ipv6) subnet used to configure IP addresses for secondary interface.')
c.argument('shared_key', help='Key for generating an MD5 for the BGP session.')

with self.argument_context('network express-route peering', arg_group='Microsoft Peering') as c:
Expand Down
8 changes: 4 additions & 4 deletions src/azure-cli/azure/cli/command_modules/network/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -694,7 +694,7 @@ def _make_singular(value):
with self.command_group('network dns', network_dns_reference_sdk, resource_type=ResourceType.MGMT_NETWORK_DNS) as g:
g.command('list-references', 'get_by_target_resources')

with self.command_group('network dns zone', network_dns_zone_sdk) as g:
with self.command_group('network dns zone', network_dns_zone_sdk, resource_type=ResourceType.MGMT_NETWORK_DNS) as g:
Comment thread
msyyc marked this conversation as resolved.
Outdated
g.command('delete', 'delete', confirmation=True)
g.show_command('show', 'get', table_transformer=transform_dns_zone_table_output)
g.custom_command('list', 'list_dns_zones', table_transformer=transform_dns_zone_table_output)
Expand All @@ -703,7 +703,7 @@ def _make_singular(value):
g.custom_command('create', 'create_dns_zone', client_factory=cf_dns_mgmt_zones)
g.generic_update_command('update', custom_func_name='update_dns_zone')

with self.command_group('network dns record-set') as g:
with self.command_group('network dns record-set', resource_type=ResourceType.MGMT_NETWORK_DNS) as g:
g.custom_command('list', 'list_dns_record_set', client_factory=cf_dns_mgmt_record_sets, transform=transform_dns_record_set_output)

api_version = str(get_api_version(self.cli_ctx, ResourceType.MGMT_NETWORK_DNS))
Expand All @@ -723,11 +723,11 @@ def _make_singular(value):
g.custom_command('remove-record', 'remove_dns_{}_record'.format(record), transform=transform_dns_record_set_output)
g.generic_update_command('update', custom_func_name='update_dns_record_set', transform=transform_dns_record_set_output)

with self.command_group('network dns record-set soa', network_dns_record_set_sdk) as g:
with self.command_group('network dns record-set soa', network_dns_record_set_sdk, resource_type=ResourceType.MGMT_NETWORK_DNS) as g:
g.show_command('show', 'get', transform=transform_dns_record_set_output)
g.custom_command('update', 'update_dns_soa_record', transform=transform_dns_record_set_output)

with self.command_group('network dns record-set cname', network_dns_record_set_sdk) as g:
with self.command_group('network dns record-set cname', network_dns_record_set_sdk, resource_type=ResourceType.MGMT_NETWORK_DNS) as g:
g.show_command('show', 'get', transform=transform_dns_record_set_output)
g.command('delete', 'delete', confirmation=True)
g.custom_command('list', 'list_dns_record_set', client_factory=cf_dns_mgmt_record_sets, transform=transform_dns_record_set_output, table_transformer=transform_dns_record_set_table_output)
Expand Down
48 changes: 32 additions & 16 deletions src/azure-cli/azure/cli/command_modules/network/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -2632,7 +2632,7 @@ def create_express_route_peering(
cmd, client, resource_group_name, circuit_name, peering_type, peer_asn, vlan_id,
primary_peer_address_prefix, secondary_peer_address_prefix, shared_key=None,
advertised_public_prefixes=None, customer_asn=None, routing_registry_name=None,
route_filter=None, legacy_mode=None):
route_filter=None, legacy_mode=None, ip_version='IPv4'):
Comment thread
msyyc marked this conversation as resolved.
(ExpressRouteCircuitPeering, ExpressRouteCircuitPeeringConfig, RouteFilter) = \
cmd.get_models('ExpressRouteCircuitPeering', 'ExpressRouteCircuitPeeringConfig', 'RouteFilter')

Expand All @@ -2641,21 +2641,37 @@ def create_express_route_peering(
else:
ExpressRoutePeeringType = cmd.get_models('ExpressRouteCircuitPeeringType')

peering = ExpressRouteCircuitPeering(
peering_type=peering_type, peer_asn=peer_asn, vlan_id=vlan_id,
primary_peer_address_prefix=primary_peer_address_prefix,
secondary_peer_address_prefix=secondary_peer_address_prefix,
shared_key=shared_key)

if peering_type == ExpressRoutePeeringType.microsoft_peering.value:
peering.microsoft_peering_config = ExpressRouteCircuitPeeringConfig(
advertised_public_prefixes=advertised_public_prefixes,
customer_asn=customer_asn,
routing_registry_name=routing_registry_name)
if cmd.supported_api_version(min_api='2016-12-01') and route_filter:
peering.route_filter = RouteFilter(id=route_filter)
if cmd.supported_api_version(min_api='2017-10-01') and legacy_mode is not None:
peering.microsoft_peering_config.legacy_mode = legacy_mode
if ip_version == 'IPv6' and cmd.supported_api_version(min_api='2020-08-01'):
Ipv6ExpressRouteCircuitPeeringConfig = cmd.get_models('Ipv6ExpressRouteCircuitPeeringConfig')
if peering_type == ExpressRoutePeeringType.microsoft_peering.value:
microsoft_config = ExpressRouteCircuitPeeringConfig(advertised_public_prefixes=advertised_public_prefixes,
customer_asn=customer_asn,
routing_registry_name=routing_registry_name)
else:
microsoft_config = None
ipv6 = Ipv6ExpressRouteCircuitPeeringConfig(primary_peer_address_prefix=primary_peer_address_prefix,
secondary_peer_address_prefix=secondary_peer_address_prefix,
microsoft_peering_config=microsoft_config,
route_filter=route_filter)
peering = ExpressRouteCircuitPeering(peering_type=peering_type, ipv6_peering_config=ipv6, peer_asn=peer_asn,
vlan_id=vlan_id)

else:
peering = ExpressRouteCircuitPeering(
peering_type=peering_type, peer_asn=peer_asn, vlan_id=vlan_id,
primary_peer_address_prefix=primary_peer_address_prefix,
secondary_peer_address_prefix=secondary_peer_address_prefix,
shared_key=shared_key)

if peering_type == ExpressRoutePeeringType.microsoft_peering.value:
peering.microsoft_peering_config = ExpressRouteCircuitPeeringConfig(
advertised_public_prefixes=advertised_public_prefixes,
customer_asn=customer_asn,
routing_registry_name=routing_registry_name)
if cmd.supported_api_version(min_api='2016-12-01') and route_filter:
peering.route_filter = RouteFilter(id=route_filter)
if cmd.supported_api_version(min_api='2017-10-01') and legacy_mode is not None:
peering.microsoft_peering_config.legacy_mode = legacy_mode

return client.begin_create_or_update(resource_group_name, circuit_name, peering_type, peering)

Expand Down
Loading