def test_get_os_type(self): with Device(conn=self.conn, auth=self.auth) as dev: print dev.os_type pprint.pprint(dev.firmware_version) self.conn = ('10.24.4.215', '22') with Device(conn=self.conn, auth=self.auth) as dev: print dev.os_type pprint.pprint(dev.firmware_version)
def test_vlan(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.add_vlan_int(vlan_id=self.second_vlan) op = dev.interface.get_vlan_int(vlan_id=self.second_vlan) self.assertTrue(op) with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.del_vlan_int(vlan_id=self.second_vlan) op = dev.interface.get_vlan_int(vlan_id=self.second_vlan) self.assertFalse(op)
def test_vlan(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.add_vlan_int(vlan_id=self.second_vlan) op = dev.interface.get_vlan_int(vlan_id=self.second_vlan) print op with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.del_vlan_int(vlan_id=self.second_vlan) op = dev.interface.get_vlan_int(vlan_id=self.second_vlan) print op
def test_ip_unumbered(self): with Device(conn=self.conn, auth=self.auth) as dev: int_type = 'tengigabitethernet' name = '1/0/3' donor_type = 'loopback' donor_name = '1' dev.interface.disable_switchport( inter_type=int_type, inter=name) dev.interface.ip_unnumbered( int_type=int_type, name=name, donor_type=donor_type, donor_name=donor_name) op = dev.interface.ip_unnumbered( int_type=int_type, name=name, get=True) self.assertEqual(op,{'donor_type': 'loopback', 'donor_name': '1'}) dev.interface.ip_unnumbered( int_type=int_type, name=name, donor_type=donor_type, donor_name=donor_name, delete=True) op = dev.interface.ip_unnumbered( int_type=int_type, name=name, get=True) self.assertEqual(op, {'donor_type': None, 'donor_name': None})
def test_ve_interfaces(self): with Device(conn=self.conn, auth=self.auth) as dev: op = dev.interface.ve_interfaces() pprint.pprint(op) ve_names = [item['if-name'] for item in op] ve_name = 'Ve %s' % self.vlan self.assertIn(ve_name, ve_names)
def test_add_int_vrf(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.switchport(name=self.int_name, int_type=self.int_type, enabled=False) dev.interface.add_int_vrf(vrf_name=self.vrf, name=self.int_name, int_type=self.int_type, rbridge_id=self.rbridge_id) op = dev.interface.add_int_vrf(get=True, name=self.int_name, int_type=self.int_type, rbridge_id=self.rbridge_id) self.assertEqual(self.vrf, op) dev.interface.add_int_vrf(enable=False, name=self.int_name, int_type=self.int_type, rbridge_id=self.rbridge_id) op = dev.interface.add_int_vrf(get=True, name=self.int_name, int_type=self.int_type, rbridge_id=self.rbridge_id) self.assertIsNone(op)
def test_switchport_pvlan_mapping(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.private_vlan_mode(name=self.int_name, int_type=self.int_type, mode='promiscuous') dev.interface.private_vlan_type(name=self.pvlan, pvlan_type='primary') dev.interface.private_vlan_type(name=self.svlan, pvlan_type='isolated') dev.interface.vlan_pvlan_association_add( name=self.pvlan, sec_vlan=self.svlan) dev.interface.switchport_pvlan_mapping( int_type=self.int_type, name=self.int_name, pri_vlan=self.pvlan, sec_vlan=self.svlan) op = dev.interface.switchport_pvlan_mapping( int_type=self.int_type, name=self.int_name, get=True) self.assertEqual( {'pri_vlan': self.pvlan, 'sec_vlan': self.svlan}, op) dev.interface.switchport_pvlan_mapping( int_type=self.int_type, name=self.int_name, pri_vlan=self.pvlan, sec_vlan=self.svlan, delete=True) op = dev.interface.switchport_pvlan_mapping( int_type=self.int_type, name=self.int_name, get=True) self.assertNotEqual( {'pri_vlan': self.pvlan, 'sec_vlan': self.svlan}, op)
def test_ipv6_anycast_gateway(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.create_ve(ve_name=self.vlan, rbridge_id=self.rbridge_id) dev.interface.ip_anycast_gateway( rbridge_id=self.rbridge_id, int_type='ve', name=self.vlan, anycast_ip=self.anycast_ipv6_address) output = dev.interface.ip_anycast_gateway( rbridge_id=self.rbridge_id, int_type='ve', name=self.vlan, get=True) self.assertIn(self.anycast_ipv6_address, output) dev.interface.ip_anycast_gateway( rbridge_id=self.rbridge_id, int_type='ve', name=self.vlan, anycast_ip=self.anycast_ipv6_address, enable=False) output = dev.interface.ip_anycast_gateway( rbridge_id=self.rbridge_id, int_type='ve', name=self.vlan, get=True) self.assertNotIn(self.anycast_ipv6_address, output) dev.interface.create_ve(ve_name=self.vlan, rbridge_id=self.rbridge_id, enable=False)
def test_vrrpe_vip_vmac(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.vrrpe_vrid( int_type='ve', name=self.vlan, vrid=self.vrid, version=4, rbridge_id=self.rbridge_id) dev.interface.vrrpe_vmac(int_type='ve', name=self.vlan, vrid=self.vrid, rbridge_id=self.rbridge_id, virtual_mac='02e0.5200.00xx') op = dev.interface.vrrpe_vmac(int_type='ve', name=self.vlan, vrid=self.vrid, rbridge_id=self.rbridge_id, get=True) self.assertEqual('02e0.5200.00xx', op) dev.interface.vrrpe_vmac(int_type='ve', name=self.vlan, vrid=self.vrid, rbridge_id=self.rbridge_id, virtual_mac='02e0.5200.00xx', delete=True) op = dev.interface.vrrpe_vmac(int_type='ve', name=self.vlan, vrid=self.vrid, rbridge_id=self.rbridge_id, get=True) self.assertIsNone(op)
def tearDown(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.create_loopback(lb_name=self.loopback_id, rbridge_id=self.rbridge_id, enable=False) dev.interface.overlay_gateway_name(gw_name=self.gw_name, delete=True)
def tearDown(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.switchport(name=self.int_name, int_type=self.int_type, enabled=False) dev.interface.del_vlan_int(vlan_id=self.vlan) dev.interface.del_vlan_int(vlan_id=self.second_vlan)
def test_remove_port_channel(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.create_portchannel(name=self.portchannel_id) dev.interface.remove_port_channel(port_int=self.portchannel_id) op = dev.interface.create_portchannel( name=self.portchannel_id, get=True) self.assertIsNone(op)
def run(self, mgmt_ip, username, password, intf_type, intf_name, rbridge_id, vrrpe_group, ip_version): """Run helper methods to implement the desired state. """ try: self.setup_connection(host=mgmt_ip, user=username, passwd=password) except Exception as e: self.logger.error(e.message) sys.exit(-1) changes = {} with Device(conn=self.conn, auth_snmp=self.auth_snmp) as device: self.validate_supports_rbridge(device, rbridge_id=rbridge_id) self.logger.info('successfully connected to %s to Delete VRRPe group', self.host) # validate supported interface type for vrrpe device.interface.vrrpe_supported_intf(intf_type=intf_type) # pylint: disable=no-member if intf_type == 've': changes['pre_check'] = self._validate_if_ve_exists(device, intf_name, vrrpe_group) else: changes['pre_check'] = self._validate_l3_eth_if_exists(device, intf_name, vrrpe_group) if changes['pre_check']: changes['VRRPe_group'] = self._delete_vrrpe(device, intf_type=intf_type, intf_name=intf_name, rbridge_id=rbridge_id, vrrpe_group=vrrpe_group, ip_version=ip_version) else: raise ValueError('intferface %s does not exist on the switch' % intf_name) self.logger.info('closing connection to %s after' ' Deleting VRRPe group -- all done!', self.host) return changes
def test_anycast(self): with Device(conn=self.conn, auth=self.auth) as dev: mac = '0011.2233.4455' dev.services.vrrpe(rbridge_id=self.rbridge_id, enable=False) dev.services.vrrpe(rbridge_id=self.rbridge_id, enable=False, ip_version='6') dev.services.vrrp(rbridge_id=self.rbridge_id, enabled=False) dev.services.vrrp(rbridge_id=self.rbridge_id, enable=False, ip_version='6') dev.services.vrrpe(rbridge_id=self.rbridge_id, enable=False, ip_version='4') dev.services.vrrp(rbridge_id=self.rbridge_id, enabled=False) dev.services.vrrp(rbridge_id=self.rbridge_id, enable=False, ip_version='4') output = dev.interface.anycast_mac(rbridge_id=self.rbridge_id, mac=mac) output = dev.interface.anycast_mac(rbridge_id=self.rbridge_id, get=True) self.assertEqual(mac, output) dev.interface.anycast_mac(rbridge_id=self.rbridge_id, delete=True) output = dev.interface.anycast_mac(rbridge_id=self.rbridge_id, get=True) self.assertIsNone(output)
def test_ipv6_address(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.ip_address( int_type='loopback', name='1', rbridge_id=self.rbridge_id, ip_addr='fc01:1:3:1ad3:0:0:23:a/128') import pprint op = dev.interface.ip_address( int_type='loopback', name='1', rbridge_id=self.rbridge_id, get=True) pprint.pprint(op) dev.interface.ip_address( int_type='loopback', name='1', rbridge_id=self.rbridge_id, ip_addr='fc01:1:3:1ad3:0:0:23:a/128', delete=True) dev.interface.ip_address( int_type='loopback', name='1', rbridge_id=self.rbridge_id, ip_addr='10.32.34.2/32') dev.interface.ip_address( int_type='loopback', name='1', rbridge_id=self.rbridge_id, ip_addr='10.32.34.2/32', delete=True)
def setUp(self): self.rbridge_id = '1' self.loopback_id = '12' self.mtu = '1666' self.vlan = '34' self.second_vlan = 909 self.ip_mtu = '8000' self.ipv6_mtu = '8080' self.bfd_rx = '300' self.bfd_tx = '300' self.bfd_multiplier = '3' self.description = 'desc123' self.int_name = '1/11' self.int_type = 'ethernet' self.int_ip = '10.32.95.12/24' self.port_int = '21' self.switch_ip = '10.24.39.241' self.admin_password = '******' self.conn = (self.switch_ip, '22') self.auth = ('admin', self.admin_password) with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.create_portchannel(name=self.port_int) dev.interface.add_vlan_int(self.vlan) dev.interface.create_ve(ve_name=self.vlan, rbridge_id=self.rbridge_id) dev.interface.create_loopback(lb_name=self.loopback_id, rbridge_id=self.rbridge_id)
def run(self, mgmt_ip, username, password, vlan_id, rbridge_id, vrrpe_group, ip_version): """Run helper methods to implement the desired state. """ self.setup_connection(host=mgmt_ip, user=username, passwd=password) changes = {} with Device(conn=self.conn, auth=self.auth) as device: self.validate_supports_rbridge(device, rbridge_id=rbridge_id) self.logger.info( 'successfully connected to %s to Delete VRRPe group', self.host) changes['pre_check'] = self._validate_if_ve_exists( device, vlan_id, vrrpe_group) if changes['pre_check']: changes['VRRPe_group'] = self._delete_vrrpe( device, ve_name=vlan_id, rbridge_id=rbridge_id, vrrpe_group=vrrpe_group, ip_version=ip_version) else: raise ValueError('Ve doesnt exist on the switch', vlan_id) self.logger.info( 'closing connection to %s after' ' Deleting VRRPe group -- all done!', self.host) return changes
def test_host_name(self): with Device(conn=self.conn, auth=self.auth) as dev: output = dev.system.host_name(rbridge_id='1', host_name='sw0-test') output = dev.system.host_name(rbridge_id='1', get=True) print 'Host Name %s' % output self.assertEqual('sw0-test', output)
def test_fabric_trunk(self): with Device(conn=self.conn, auth=self.auth) as dev: with self.assertRaises(ValueError) as context: dev.interface.fabric_trunk(int_type=self.int_type, name=self.int_name, enabled=False) print context
def test_description(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.description(int_type=self.int_type, name=self.int_name, desc=self.description) op = dev.interface.description(int_type=self.int_type, name=self.int_name, get=True) self.assertEqual(self.description, op) dev.interface.description(int_type='vlan', name=self.vlan, desc=self.description) op = dev.interface.description(int_type='vlan', name=self.vlan, get=True) self.assertEqual(self.description, op) dev.interface.description(int_type='port_channel', name=self.port_int, desc=self.description) op = dev.interface.description(int_type='port_channel', name=self.port_int, get=True) self.assertEqual(self.description, op)
def test_snmp_host(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.snmp.add_snmp_community(community='anm') dev.snmp.add_snmp_host(community='anm', host_info=('10.32.45.12', '123')) dev.snmp.del_snmp_host(community='anm', host_info=('10.32.45.12', '123'))
def test_ipv6_link_local(self): with Device(conn=self.conn, auth=self.auth) as dev: output = dev.interface.ipv6_link_local(int_type='ve', name=self.vlan, rbridge_id=self.rbridge_id) output = dev.interface.ipv6_link_local(int_type='ve', name=self.vlan, rbridge_id=self.rbridge_id, get=True) print 'VE ipv6_link_local : ', output self.assertEqual(True, output) output = dev.interface.ipv6_link_local(int_type='ve', name=self.vlan, rbridge_id=self.rbridge_id, delete=True) output = dev.interface.ipv6_link_local(int_type='ve', name=self.vlan, rbridge_id=self.rbridge_id, get=True) print 'VE ipv6_link_local : ', output self.assertEqual(None, output) # output = dev.interface.ipv6_link_local(int_type='loopback', name=self.loopback_id, rbridge_id=self.rbridge_id) output = dev.interface.ipv6_link_local(int_type='loopback', name=self.loopback_id, rbridge_id=self.rbridge_id, get=True) print 'loopback ipv6_link_local : ', output self.assertEqual(None, output)
def run(self, mgmt_ip, username, password, port_channel_id): """Run helper methods to implement the desired state. """ try: self.setup_connection(host=mgmt_ip, user=username, passwd=password) except Exception as e: self.logger.error(e.message) sys.exit(-1) changes = {} with Device(conn=self.conn, auth_snmp=self.auth_snmp) as device: self.logger.info('successfully connected to %s to delete l2 port channel', self.host) valid_po, reason = pyswitch.utilities.validate_port_channel_id(device.platform_type, port_channel_id) if not valid_po: self.logger.error(reason) sys.exit(-1) changes['port_channel_configs'] = self._delete_l2_port_channel(device, portchannel_num=port_channel_id) self.logger.info('closing connection to %s after' ' deleting l2 port channel -- all done!', self.host) return changes
def test_bfd(self): with Device(conn=self.conn, auth=self.auth) as dev: output = dev.interface.bfd(name=self.int_name, int_type=self.int_type, rx=self.bfd_rx, tx=self.bfd_tx, multiplier=self.bfd_multiplier) output = dev.interface.bfd(name=self.int_name, int_type=self.int_type, get=True) self.assertEqual( { 'rx': self.bfd_rx, 'tx': self.bfd_rx, 'multiplier': self.bfd_multiplier }, output) output = dev.interface.bfd(name=self.int_name, int_type=self.int_type, delete=True) output = dev.interface.bfd(name=self.int_name, int_type=self.int_type, get=True) self.assertEqual({ 'rx': None, 'tx': None, 'multiplier': None }, output)
def test_vrf_afi_rt_evpn(self): with Device(conn=self.conn, auth=self.auth) as dev: output = dev.interface.vrf_afi_rt_evpn( vrf_name=self.vrf, rbridge_id=self.rbridge_id, afi=self.afi, rt=self.rt, rt_value=self.rt_value) output = dev.interface.vrf_afi_rt_evpn( vrf_name=self.vrf, afi=self.afi, rbridge_id=self.rbridge_id, get=True) self.assertIn( {'afi': self.afi, 'rbridge_id': self.rbridge_id, 'rt': [ self.rt], 'rtvalue': [self.rt_value], 'vrf_name': self.vrf}, output) output = dev.interface.vrf_afi_rt_evpn( vrf_name=self.vrf, rbridge_id=self.rbridge_id, afi=self.afi, rt=self.rt, rt_value=self.rt_value, delete_rt=True) output = dev.interface.vrf_afi_rt_evpn( vrf_name=self.vrf, afi=self.afi, rbridge_id=self.rbridge_id, get=True) self.assertNotIn( {'afi': self.afi, 'rbridge_id': self.rbridge_id, 'rt': [ self.rt], 'rtvalue': [self.rt_value], 'vrf_name': self.vrf}, output)
def test_interface_exists(self): with Device(conn=self.conn, auth=self.auth) as dev: op = dev.interface.interface_exists(int_type=self.int_type, name='1/97') self.assertFalse(op) op = dev.interface.interface_exists(int_type=self.int_type, name=self.int_name) self.assertTrue(op) op = dev.interface.interface_exists(int_type='ve', name=self.vlan) self.assertTrue(op) op = dev.interface.interface_exists(int_type='ve', rbridge_id=self.rbridge_id, name='1023') self.assertFalse(op) op = dev.interface.interface_exists(int_type='loopback', rbridge_id=self.rbridge_id, name=self.loopback_id) self.assertTrue(op) op = dev.interface.interface_exists(int_type='loopback', rbridge_id=self.rbridge_id, name='254') self.assertFalse(op) op = dev.interface.interface_exists(int_type='port_channel', rbridge_id=self.port_int, name=self.port_int) self.assertTrue(op) op = dev.interface.interface_exists(int_type='port_channel', rbridge_id=self.port_int, name='254') self.assertFalse(op)
def test_arp(self): self.conn = ('10.20.61.21', '22') with Device(conn=self.conn, auth=self.auth) as dev: x = dev.services.arp import pprint pprint.pprint(x)
def test_ip_unumbered(self): with Device(conn=self.conn, auth=self.auth) as dev: donor_type = 'loopback' output = dev.interface.switchport(name=self.int_name, int_type=self.int_type, enabled=False) output = dev.interface.ip_unnumbered(name=self.int_name, int_type=self.int_type, donor_type=donor_type, donor_name=self.loopback_id) output = dev.interface.ip_unnumbered(name=self.int_name, int_type=self.int_type, get=True) self.assertEqual( { 'donor_type': donor_type, 'donor_name': self.loopback_id }, output) output = dev.interface.ip_unnumbered(name=self.int_name, int_type=self.int_type, delete=True) output = dev.interface.ip_unnumbered(name=self.int_name, int_type=self.int_type, get=True) self.assertEqual({'donor_type': None, 'donor_name': None}, output)
def test_port_channels(self): with Device(conn=self.conn, auth=self.auth) as dev: op = dev.interface.port_channels print op port_channel_list = [item['aggregator_id'] for item in op] self.assertIn(self.portchannel_id, port_channel_list)
def test_transport_service(self): with Device(conn=self.conn, auth=self.auth) as dev: dev.interface.add_vlan_int('6666') dev.interface.spanning_tree_state(name='6666', int_type='vlan', enabled=False) dev.interface.transport_service(vlan='6666', service_id=2)