Beispiel #1
0
    def test_f5(self):
        self.ip.snmp_name = (
            'Linux f5-2a.dc2 2.6.18-164.11.1.el5.1.0.f5app #1 '
            'SMP Mon Oct 18 11:55:00 PDT 2010 x86_64')
        self.ip.save()

        def snmp_side(ip, community, oid, *args, **kwargs):
            oid = '.'.join(str(i) for i in oid)
            if oid == '1.3.6.1.4.1.3375.2.1.3.5.2.0':
                return [[None, 'F5 BIG-IP 8400']]
            elif oid == '1.3.6.1.4.1.3375.2.1.3.3.3.0':
                return [[None, 'bip241990s']]

        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.return_value = [
                '0001D76A7852', '0001D76A7846', '0001D76A784A', '0001D76A784E',
                '0001D76A7843', '0001D76A7847', '0001D76A784B', '0001D76A784F',
                '0001D76A7844', '0001D76A7848', '0001D76A784C', '0001D76A7850',
                '00D06814F5F6', '0001D76A7845', '0001D76A7849', '0001D76A784D',
                '0001D76A7851', '0201D76A7851'
            ]
            with mock.patch('ralph.discovery.plugins.snmp.snmp_command'
                            ) as snmp_command:
                snmp_command.side_effect = snmp_side
                snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                                 self.ip.snmp_version, self.ip.address,
                                 self.kwargs)
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        macs = [e.mac for e in dev.ethernet_set.all()]
        self.assertNotIn('0201D76A7851', macs, "Filtering F5 shared MACs.")
Beispiel #2
0
    def test_f5(self):
        self.ip.snmp_name = ('Linux f5-2a.dc2 2.6.18-164.11.1.el5.1.0.f5app #1 '
                             'SMP Mon Oct 18 11:55:00 PDT 2010 x86_64')
        self.ip.save()

        def snmp_side(ip, community, oid, *args, **kwargs):
            oid = '.'.join(str(i) for i in oid)
            if oid == '1.3.6.1.4.1.3375.2.1.3.5.2.0':
                return [[None, 'F5 BIG-IP 8400']]
            elif oid == '1.3.6.1.4.1.3375.2.1.3.3.3.0':
                return [[None, 'bip241990s']]
        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.return_value = ['0001D76A7852', '0001D76A7846',
                                      '0001D76A784A', '0001D76A784E', '0001D76A7843', '0001D76A7847',
                                      '0001D76A784B', '0001D76A784F', '0001D76A7844', '0001D76A7848',
                                      '0001D76A784C', '0001D76A7850', '00D06814F5F6', '0001D76A7845',
                                      '0001D76A7849', '0001D76A784D', '0001D76A7851', '0201D76A7851']
            with mock.patch('ralph.discovery.plugins.snmp.snmp_command') as snmp_command:
                snmp_command.side_effect = snmp_side
                snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                                 self.ip.snmp_version, self.ip.address,
                                 self.kwargs)
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        macs = [e.mac for e in dev.ethernet_set.all()]
        self.assertNotIn('0201D76A7851', macs, "Filtering F5 shared MACs.")
Beispiel #3
0
 def test_windows_empty(self):
     with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
         snmp_macs.return_value = []
         with self.assertRaises(snmp.Error) as raised:
             snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                              self.ip.snmp_version, self.ip.address,
                              self.kwargs)
         self.assertEquals(raised.exception.args[0], 'no MAC.')
Beispiel #4
0
 def test_windows_empty(self):
     with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
         snmp_macs.return_value = []
         with self.assertRaises(snmp.Error) as raised:
             snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                              self.ip.snmp_version, self.ip.address,
                              self.kwargs)
         self.assertEquals(raised.exception.args[0], 'no MAC.')
