Exemplo n.º 1
0
    def setUp(self):
        """Create a superuser and token for API calls."""
        self.site1 = Site.objects.create(name="USWEST", slug="uswest")

        self.manufacturer1 = Manufacturer.objects.create(name="Juniper", slug="juniper")
        self.platform1 = Platform.objects.create(name="JunOS", slug="junos")
        self.device_type1 = DeviceType.objects.create(slug="srx3600", model="SRX3600", manufacturer=self.manufacturer1)
        self.device_role1 = DeviceRole.objects.create(name="Firewall", slug="firewall")

        self.onboarding_task1 = OnboardingTask.objects.create(ip_address="10.10.10.10", site=self.site1)
        self.onboarding_task2 = OnboardingTask.objects.create(
            ip_address="192.168.1.1", site=self.site1, role=self.device_role1
        )
        self.onboarding_task3 = OnboardingTask.objects.create(
            ip_address="192.168.1.2", site=self.site1, role=self.device_role1, platform=self.platform1
        )

        self.ndk1 = NetdevKeeper(self.onboarding_task1)
        self.ndk1.hostname = "device1"
        self.ndk1.vendor = "cisco"
        self.ndk1.model = "csr1000v"
        self.ndk1.serial_number = "123456"
        self.ndk1.mgmt_ifname = "GigaEthernet0"
        self.ndk1.mgmt_pflen = 24

        self.ndk2 = NetdevKeeper(self.onboarding_task2)
        self.ndk2.hostname = "device2"
        self.ndk2.vendor = "juniper"
        self.ndk2.model = "srx3600"
        self.ndk2.serial_number = "123456"
        self.ndk2.mgmt_ifname = "ge-0/0/0"
        self.ndk2.mgmt_pflen = 24
    def test_failed_check_ip(self, mock_get_hostbyname):
        """Check DNS to IP address failing."""
        # Look up a failed response
        mock_get_hostbyname.side_effect = gaierror(8)
        ndk5 = NetdevKeeper(self.onboarding_task5)
        ndk7 = NetdevKeeper(self.onboarding_task7)

        # Check for bad.local raising an exception
        with self.assertRaises(OnboardException) as exc_info:
            ndk5.check_ip()
            self.assertEqual(exc_info.exception.message,
                             "ERROR failed to complete DNS lookup: bad.local")
            self.assertEqual(exc_info.exception.reason, "fail-dns")

        # Check for exception with prefix address entered
        with self.assertRaises(OnboardException) as exc_info:
            ndk7.check_ip()
            self.assertEqual(exc_info.exception.reason, "fail-prefix")
            self.assertEqual(
                exc_info.exception.message,
                "ERROR appears a prefix was entered: 192.0.2.1/32")
    def test_check_ip(self, mock_get_hostbyname):
        """Check DNS to IP address."""
        # Look up response value
        mock_get_hostbyname.return_value = "192.0.2.1"

        # Create a Device Keeper object of the device
        ndk4 = NetdevKeeper(self.onboarding_task4)

        # Check that the IP address is returned
        self.assertTrue(ndk4.check_ip())

        # Run the check to change the IP address
        self.assertEqual(ndk4.ot.ip_address, "192.0.2.1")
    def test_platform_map(self):
        """Verify platform mapping of netmiko to slug functionality."""
        # Create static mapping
        platform_map = {
            "cisco_ios": "ios",
            "arista_eos": "eos",
            "cisco_nxos": "cisco-nxos"
        }

        # Generate an instance of a Cisco IOS device with the mapping defined
        self.ndk1 = NetdevKeeper(self.onboarding_task1)

        #
        # Test positive assertions
        #

        # Test Cisco_ios
        self.assertEqual(
            self.ndk1.check_netmiko_conversion("cisco_ios",
                                               platform_map=platform_map),
            "ios")
        # Test Arista EOS
        self.assertEqual(
            self.ndk1.check_netmiko_conversion("arista_eos",
                                               platform_map=platform_map),
            "eos")
        # Test cisco_nxos
        self.assertEqual(
            self.ndk1.check_netmiko_conversion("cisco_nxos",
                                               platform_map=platform_map),
            "cisco-nxos")

        #
        # Test Negative assertion
        #

        # Test a non-converting item
        self.assertEqual(
            self.ndk1.check_netmiko_conversion("cisco-device-platform",
                                               platform_map=platform_map),
            "cisco-device-platform",
        )