Пример #1
0
 def test_match_devices_without_map(self):
     """
     Without a map, there is no support for knowing which interfaces to
     put onto a VLAN, so these devices cannot be assigned to a VLAN testjob
     See http://localhost/static/docs/v2/vland.html#vland-and-interface-tags-in-lava
     """
     devices = Device.objects.filter(
         status=Device.IDLE).order_by('is_public')
     self.factory.ensure_tag('usb-eth')
     self.factory.ensure_tag('sata')
     self.factory.bbb1.tags = Tag.objects.filter(name='usb-eth')
     self.factory.bbb1.save()
     self.factory.cubie1.tags = Tag.objects.filter(name='sata')
     self.factory.cubie1.save()
     device_dict = DeviceDictionary(hostname=self.factory.bbb1.hostname)
     self.assertIsNone(device_dict.to_dict()['parameters'])
     device_dict = DeviceDictionary(hostname=self.factory.cubie1.hostname)
     self.assertIsNone(device_dict.to_dict()['parameters'])
     user = self.factory.make_user()
     sample_job_file = os.path.join(os.path.dirname(__file__),
                                    'sample_jobs',
                                    'bbb-cubie-vlan-group.yaml')
     with open(sample_job_file, 'r') as test_support:
         data = yaml.load(test_support)
     vlan_job = TestJob.from_yaml_and_user(yaml.dump(data), user)
     assignments = {}
     for job in vlan_job:
         device = find_device_for_job(job, devices)
         self.assertIsNone(device)
         # no map defined
         self.assertFalse(
             match_vlan_interface(device, yaml.load(job.definition)))
         assignments[job.device_role] = device
     self.assertIsNone(assignments['client'])
     self.assertIsNone(assignments['server'])
Пример #2
0
 def test_exclusivity(self):
     device = Device.objects.get(hostname="fakeqemu1")
     self.assertTrue(device.is_pipeline)
     self.assertFalse(device.is_exclusive)
     self.assertIsNotNone(DeviceDictionary.get(device.hostname))
     device_dict = DeviceDictionary(hostname=device.hostname)
     device_dict.save()
     device_dict = DeviceDictionary.get(device.hostname)
     self.assertTrue(device.is_pipeline)
     self.assertFalse(device.is_exclusive)
     update = device_dict.to_dict()
     update.update({'exclusive': 'True'})
     device_dict.parameters = update
     device_dict.save()
     self.assertTrue(device.is_pipeline)
     self.assertTrue(device.is_exclusive)
Пример #3
0
 def test_exclusivity(self):
     device = Device.objects.get(hostname="fakeqemu1")
     self.assertTrue(device.is_pipeline)
     self.assertFalse(device.is_exclusive)
     self.assertIsNotNone(DeviceDictionary.get(device.hostname))
     device_dict = DeviceDictionary(hostname=device.hostname)
     device_dict.save()
     device_dict = DeviceDictionary.get(device.hostname)
     self.assertTrue(device.is_pipeline)
     self.assertFalse(device.is_exclusive)
     update = device_dict.to_dict()
     update.update({'exclusive': 'True'})
     device_dict.parameters = update
     device_dict.save()
     self.assertTrue(device.is_pipeline)
     self.assertTrue(device.is_exclusive)
Пример #4
0
 def test_identify_context(self):
     hostname = "fakebbb"
     mustang_type = self.factory.make_device_type('beaglebone-black')
     # this sets a qemu device dictionary, so replace it
     self.factory.make_device(device_type=mustang_type, hostname=hostname)
     mustang = DeviceDictionary(hostname=hostname)
     mustang.parameters = {
         'extends': 'beaglebone-black.jinja2',
         'base_nfsroot_args': '10.16.56.2:/home/lava/debian/nfs/,tcp,hard,intr',
         'console_device': 'ttyO0',  # takes precedence over the job context as the same var name is used.
     }
     mustang.save()
     mustang_dict = mustang.to_dict()
     device = Device.objects.get(hostname="fakebbb")
     self.assertEqual('beaglebone-black', device.device_type.name)
     self.assertTrue(device.is_pipeline)
     context_overrides = map_context_overrides('base.jinja2', 'beaglebone-black.jinja2', system=False)
     job_ctx = {
         'base_uboot_commands': 'dummy commands',
         'usb_uuid': 'dummy usb uuid',
         'console_device': 'ttyAMA0',
         'usb_device_id': 1111111111111111
     }
     device_config = device.load_device_configuration(job_ctx, system=False)  # raw dict
     self.assertIsNotNone(device_config)
     devicetype_blocks = []
     devicedict_blocks = []
     allowed = []
     for key, _ in job_ctx.items():
         if key in context_overrides:
             if key is not 'extends' and key not in mustang_dict['parameters'].keys():
                 allowed.append(key)
             else:
                 devicedict_blocks.append(key)
         else:
             devicetype_blocks.append(key)
     # only values set in job_ctx are checked
     self.assertEqual(set(allowed), {'usb_device_id', 'usb_uuid'})
     self.assertEqual(set(devicedict_blocks), {'console_device'})
     self.assertEqual(set(devicetype_blocks), {'base_uboot_commands'})
     full_list = allowed_overrides(mustang_dict, system=False)
     for key in allowed:
         self.assertIn(key, full_list)