Beispiel #5
0
    def test_modular(self):
        self.ip.snmp_name = 'Intel Modular Server System'
        self.ip.save()

        def macs_side(ip, community, oid, *args, **kwargs):
            soid = '.'.join(str(i) for i in oid)
            if soid.startswith('1.3.6.1.4.1.343.2.19.1.2.10.202.3.1.1.'):
                return {
                    1: set([u'001E670C5960', u'001E67123169', u'001E67123168',
                            u'001E670C5961', u'001E670C53BD', u'001E6710DD9D',
                            u'001E6710DD9C', u'001E670C53BC', u'001E671232F5',
                            u'001E671232F4', u'001E670C5395', u'001E670C5394']),
                    2: set([u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                            u'001E6710DD9D', u'001E6710DD9C', u'001E670C53BC',
                            u'001E671232F5', u'001E671232F4', u'001E670C5395',
                            u'001E670C5394']),
                    3: set([u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                            u'001E6710DD9D', u'001E6710DD9C', u'001E670C53BC',
                            u'001E670C5395', u'001E670C5394']),
                    4: set([u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                            u'001E670C53BC', u'001E670C5395', u'001E670C5394']),
                    5: set([u'001E670C5960', u'001E670C5961', u'001E670C5395',
                            u'001E670C5394']),
                    6: set([u'001E670C5960', u'001E670C5961'])
                }[oid[-1]]
            return ['001E6712C2E6', '001E6712C2E7']
        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.side_effect = macs_side
            with mock.patch('ralph.discovery.plugins.snmp.snmp_command') as snmp_command:
                snmp_command.return_value = [[None, 6]]
                snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                                 self.ip.snmp_version, self.ip.address, self.kwargs)
        self.maxDiff = None
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        children = [d.model.name for d in dev.child_set.all()]
        self.assertEqual(children, ['Intel Modular Blade'] * 6)
        macs = [
            [e.mac for e in d.ethernet_set.all()] for d in dev.child_set.all()]
        self.assertEqual(macs, [
            [u'001E67123168', u'001E67123169'],
            [u'001E671232F4', u'001E671232F5'],
            [u'001E6710DD9C', u'001E6710DD9D'],
            [u'001E670C53BC', u'001E670C53BD'],
            [u'001E670C5394', u'001E670C5395'],
            [u'001E670C5960', u'001E670C5961']
        ])
Beispiel #6
0
    def test_vmware(self):
        self.ip.snmp_name = ('VMware ESX 4.1.0 build-320137 VMware, Inc. '
                             'x86_64')
        self.ip.save()
        def macs_side(ip, community, oid, *args, **kwargs):
            if oid == (1,3,6,1,4,1,6876,2,4,1,7):
                return ['000C2942346D']
            return ['1CC1DEEC0FEC', '1CC1DEEC0FE8']

        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.side_effect = macs_side
            snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                             self.ip.snmp_version, self.ip.address, self.kwargs)
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        children = [d.model.name for d in dev.child_set.all()]
        self.assertEqual(children, ['VMware ESX virtual server'])
        macs = [[e.mac for e in d.ethernet_set.all()] for d in dev.child_set.all()]
        self.assertEqual(macs, [['000C2942346D']])
Beispiel #7
0
    def test_vmware(self):
        self.ip.snmp_name = ('VMware ESX 4.1.0 build-320137 VMware, Inc. '
                             'x86_64')
        self.ip.save()

        def macs_side(ip, community, oid, *args, **kwargs):
            if oid == (1, 3, 6, 1, 4, 1, 6876, 2, 4, 1, 7):
                return ['000C2942346D']
            return ['1CC1DEEC0FEC', '1CC1DEEC0FE8']

        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.side_effect = macs_side
            snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                             self.ip.snmp_version, self.ip.address,
                             self.kwargs)
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        children = [d.model.name for d in dev.child_set.all()]
        self.assertEqual(children, ['VMware ESX virtual server'])
        macs = [[e.mac for e in d.ethernet_set.all()]
                for d in dev.child_set.all()]
        self.assertEqual(macs, [['000C2942346D']])
Beispiel #8
0
 def test_windows(self):
     with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
         snmp_macs.return_value = ['001A643320EA']
         ethernets = snmp.do_snmp_mac(self.ip.snmp_name,
                                      self.ip.snmp_community,
                                      self.ip.snmp_version, self.ip.address,
                                      self.kwargs)
     macs = [e.mac for e in ethernets]
     self.assertEquals(macs, ['001A643320EA'])
     ip = IPAddress.objects.get(address=self.ip.address)
     self.assertEquals(ip.is_management, False)
     dev = ip.device
     self.assertNotEquals(dev, None)
     self.assertEquals(dev.model.name, 'Windows')
     self.assertEquals(dev.model.type, DeviceType.unknown.id)
     macs = [e.mac for e in dev.ethernet_set.all()]
     self.assertEquals(macs, ['001A643320EA'])
