Exemple #1
0
 def test_juno_vexpress_valid_template(self):
     name = "juno-r2"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt,
                     hostname="juno-r2-01",
                     health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone(
         [d for d in Device.objects.filter(device_type=dt)])
     for device_file in os.listdir(settings.DEVICE_TYPES_PATH):
         if device_file == "juno-r2.jinja2":
             self.fail(
                 "Configuration error - %s.jinja2 should NOT exist in %s" %
                 (name, settings.DEVICE_TYPES_PATH))
     self.assertTrue(settings.DEVICES_PATH.startswith(self.basedir))
     self.assertEqual("juno-r2-01", device.hostname)
     self.assertIsNotNone(device.load_configuration())
     self.assertEqual(
         [device],
         [device for device in Device.objects.filter(device_type=dt)])
     self.assertEqual("juno", device.get_extends())
     self.assertFalse(
         bool(load_devicetype_template(device.device_type.name)))
     self.assertFalse(invalid_template(device.device_type))
Exemple #2
0
 def test_bbb_valid_template(self):
     name = "beaglebone-black"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt,
                     hostname="bbb-01",
                     health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone(
         [d for d in Device.objects.filter(device_type=dt)])
     self.assertTrue(settings.DEVICES_PATH.startswith(self.basedir))
     found = False
     for device_file in os.listdir(settings.DEVICE_TYPES_PATH):
         if device_file == "%s.jinja2" % name:
             found = True
             break
     if not found:
         self.fail("Configuration error - %s.jinja2 should exist in %s" %
                   (name, settings.DEVICE_TYPES_PATH))
     self.assertIsNotNone([device in Device.objects.filter(device_type=dt)])
     self.assertIsNotNone(device.load_configuration())
     self.assertTrue(bool(load_devicetype_template(
         device.device_type.name)))
     self.assertFalse(invalid_template(device.device_type))
Exemple #3
0
 def test_unknown_invalid_template(self):
     name = "nowhere-never-skip"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt, hostname="test-01", health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     self.assertIsNone(device.load_configuration())
     self.assertIsNotNone([device in Device.objects.filter(device_type=dt)])
     self.assertFalse(bool(load_devicetype_template(device.device_type.name)))
     self.assertTrue(invalid_template(device.device_type))
Exemple #4
0
 def test_bbb_valid_template(self):
     name = "beaglebone-black"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt, hostname="bbb-01", health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     self.assertTrue(File("device-type").exists(f"{name}.jinja2"))
     self.assertIsNotNone([device in Device.objects.filter(device_type=dt)])
     self.assertIsNotNone(device.load_configuration())
     self.assertTrue(bool(load_devicetype_template(device.device_type.name)))
     self.assertFalse(invalid_template(device.device_type))
Exemple #5
0
    def test_active_device_types(self):
        name = "beaglebone-black"
        dt = DeviceType(name=name)
        dt.save()
        dt.refresh_from_db()
        device = Device(device_type=dt,
                        hostname='bbb-01',
                        health=Device.HEALTH_GOOD)
        device.save()
        device = Device(device_type=dt,
                        hostname='bbb-02',
                        health=Device.HEALTH_RETIRED)
        device.save()

        name = "juno-r2"
        dt = DeviceType(name=name)
        dt.save()
        dt.refresh_from_db()
        device = Device(device_type=dt,
                        hostname='juno-r2-01',
                        health=Device.HEALTH_RETIRED)
        device.save()

        name = "juno"
        dt = DeviceType(name=name)
        dt.display = False
        dt.save()
        dt.refresh_from_db()
        dt.refresh_from_db()
        device = Device(device_type=dt,
                        hostname='juno-01',
                        health=Device.HEALTH_UNKNOWN)
        device.save()

        name = "qemu"
        dt = DeviceType(name=name)
        dt.save()
        dt.refresh_from_db()
        device = Device(device_type=dt,
                        hostname='qemu-01',
                        health=Device.HEALTH_GOOD)
        device.save()

        self.assertEqual(
            {'bbb-01', 'bbb-02', 'juno-r2-01', 'qemu-01', 'juno-01'},
            set(Device.objects.all().values_list('hostname', flat=True)))

        self.assertEqual({'beaglebone-black', 'juno', 'juno-r2', 'qemu'},
                         set(DeviceType.objects.values_list('name',
                                                            flat=True)))

        # exclude juno-r2 because all devices of that device-type are retired.
        # exclude juno because the device_type is set to not be displayed.
        # include beaglebone-black because not all devices of that type are retired.
        # include qemu because none of the devices of that type are retired.
        self.assertEqual({'beaglebone-black', 'qemu'},
                         set(active_device_types().values_list('name',
                                                               flat=True)))
