Esempio n. 1
0
    def __new__(cls, *args, **kwargs):

        factory_cls = cls
        if cls is Interface:
            try:
                name = kwargs['name']
            except KeyError:
                raise TypeError('\'name\' argument missing')
            try:
                d_parsed = SpirentParsedInterfaceName(
                    name, kwargs.get('device', None))
            except ValueError as e1:
                # Not based on a Spirent physical port?
                d_parsed = ParsedInterfaceName(name,
                                               kwargs.get('device', None))
                if d_parsed.subintf:
                    factory_cls = SubInterface
                else:
                    raise UnknownInterfaceTypeError
            else:
                # Based on a Spirent physical port.
                if d_parsed.subintf:
                    factory_cls = SubInterface
                else:
                    factory_cls = PhysicalInterface

        if factory_cls is not cls:
            self = factory_cls.__new__(factory_cls, *args, **kwargs)
        elif super().__new__ is object.__new__:
            self = super().__new__(factory_cls)
        else:
            self = super().__new__(factory_cls, *args, **kwargs)
        return self
Esempio n. 2
0
 def parse_interface_name(inst, cls, *args, **kwargs):
     if inst:
         if args or kwargs:
             raise TypeError('Unexpected arguments: %r %r' % (args, kwargs))
         try:
             return SpirentParsedInterfaceName(name=inst.name,
                                               device=inst.device)
         except ValueError:
             # Not based on a Spirent physical port?
             return ParsedInterfaceName(name=inst.name, device=inst.device)
     else:
         try:
             return SpirentParsedInterfaceName(*args, **kwargs)
         except ValueError:
             # Not based on a Spirent physical port?
             return ParsedInterfaceName(*args, **kwargs)
Esempio n. 3
0
    def test_ParsedInterfaceName(self):

        # TODO net_module module rack slot instance port subport cpu rsip
        d_parsed = ParsedInterfaceName(' Loopback 0 ')
        self.assertEqual(d_parsed.type, 'Loopback')
        self.assertEqual(d_parsed.number, '0')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'Loopback0')
        d_parsed = ParsedInterfaceName('Ethernet0/0')
        self.assertEqual(d_parsed.type, 'Ethernet')
        self.assertEqual(d_parsed.number, '0/0')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'Ethernet0/0')
        d_parsed = ParsedInterfaceName('GigabitEthernet0/0/0/0')
        self.assertEqual(d_parsed.type, 'GigabitEthernet')
        self.assertEqual(d_parsed.number, '0/0/0/0')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'GigabitEthernet0/0/0/0')
        d_parsed = ParsedInterfaceName('MgmtEth0/RP0/CPU0/0')
        self.assertEqual(d_parsed.type, 'MgmtEth')
        self.assertEqual(d_parsed.number, '0/RP0/CPU0/0')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'MgmtEth0/RP0/CPU0/0')
        d_parsed = ParsedInterfaceName(' GigabitEthernet 0/0/0/0.0 ')
        self.assertEqual(d_parsed.type, 'GigabitEthernet')
        self.assertEqual(d_parsed.number, '0/0/0/0')
        self.assertEqual(d_parsed.subintf_sep, '.')
        self.assertEqual(d_parsed.subintf, '0')
        self.assertEqual(d_parsed.reconstruct(), 'GigabitEthernet0/0/0/0.0')
        d_parsed = ParsedInterfaceName('GigabitEthernet0/0/0/0:0')
        self.assertEqual(d_parsed.type, 'GigabitEthernet')
        self.assertEqual(d_parsed.number, '0/0/0/0')
        self.assertEqual(d_parsed.subintf_sep, ':')
        self.assertEqual(d_parsed.subintf, '0')
        self.assertEqual(d_parsed.reconstruct(), 'GigabitEthernet0/0/0/0:0')
        d_parsed = ParsedInterfaceName('tunnel-te1')
        self.assertEqual(d_parsed.type, 'tunnel-te')
        self.assertEqual(d_parsed.number, '1')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'tunnel-te1')
        d_parsed = ParsedInterfaceName('GCC0')
        self.assertEqual(d_parsed.type, 'GCC0')
        self.assertEqual(d_parsed.number, None)
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'GCC0')
        d_parsed = ParsedInterfaceName('g0')
        self.assertEqual(d_parsed.type, 'g0')
        self.assertEqual(d_parsed.number, None)
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'g0')
        d_parsed = ParsedInterfaceName('GCC1')
        self.assertEqual(d_parsed.type, 'GCC1')
        self.assertEqual(d_parsed.number, None)
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'GCC1')
        d_parsed = ParsedInterfaceName('OTU3E20/0/0/0')
        self.assertEqual(d_parsed.type, 'OTU3E2')
        self.assertEqual(d_parsed.number, '0/0/0/0')
        self.assertEqual(d_parsed.subintf_sep, None)
        self.assertEqual(d_parsed.subintf, None)
        self.assertEqual(d_parsed.reconstruct(), 'OTU3E20/0/0/0')