def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac (config-l2vpn-bg-bd-mac) with configurations.submode_context('mac', cancel_empty=True): # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / aging (config-l2vpn-bg-bd-mac-aging) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / aging / time 300 # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / aging / type absolute # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / aging / type inactivity with configurations.submode_context('aging', cancel_empty=True): configurations.append_line( attributes.format('time {aging_time}')) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / learning # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / learning disable v = attributes.value('learning_disable') if v is True: configurations.append_line('learning disable') # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit (config-l2vpn-bg-bd-mac-limit) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / action flood # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / action no-flood # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / action none # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / action shutdown # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / maximum 1 # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / notification both # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / notification none # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / notification syslog # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / limit / notification trap # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / port-down flush # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / port-down flush disable # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure (config-l2vpn-bg-bd-mac-secure) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / action none # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / action restrict # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / action shutdown # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / disable # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / logging # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / secure / logging disable # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / static-address aaaa.bbbb.cccc drop # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / withdraw access-pw disable # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / withdraw disable # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / withdraw optimize # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / withdraw relay # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / mac / withdraw state-down pass return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) if unconfig and attributes.iswildcard: with configurations.submode_context( attributes.format('vni {evpn_vni} l2', force=True)): configurations.submode_unconfig() # nxos: rd "auto" if attributes.value('evpn_vni_rd'): configurations.append_line( attributes.format('rd {evpn_vni_rd}')) for sub, attributes2 in attributes.mapping_values( 'route_target_attr', sort=True, keys=self.route_target_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) else: with configurations.submode_context( attributes.format('vni {evpn_vni} l2', force=True)): # nxos: rd "auto" if attributes.value('evpn_vni_rd'): configurations.append_line( attributes.format('rd {evpn_vni_rd}')) for sub, attributes2 in attributes.mapping_values( 'route_target_attr', sort=True, keys=self.route_target_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, contained=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn (config-l2vpn) submode_stack = contextlib.ExitStack() if not contained: submode_stack.enter_context( configurations.submode_context('l2vpn')) # iosxr: l2vpn / pw-class someword (config-l2vpn) with configurations.submode_context( attributes.format('pw-class {name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: l2vpn / pw-class someword / backup disable delay <0-180> # iosxr: l2vpn / pw-class someword / backup disable never # iosxr: l2vpn / pw-class someword / encapsulation l2tpv3 (config-l2vpn) # iosxr: l2vpn / pw-class someword / encapsulation mpls (config-l2vpn) ns, attributes2 = attributes.namespace('encapsulation') if ns is not None: configurations.append_block( str( ns.build_config(apply=False, attributes=attributes2, unconfig=unconfig))) # iosxr: l2vpn / pw-class someword / mac-withdraw if attributes.value('mac_withdraw'): configurations.append_line('mac-withdraw') submode_stack.close() if apply: if configurations: self.device.configure(configurations, fail_invalid=True) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations, fail_invalid=True)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context(attributes.format('vrf definition {name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() if attributes.value('shutdown'): warnings.warn('vrf shutdown', UnsupportedAttributeWarning) # iosxe: vrf definition vrf1 / vpn id 0:0 configurations.append_line(attributes.format('vpn id {vpn_id}')) # iosxr: vrf vrf1 / description some line data configurations.append_line(attributes.format('description {description}')) configurations.append_line(attributes.format('rd {rd}')) # iosxr: vrf vrf1 / address-family ipv4 unicast (config-vrf-af) for key, sub, attributes2 in attributes.mapping_items( 'address_family_attr', keys=self.address_family_attr, sort=True): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) # iosxe: vrf vrf1 / vpn id 0:0 configurations.append_line(attributes.format('vpn id {vpn_id}')) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / xconnect group someword / mp2mp someword2 / autodiscovery bgp / signaling-protocol bgp / ce-id 1 (config-l2vpn) with configurations.submode_context( attributes.format('ce-id {ce_id}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: l2vpn / xconnect group someword / mp2mp someword2 / autodiscovery bgp / signaling-protocol bgp / ce-id 1 / interface Bundle-Ether1 remote-ce-id 1 for ns, attributes2 in attributes.mapping_values( 'interface_attr', keys=self.interfaces, sort=True): configurations.append_block( ns.build_config(apply=False, unconfig=unconfig, attributes=attributes2)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxe: interface <intf> (config-if) with configurations.submode_context(attributes.format('interface {interface.name}',force=True),cancel_empty=True): for sub, attributes2 in attributes.mapping_values('address_family_attr',keys=self.address_families, sort=True): if sub.address_family.name.startswith('ipv4'): configurations.append_line(attributes.format('ip router isis {pid}',force=True)) if sub.address_family.name.startswith('ipv6'): configurations.append_line(attributes.format('ipv6 router isis {pid}',force=True)) # iosxe: interface <intf> / isis network point-to-point if attributes.value('point_to_point'): configurations.append_line(attributes.format('isis network point-to-point')) # iosxe: interface <intf> / isis circuit-type level-1 # iosxe: interface <intf> / isis circuit-type level-2-only # iosxe: interface <intf> / isis circuit-type level-1-2 configurations.append_line(attributes.format('isis circuit-type {circuit_type}', transform={ _Isis.IsType.level_1: 'level-1', _Isis.IsType.level_2: 'level-2-only', _Isis.IsType.level_1_2: 'level-1-2', })) # iosxe: interface <intf> / isis metric 10 configurations.append_line(attributes.format('isis metric {metric}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context(attributes.format('interface {interface_name}', force=True, cancel_empty=True)): # iosxe: interface GigabitEthernet0/0/0 / mpls ip if attributes.iswildcard: configurations.append_line('mpls ip') # iosxe: interface GigabitEthernet0/0/0 / mpls ldp igp autoconfig if attributes.value('igp_autoconfig'): configurations.append_line('mpls ldp igp autoconfig') # iosxe: interface GigabitEthernet0/0/0 / mpls ldp igp sync if attributes.value('igp_sync'): configurations.append_line('mpls ldp igp sync') # iosxe: interface GigabitEthernet0/0/0 / mpls ldp igp sync time 5 configurations.append_line(attributes.format('mpls ldp igp sync delay {igp_sync_delay_time}')) # iosxe: interface GigabitEthernet0/0/0 / mpls ldp discovery transport-address 10.12.1.1 configurations.append_line(attributes.format('mpls ldp discovery transport-address {transport_address}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format( 'evpn multisite border-gateway {evpn_msite_bgw}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # nxos : delay-restore time <int 30-1000> if attributes.value('evpn_msite_bgw_delay_restore_time'): configurations.append_line(\ attributes.format('delay-restore time {evpn_msite_bgw_delay_restore_time}')) # nxos : dci-advertise-pip if attributes.value('evpn_msite_dci_advertise_pip'): configurations.append_line( \ attributes.format('dci-advertise-pip')) # nxos: split-horizon per-site if attributes.value('evpn_msite_split_horizon_per_site'): configurations.append_line( \ attributes.format('split-horizon per-site')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format( 'dot1x credential {credential_profile}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # username <credential_username> configurations.append_line( attributes.format('username {credential_username}')) # password [<credential_pwd_type>] <credential_secret> if attributes.value('credential_pwd_type'): configurations.append_line( attributes.format( 'password {credential_pwd_type} {credential_secret}' )) else: configurations.append_line( attributes.format('password {credential_secret}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # virtual neighbor 70.70.70.70 pw-id 17300005 with configurations.submode_context( attributes.format('virtual neighbor {ip} pw-id {pw_id}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: evpn / virtual neighbor 70.70.70.70 pw-id 17300005 / ethernet-segment (config-evpn-ac-es) ns, attributes2 = attributes.namespace('ethernet_segment') if ns is not None: configurations.append_block( ns.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format('interface {interface.name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # ====== # if_enable # ====== if attributes.value('if_enable'): configurations.append_line( attributes.format('enable')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: router pim (config-pim) with configurations.submode_context('router pim'): if unconfig and attributes.iswildcard: configurations.submode_unconfig() for sub, attributes2 in attributes.mapping_values( 'vrf_attr', keys=self.vrf_attr, sort=True): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations, fail_invalid=True) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: router pim / vrf someword (config-pim-<vrf>) with configurations.submode_context( None if self.vrf_name == 'default' else attributes. format('vrf {vrf_name}', force=True)): if self.vrf_name != 'default' and unconfig and attributes.iswildcard: configurations.submode_unconfig() for sub, attributes2 in attributes.mapping_values( 'address_family_attr', keys=self.address_family_attr, sort=True): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / redundancy / iccp group 1 / interface Bundle-Ether1 (config-l2vpn) with configurations.submode_context( attributes.format('interface {interface_name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: l2vpn / redundancy / iccp group 1 / interface Bundle-Ether1 / mac-flush stp-tcn configurations.append_line( attributes.format('mac-flush {mac_flush}')) # iosxr: l2vpn / redundancy / iccp group 1 / interface Bundle-Ether1 / primary vlan someword configurations.append_line( attributes.format('primary vlan {primary_vlan}')) # iosxr: l2vpn / redundancy / iccp group 1 / interface Bundle-Ether1 / recovery delay 30 configurations.append_line( attributes.format('recovery delay {recovery_delay}')) # iosxr: l2vpn / redundancy / iccp group 1 / interface Bundle-Ether1 / secondary vlan someword configurations.append_line( attributes.format('secondary vlan {secondary_vlan}')) return str(configurations)
def build_config(self, devices=None, apply=True, attributes=None, unconfig=False, **kwargs): attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format('instance-id {instance_id}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() for sub, attributes2 in attributes.mapping_values( 'service_attr', keys=self.service_attr.keys(), inherited=False): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) for sub, attributes2 in attributes.mapping_values( 'dynamic_eid_attr', keys=self.dynamic_eid_attr.keys(), inherited=False): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # multicast-routing with configurations.submode_context('multicast-routing'): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # VrfAttributes for sub, attributes2 in attributes.mapping_values( 'vrf_attr', sort=True, keys=self.vrf_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # InterfaceAttributes with configurations.submode_context(attributes.format( 'interface {interface}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() for sub, attributes2 in attributes.mapping_values('interface_attr', sort=True, keys=self.interface_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp (config-l2vpn-bg-bd-vfi-ad-sig) with configurations.submode_context('signaling-protocol ldp'): if not attributes.value('enabled', force=True): configurations.submode_cancel() # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label both # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label both static # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label receive # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label receive static # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label transmit # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / load-balancing flow-label transmit static # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / vpls-id 1.2.3.4:1 # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / autodiscovery bgp / signaling-protocol ldp / vpls-id 100:200000 configurations.append_line( attributes.format('vpls-id {vpls_id}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder( unconfig=unconfig) self.vlan = kwargs['vlan_id'] # only add vlan_id in attributes when # unconfig for specific attributes is enable if unconfig and attributes.attributes: attributes.attributes['vlan'] = None # the interface should have vrf(name = vrf_name) attached with configurations.submode_context( attributes.format( 'interface {interface_name}', force=True)): # spanning-tree mst <mst_id> cost <m_inst_if_cost> configurations.append_line( attributes.format( 'spanning-tree vlan {vlan} cost {v_if_cost}' )) # spanning-tree vlan <vlan_id> port-priority <v_if_port_priority> configurations.append_line( attributes.format( 'spanning-tree vlan {vlan} port-priority {v_if_port_priority}' )) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, contained=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / pw-class someword (config-l2vpn) with configurations.submode_context( attributes.format('pw-class {name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() ns, attributes2 = attributes.namespace('encapsulation') if ns is not None: configurations.append_block( ns.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations, fail_invalid=True) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations, fail_invalid=True)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: evpn / virtual vfi ac-vfi-5 / ethernet-segment (config-evpn-ac-es) with configurations.submode_context('ethernet-segment'): if not attributes.value('enabled', force=True): configurations.submode_cancel() if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: evpn / virtual vfi ac-vfi-5 / ethernet-segment / bgp route-target aaaa.bbbb.cccc ns, attributes2 = attributes.namespace('bgp') if ns is not None: configurations.append_block( ns.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) # iosxr: evpn / virtual vfi ac-vfi-5 / ethernet-segment / identifier type 0 00.11.22.33.44.55.66.77.88 configurations.append_line( attributes.format( 'identifier type {esi.type} {esi.dotted}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: segment-routing (config-sr) with configurations.submode_context('segment-routing'): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # iosxr: segment-routing / global-block 16000 16001 v = attributes.value('global_block') if v is not None: configurations.append_line( 'global-block {first} {last}'.format(first=v.start, last=v[-1])) if apply: if configurations: self.device.configure(configurations, fail_invalid=True) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations, fail_invalid=True)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / multicast p2mp (config-l2vpn-bg-bd-vfi-p2mp) with configurations.submode_context('multicast p2mp'): if not attributes.value('enabled', force=True): configurations.submode_cancel() # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / multicast p2mp / signaling-protocol bgp (config-l2vpn-bg-bd-vfi-p2mp-bgp) #sub, attributes2 = attributes.namespace('signaling_protocol_bgp') #if sub is not None: # configurations.append_block( # sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) # iosxr: l2vpn / bridge group someword / bridge-domain someword2 / vfi someword3 / multicast p2mp / transport rsvp-te (config-l2vpn-bg-bd-vfi-p2mp-te) sub, attributes2 = attributes.namespace('transport_rsvp_te') if sub is not None: configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # global_max_groups -- not supported on nxos with configurations.submode_context( attributes.format('vrf context {vrf_id}' if self.vrf_id != 'default' else '', force=True)): if unconfig and attributes.iswildcard and self.vrf_id != 'default': configurations.submode_unconfig() # Ssm Attributes under vrf level config for ssm, attributes2 in attributes.sequence_values('ssm', sort=True): if unconfig: configurations.append_block(ssm.build_unconfig( apply=False, attributes=attributes2, **kwargs)) else: configurations.append_block(ssm.build_config( apply=False, attributes=attributes2, **kwargs)) # InterfaceAttributes for sub, attributes2 in attributes.mapping_values('interface_attr', sort=True, keys=self.interface_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) vrf_context = "" if attributes.value('vrf') != 'default': vrf_context = attributes.format('vrf context {vrf}', force=True) # AddressFamilyAttributes with configurations.submode_context(vrf_context): for sub, attributes2 in attributes.mapping_values( 'address_family_attr', sort=True, keys=self.address_family_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format( 'tunnel-encryption peer-ip {peer_ip}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # nxos: keychain and policy if attributes.value('keychain_name'): peerip_cfg = 'keychain {keychain_name} ' if attributes.value('tunnelpolicy_name'): peerip_cfg += 'policy {tunnelpolicy_name}' configurations.append_line(attributes.format(peerip_cfg)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( None if self.vrf_name == 'default' else attributes. format('vrf context {vrf_id}', force=True)): # AddressFamilyAttributes for sub, attributes2 in attributes.mapping_values( 'address_family_attr', sort=True, keys=self.address_family_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context( attributes.format( 'tunnel-encryption policy {policy_name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # nxos: if attributes.value('cipher_suite'): if attributes.value( 'cipher_suite').value == 'gcm-aes-xpn-128': configurations.append_line( attributes.format( 'cipher-suite GCM-AES-XPN-128')) elif attributes.value( 'cipher_suite').value == 'gcm-aes-xpn-256': configurations.append_line( attributes.format( 'cipher-suite GCM-AES-XPN-257')) # nxos: auto-recovery reload-delay <value> if attributes.value('sak_rekey_time'): configurations.append_line( attributes.format( 'sak-rekey-time {sak_rekey_time}')) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): '''Controller build config''' assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: rsvp / controller <name> (config-rsvp-cntl) with configurations.submode_context( attributes.format('controller {interface_name}', force=True)): # iosxr: rsvp / controller <name> / signalling refresh out-of-band interval 180 configurations.append_line( attributes.format( 'signalling refresh out-of-band interval {sig_refresh_outofband_interval}' )) # iosxr: rsvp / controller <name> / signalling refresh out-of-band missed 1 configurations.append_line( attributes.format( 'signalling refresh out-of-band missed {sig_refresh_outofband_missed}' )) return str(configurations)
def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) with configurations.submode_context(attributes.format( 'ssx exporter {exp_id}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() if attributes.value('source_ip'): configurations.append_line( attributes.format('source {source_ip}')) if attributes.value('dest_ip'): configurations.append_line( attributes.format('destination {dest_ip} use-vrf default')) if attributes.value('source_port') and attributes.value('dest_port'): configurations.append_line( attributes.format('transport udp src-port {source_port} dst-port {dest_port}')) if attributes.value('dscp'): configurations.append_line( attributes.format('dscp {dscp}')) return str(configurations)