Exemple #6
0
 def test_retired_invalid_template(self):
     name = "beaglebone-black"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt, hostname="bbb-01", health=Device.HEALTH_RETIRED)
     device.save()
     device.refresh_from_db()
     self.assertEqual(
         [],
         list(
             Device.objects.filter(
                 Q(device_type=dt), ~Q(health=Device.HEALTH_RETIRED)
             )
         ),
     )
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     self.assertFalse(invalid_template(device.device_type))
Exemple #7
0
 def test_unknown_invalid_template(self):
     name = "nowhere-never-skip"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt, hostname='test-01', health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     self.assertTrue(Device.CONFIG_PATH.startswith(self.basedir))
     found = False
     for device_file in os.listdir(self.types_dir):
         if device_file == '%s.jinja2' % name:
             self.fail("Configuration error - %s.jinja2 should NOT exist in %s" % (name, self.types_dir))
     self.assertIsNone(device.load_configuration())
     self.assertIsNotNone([device in Device.objects.filter(device_type=dt)])
     self.assertFalse(bool(load_devicetype_template(device.device_type.name)))
     self.assertTrue(invalid_template(device.device_type))
Exemple #8
0
 def test_juno_vexpress_valid_template(self):
     name = "juno-r2"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt, hostname='juno-r2-01', health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     for device_file in os.listdir(self.types_dir):
         if device_file == 'juno-r2.jinja2':
             self.fail("Configuration error - %s.jinja2 should NOT exist in %s" % (name, self.types_dir))
     self.assertTrue(Device.CONFIG_PATH.startswith(self.basedir))
     self.assertEqual('juno-r2-01', device.hostname)
     self.assertIsNotNone(device.load_configuration())
     self.assertEqual([device], [device for device in Device.objects.filter(device_type=dt)])
     self.assertEqual('juno', device.get_extends())
     self.assertFalse(bool(load_devicetype_template(device.device_type.name)))
     self.assertFalse(invalid_template(device.device_type))
Exemple #9
0
 def test_juno_vexpress_valid_template(self):
     name = "juno-r2"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(
         device_type=dt, hostname="juno-r2-01", health=Device.HEALTH_GOOD
     )
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone([d for d in Device.objects.filter(device_type=dt)])
     self.assertFalse(File("device-type").exists("juno-r2.jinja2"))
     self.assertEqual("juno-r2-01", device.hostname)
     self.assertIsNotNone(device.load_configuration())
     self.assertEqual(
         [device], [device for device in Device.objects.filter(device_type=dt)]
     )
     self.assertEqual("juno", device.get_extends())
     self.assertFalse(bool(load_devicetype_template(device.device_type.name)))
     self.assertFalse(invalid_template(device.device_type))
Exemple #10
0
 def test_unknown_invalid_template(self):
     name = "nowhere-never-skip"
     dt = DeviceType(name=name)
     dt.save()
     dt.refresh_from_db()
     device = Device(device_type=dt,
                     hostname="test-01",
                     health=Device.HEALTH_GOOD)
     device.save()
     device.refresh_from_db()
     self.assertIsNotNone(
         [d for d in Device.objects.filter(device_type=dt)])
     self.assertTrue(Device.CONFIG_PATH.startswith(self.basedir))
     found = False
     for device_file in os.listdir(self.types_dir):
         if device_file == "%s.jinja2" % name:
             self.fail(
                 "Configuration error - %s.jinja2 should NOT exist in %s" %
                 (name, self.types_dir))
     self.assertIsNone(device.load_configuration())
     self.assertIsNotNone([device in Device.objects.filter(device_type=dt)])
     self.assertFalse(
         bool(load_devicetype_template(device.device_type.name)))
     self.assertTrue(invalid_template(device.device_type))