Beispiel #9
0
 def test_windows(self):
     with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
         snmp_macs.return_value = ['001A643320EA']
         ethernets = snmp.do_snmp_mac(self.ip.snmp_name,
                                      self.ip.snmp_community,
                                      self.ip.snmp_version, self.ip.address,
                                      self.kwargs)
     macs = [e.mac for e in ethernets]
     self.assertEquals(macs, ['001A643320EA'])
     ip = IPAddress.objects.get(address=self.ip.address)
     self.assertEquals(ip.is_management, False)
     dev = ip.device
     self.assertNotEquals(dev, None)
     self.assertEquals(dev.model.name, 'Windows')
     self.assertEquals(dev.model.type, DeviceType.unknown.id)
     macs = [e.mac for e in dev.ethernet_set.all()]
     self.assertEquals(macs, ['001A643320EA'])
Beispiel #10
0
    def test_modular(self):
        self.ip.snmp_name = 'Intel Modular Server System'
        self.ip.save()

        def macs_side(ip, community, oid, *args, **kwargs):
            soid = '.'.join(str(i) for i in oid)
            if soid.startswith('1.3.6.1.4.1.343.2.19.1.2.10.202.3.1.1.'):
                return {
                    1:
                    set([
                        u'001E670C5960', u'001E67123169', u'001E67123168',
                        u'001E670C5961', u'001E670C53BD', u'001E6710DD9D',
                        u'001E6710DD9C', u'001E670C53BC', u'001E671232F5',
                        u'001E671232F4', u'001E670C5395', u'001E670C5394'
                    ]),
                    2:
                    set([
                        u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                        u'001E6710DD9D', u'001E6710DD9C', u'001E670C53BC',
                        u'001E671232F5', u'001E671232F4', u'001E670C5395',
                        u'001E670C5394'
                    ]),
                    3:
                    set([
                        u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                        u'001E6710DD9D', u'001E6710DD9C', u'001E670C53BC',
                        u'001E670C5395', u'001E670C5394'
                    ]),
                    4:
                    set([
                        u'001E670C5960', u'001E670C5961', u'001E670C53BD',
                        u'001E670C53BC', u'001E670C5395', u'001E670C5394'
                    ]),
                    5:
                    set([
                        u'001E670C5960', u'001E670C5961', u'001E670C5395',
                        u'001E670C5394'
                    ]),
                    6:
                    set([u'001E670C5960', u'001E670C5961'])
                }[oid[-1]]
            return ['001E6712C2E6', '001E6712C2E7']

        with mock.patch('ralph.discovery.plugins.snmp.snmp_macs') as snmp_macs:
            snmp_macs.side_effect = macs_side
            with mock.patch('ralph.discovery.plugins.snmp.snmp_command'
                            ) as snmp_command:
                snmp_command.return_value = [[None, 6]]
                snmp.do_snmp_mac(self.ip.snmp_name, self.ip.snmp_community,
                                 self.ip.snmp_version, self.ip.address,
                                 self.kwargs)
        self.maxDiff = None
        ip = IPAddress.objects.get(address=self.ip.address)
        dev = ip.device
        self.assertNotEquals(dev, None)
        children = [d.model.name for d in dev.child_set.all()]
        self.assertEqual(children, ['Intel Modular Blade'] * 6)
        macs = [[e.mac for e in d.ethernet_set.all()]
                for d in dev.child_set.all()]
        self.assertEqual(macs, [[u'001E67123168', u'001E67123169'],
                                [u'001E671232F4', u'001E671232F5'],
                                [u'001E6710DD9C', u'001E6710DD9D'],
                                [u'001E670C53BC', u'001E670C53BD'],
                                [u'001E670C5394', u'001E670C5395'],
                                [u'001E670C5960', u'001E670C5961']])