def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # source_interface if attributes.value('source_interface') and \ self.vrf_name == 'default': configurations.append_line( attributes.format( 'ntp source-interface {source_interface}')) # ServerAttributes for sub, attributes1 in attributes.mapping_values( 'server_attr', sort=True, keys=self.server_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes1, unconfig=unconfig)) # PeerAttributes for sub, attributes2 in attributes.mapping_values( 'peer_attr', sort=True, keys=self.peer_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) # 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)) # NextHopAttributes for sub, attributes2 in attributes.mapping_values('next_hop_attr', sort=True, keys=self.next_hop_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) # instance_attr for sub, attributes2 in attributes.mapping_values( 'vlan_attr', sort=True, keys=self.vlan_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) # interface_attr 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, 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, contained=False, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # create vfi configurations for vfi, attributes2 in attributes.sequence_values('vfis'): configurations.append_block( str( vfi.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs))) with configurations.submode_context( attributes.format('bridge-domain {name}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() for evi, attributes2 in attributes.mapping_values( 'evi_attr', keys=self.evis, sort=True): cfg = attributes2.format('member evpn-instance {evi_id}') if cfg: cfg += attributes2.format(' vlan {vlan}', force=True) configurations.append_line(cfg) for vfi, attributes2 in attributes.sequence_values('vfis'): configurations.append_line( attributes2.format('member vfi {name}')) for sub, attributes2 in attributes.mapping_values( 'interface_attr', keys=self.interfaces, sort=True): if isinstance(sub.interface, EFPInterface): configurations.append_line( attributes2.format( 'member {interface.parent_interface.name} service-instance {interface.service_instance}' )) elif isinstance(sub.interface, EthernetInterface): configurations.append_line( attributes2.format('member {interface.name}')) else: raise NotImplementedError(sub.interface) if apply: if configurations: self.device.configure(str(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, 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, **kwargs): assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # hardware-telemetry ssx with configurations.submode_context(attributes.format( 'hardware-telemetry ssx', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # +- DeviceAttributes # +- ExporterAttributes for sub, attributes2 in attributes.mapping_values('exporter_attr', sort=True, keys=self.exporter_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) #+- SsxAttributes # +- RecordAttributes for sub, attributes2 in attributes.mapping_values('record_attr', sort=True, keys=self.record_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) #+- SsxAttributes # +- MonitorAttributes for sub, attributes2 in attributes.mapping_values('monitor_attr', sort=True, keys=self.monitor_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) if attributes.value('ssx_system_monitor'): for monitor in attributes.value('ssx_system_monitor'): attributes.obj.monitor_ssx = monitor configurations.append_line( attributes.format('ssx system monitor {monitor_ssx}')) if attributes.value('ssx_id'): configurations.append_line( attributes.format('ssx system system-id {ssx_id}')) 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) # spanning-tree mst max-hops <m_max_hop> configurations.append_line( attributes.format( 'spanning-tree mst max-hops {m_max_hop}')) # spanning-tree mst hello-time <m_hello_time> configurations.append_line( attributes.format( 'spanning-tree mst hello-time {m_hello_time}')) # spanning-tree mst max-age <m_max_age> configurations.append_line( attributes.format( 'spanning-tree mst max-age {m_max_age}')) # spanning-tree mst forward-time <m_forwarding_delay> configurations.append_line( attributes.format( 'spanning-tree mst forward-time {m_forwarding_delay}' )) # instance_attr for sub, attributes2 in attributes.mapping_values( 'instance_attr', sort=True, keys=self.instance_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) # interface_attr 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 apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # acl_type # 'ipv4-acl-type','ipv6-acl-type','eth-acl-type if attributes.value('acl_type'): if 'ipv4-acl-type' in attributes.value('acl_type'): self.cmd = 'ip access-list extended ' elif 'ipv6-acl-type' in attributes.value('acl_type'): self.cmd = 'ipv6 access-list ' elif 'eth-acl-type' in attributes.value('acl_type'): self.cmd = 'mac access-list extended ' else: self.cmd = None else: self.cmd = None with configurations.submode_context( attributes.format('{cmd}{name}'.format( cmd=self.cmd, name=self.acl_name), force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() self.acl_type = self.parent.acl_type # ace attributes for sub, attributes2 in attributes.mapping_values( 'ace_attr', sort=True, keys=self.ace_attr): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig)) # interface attributes 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 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 / 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 kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # require_router_alert if attributes.value('require_router_alert'): configurations.append_line('ip igmp enforce-router-alert') # 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) # ip pim bidir-enable if attributes.value('enabled_bidir'): configurations.append_line( attributes.format('ip pim bidir-enable')) # 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) # mac address-table aging-time <mac_aging_time> configurations.append_line( attributes.format( 'mac address-table aging-time {mac_aging_time}')) # vlan attributes for sub, attributes2 in attributes.mapping_values( 'vlan_attr', sort=True, keys=self.vlan_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) # arp entries interface-limit <max_entries> if attributes.value('max_entries'): configurations.append_line( attributes.format( 'arp entries interface-limit {max_entries}')) # 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)) 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) # Seperate CliConfigBuilder for InterfaceAttribute configuration self.interface_config = CliConfigBuilder(unconfig=unconfig) # +- DeviceAttributes # +- 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)) # Add InterfaceAttribute configuration configurations.append_block(self.interface_config) if apply: if configurations: self.device.configure(configurations) else: return CliConfig(device=self.device, unconfig=unconfig, cli_config=configurations)
def build_config(self, devices=None, apply=True, attributes=None, unconfig=False, **kwargs): assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # iosxr: router hsrp configurations.append_line( attributes.format('router hsrp', force=True)) # loop over all interfaces for sub, attributes2 in attributes.mapping_values( 'interface_attr', keys=self.interface_attr.keys()): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) 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 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, links=None, apply=True, attributes=None, unconfig=False, **kwargs): '''Device build config''' assert not apply attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) if attributes.iswildcard: # iosxe : mpls traffic-eng tunnels configurations.append_line('mpls traffic-eng tunnels', \ unconfig_cmd = 'default mpls traffic-eng tunnels') if attributes.value('advertise_expnull'): configurations.append_line( 'mpls traffic-eng signalling advertise explicit-null') # Add per-interface config for sub, attributes2 in attributes.mapping_values( 'interface_attr', keys=self.interfaces, sort=True): configurations.append_block( sub.build_config(apply=False, attributes=attributes2, unconfig=unconfig, **kwargs)) 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) # 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 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 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): attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # nxos: evpn esi multihoming # nxos: evpn (config-evpn) with configurations.submode_context('evpn'): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # nxos: evpn / vni 4096 l2 (config-evpn-evi) for sub, attributes2 in attributes.mapping_values( 'vni_attr', keys=self.vnis, 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, fail_invalid=True)
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('key chain {key_chain}', force=True)): if unconfig and attributes.iswildcard: configurations.submode_unconfig() # No attributes for sub, attributes2 in attributes.mapping_values( 'key_id_attr', sort=True, keys=self.key_id_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 apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) # mac address-table learning vlan <vlan_id> if attributes.value('vlan_mac_learning'): configurations.append_line( attributes.format( 'mac address-table learning vlan {vlan_id}', force=True)) # mac address-table aging-time <vlan_mac_aging_time> vlan <vlan_id> configurations.append_line( attributes.format( 'mac address-table aging-time ' '{vlan_mac_aging_time} vlan {vlan_id}', force=True)) # mac_address_attr for sub, attributes2 in attributes.mapping_values( 'mac_address_attr', sort=True, keys=self.mac_address_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 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) if attributes.value('if_ra_interval'): configurations.append_line( attributes.format('ipv6 nd ra-interval {if_ra_interval}')) if attributes.value('if_ra_lifetime'): configurations.append_line( attributes.format('ipv6 nd ra-lifetime {if_ra_lifetime}')) if attributes.value('if_ra_suppress') == True: configurations.append_line( attributes.format('ipv6 nd suppress-ra')) # NeighborAttributes for sub, attributes2 in attributes.mapping_values('neighbor_attr', sort=True, keys=self.neighbor_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) # 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) # spanning-tree bridge assurance if attributes.value('bridge_assurance'): configurations.append_line( attributes.format('spanning-tree bridge assurance')) # spanning-tree etherchannel guard misconfig if attributes.value('etherchannel_misconfig_guard'): configurations.append_line( attributes.format( 'spanning-tree etherchannel guard misconfig')) # errdisable recovery interval <bpduguard_timeout_recovery> if attributes.value('bpduguard_timeout_recovery'): configurations.append_line( attributes.format('errdisable recovery ' 'interval {bpduguard_timeout_recovery}')) # spanning-tree loopguard default if attributes.value('loop_guard'): configurations.append_line( attributes.format('spanning-tree loopguard default')) # spanning-tree portfast bpduguard default if attributes.value('bpdu_guard'): configurations.append_line( attributes.format( 'spanning-tree portfast bpduguard default')) # spanning-tree portfast bpdufilter default if attributes.value('bpdu_filter'): configurations.append_line( attributes.format( 'spanning-tree portfast bpdufilter default')) # mpde attributes for sub, attributes2 in attributes.mapping_values( 'mode_attr', sort=True, keys=self.mode_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)