From 712fd043a59ce1c588407f523e962994891ff077 Mon Sep 17 00:00:00 2001 From: Travis Prescott Date: Thu, 5 Apr 2018 19:24:03 -0700 Subject: [PATCH] [Network| Fix SDK breaking change. (#6028) * Fix SDK breaking change. * Fixes for Stack compatibility --- .../azure/cli/command_modules/network/_params.py | 12 +++++++++--- .../azure/cli/command_modules/network/custom.py | 13 ++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/command_modules/azure-cli-network/azure/cli/command_modules/network/_params.py b/src/command_modules/azure-cli-network/azure/cli/command_modules/network/_params.py index 922022a54e6..a7dc7c85e77 100644 --- a/src/command_modules/azure-cli-network/azure/cli/command_modules/network/_params.py +++ b/src/command_modules/azure-cli-network/azure/cli/command_modules/network/_params.py @@ -39,17 +39,23 @@ def load_arguments(self, _): (Access, ApplicationGatewayFirewallMode, ApplicationGatewayProtocol, ApplicationGatewayRedirectType, ApplicationGatewayRequestRoutingRuleType, ApplicationGatewaySkuName, AuthenticationMethod, Direction, - ExpressRouteCircuitPeeringType, ExpressRouteCircuitSkuFamily, ExpressRouteCircuitSkuTier, IPAllocationMethod, + ExpressRouteCircuitSkuFamily, ExpressRouteCircuitSkuTier, IPAllocationMethod, IPVersion, LoadBalancerSkuName, LoadDistribution, ProbeProtocol, ProcessorArchitecture, Protocol, PublicIPAddressSkuName, RouteNextHopType, SecurityRuleAccess, SecurityRuleProtocol, SecurityRuleDirection, TransportProtocol, VirtualNetworkGatewaySkuName, VirtualNetworkGatewayType, VpnClientProtocol, VpnType, ZoneType) = self.get_models( 'Access', 'ApplicationGatewayFirewallMode', 'ApplicationGatewayProtocol', 'ApplicationGatewayRedirectType', 'ApplicationGatewayRequestRoutingRuleType', 'ApplicationGatewaySkuName', 'AuthenticationMethod', 'Direction', - 'ExpressRouteCircuitPeeringType', 'ExpressRouteCircuitSkuFamily', 'ExpressRouteCircuitSkuTier', 'IPAllocationMethod', + 'ExpressRouteCircuitSkuFamily', 'ExpressRouteCircuitSkuTier', 'IPAllocationMethod', 'IPVersion', 'LoadBalancerSkuName', 'LoadDistribution', 'ProbeProtocol', 'ProcessorArchitecture', 'Protocol', 'PublicIPAddressSkuName', 'RouteNextHopType', 'SecurityRuleAccess', 'SecurityRuleProtocol', 'SecurityRuleDirection', 'TransportProtocol', 'VirtualNetworkGatewaySkuName', 'VirtualNetworkGatewayType', 'VpnClientProtocol', 'VpnType', 'ZoneType') + if self.supported_api_version(min_api='2018-02-01'): + ExpressRoutePeeringType = self.get_models('ExpressRoutePeeringType') + else: + # for Stack compatibility + ExpressRoutePeeringType = self.get_models('ExpressRouteCircuitPeeringType') + default_existing = 'If only one exists, omit to use as default.' # taken from Xplat. No enums in SDK @@ -436,7 +442,7 @@ def load_arguments(self, _): c.argument('vlan_id', help='Identifier used to identify the customer.') c.argument('circuit_name', circuit_name_type) c.argument('peering_name', name_arg_type, id_part='child_name_1') - c.argument('peering_type', validator=validate_peering_type, arg_type=get_enum_type(ExpressRouteCircuitPeeringType), help='BGP peering type for the circuit.') + 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.') diff --git a/src/command_modules/azure-cli-network/azure/cli/command_modules/network/custom.py b/src/command_modules/azure-cli-network/azure/cli/command_modules/network/custom.py index fd98d8bf56c..b6ab0d2c8bd 100644 --- a/src/command_modules/azure-cli-network/azure/cli/command_modules/network/custom.py +++ b/src/command_modules/azure-cli-network/azure/cli/command_modules/network/custom.py @@ -1468,10 +1468,13 @@ def create_express_route_peering( 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): - (ExpressRouteCircuitPeering, ExpressRouteCircuitPeeringConfig, ExpressRouteCircuitPeeringType, - RouteFilter) = cmd.get_models( - 'ExpressRouteCircuitPeering', 'ExpressRouteCircuitPeeringConfig', 'ExpressRouteCircuitPeeringType', - 'RouteFilter') + (ExpressRouteCircuitPeering, ExpressRouteCircuitPeeringConfig, RouteFilter) = \ + cmd.get_models('ExpressRouteCircuitPeering', 'ExpressRouteCircuitPeeringConfig', 'RouteFilter') + + if cmd.supported_api_version(min_api='2018-02-01'): + ExpressRoutePeeringType = cmd.get_models('ExpressRoutePeeringType') + else: + ExpressRoutePeeringType = cmd.get_models('ExpressRouteCircuitPeeringType') peering = ExpressRouteCircuitPeering( peering_type=peering_type, peer_asn=peer_asn, vlan_id=vlan_id, @@ -1479,7 +1482,7 @@ def create_express_route_peering( secondary_peer_address_prefix=secondary_peer_address_prefix, shared_key=shared_key) - if peering_type == ExpressRouteCircuitPeeringType.microsoft_peering.value: + if peering_type == ExpressRoutePeeringType.microsoft_peering.value: peering.microsoft_peering_config = ExpressRouteCircuitPeeringConfig( advertised_public_prefixes=advertised_public_prefixes, customer_asn=customer_asn,