예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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
예제 #4
0
    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})
예제 #5
0
 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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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
예제 #14
0
    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)
예제 #15
0
    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)
예제 #16
0
    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
예제 #18
0
    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)
예제 #19
0
 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
예제 #20
0
    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)
예제 #21
0
 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'))
예제 #22
0
    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)
예제 #23
0
    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
예제 #24
0
    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)
예제 #25
0
    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)
예제 #26
0
    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)
예제 #27
0
    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)
예제 #28
0
    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)
예제 #29
0
    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)
예제 #30
0
 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)