def set_device(apps, schema_editor): TestJob = apps.get_model("benchmarks", "TestJob") for testjob in TestJob.objects.all(): if testjob.definition: data = json.loads(testjob.definition) device = extract_device(data) if device: testjob.metadata["device"] = device testjob.save()
def test_extract_device_from_multinode_job(self): device = extract_device({ "device_group": [{ "role": "host", "device_type": "foo" }, { "role": "target", "device_type": "bar" }] }) self.assertEqual(device, "bar")
def get_test_job_details(self, job_id): """ returns test job metadata, for example device type the tests were run on """ details = dict(testertype="lava") status = self.call_xmlrpc('scheduler.job_status', job_id) if 'bundle_sha1' in status: details.update({"bundle": status['bundle_sha1']}) content = self.call_xmlrpc('scheduler.job_details', job_id) definition = json.loads(content['definition']) if content['multinode_definition']: definition = json.loads(content['multinode_definition']) details.update({"definition": str(json.dumps(definition))}) details['metadata'] = extract_metadata(definition) details['metadata']['device'] = extract_device(definition) details['name'] = extract_name(definition) for action in definition['actions']: if action['command'].startswith("submit_results"): if 'stream' in action['parameters'].keys(): details.update({"bundlestream": action['parameters']['stream']}) return details
def get_test_job_details(self, job_id): """ returns test job metadata, for example device type the tests were run on """ details = dict(testertype="lava") status = self.call_xmlrpc('scheduler.job_status', job_id) if 'bundle_sha1' in status: details.update({"bundle": status['bundle_sha1']}) content = self.call_xmlrpc('scheduler.job_details', job_id) definition = json.loads(content['definition']) if content['multinode_definition']: definition = json.loads(content['multinode_definition']) details.update({"definition": str(json.dumps(definition))}) details['metadata'] = extract_metadata(definition) details['metadata']['device'] = extract_device(definition) details['name'] = extract_name(definition) for action in definition['actions']: if action['command'].startswith("submit_results"): if 'stream' in action['parameters'].keys(): details.update( {"bundlestream": action['parameters']['stream']}) return details
def test_extract_device_from_multinode_job(self): device = extract_device({ "device_group": [ { "role": "host", "device_type": "foo" }, { "role": "target", "device_type": "bar"} ]}) self.assertEqual(device, "bar")
def test_extract_device(self): device = extract_device({"requested_device_type_id": "mydevice"}) self.assertEqual(device, "mydevice")