Exemple #1
0
 def test_job_create_singlenode(self):
     """
     Test the creation of a LavaTestJob within the
     dispatcher to identify issues before the job has
     started to run.
     """
     factory = DispatcherFactory()
     target = factory.create_qemu_target(self.name, {})
     self.assertEqual(target.config.hostname, self.name)
     json_str = factory.singlenode_jobdata()
     self.assertNotEqual(json_str, None)
     jobdata = json.loads(json_str)
     self.assertEqual(jobdata['health_check'], False)
     validate_job_data(jobdata)
     # single node
     self.assertNotIn('target_group', jobdata)
     self.assertNotIn('is_vmhost', jobdata)
     job = LavaTestJob(json_str, sys.stderr, get_config(), None)
     self.assertEqual(job.target, target.config.hostname)
     self.assertIsNotNone(get_all_cmds())
     # FIXME: would be useful to not have the metadata population only accessible via LavaTestJob.run()
     job.run()
     self.assertEqual(job.context.test_data.metadata['target'], self.name)
     self.assertEqual(job.context.test_data.metadata['target.hostname'], self.name)
     self.assertNotIn('is_vmhost', job.context.test_data.metadata)
     self.assertNotIn('host_ip', job.context.test_data.metadata)
     self.assertNotIn('target_group', job.context.test_data.metadata)
     self.assertNotIn('vm_group', job.context.test_data.metadata)
Exemple #2
0
def run_legacy_job(job_data, oob_file, config, output_dir, validate):

    if os.getuid() != 0:
        logging.error("lava dispatch has to be run as root")
        exit(1)

    json_job_data = json.dumps(job_data)
    job = LavaTestJob(json_job_data, oob_file, config, output_dir)

    # FIXME Return status
    if validate:
        try:
            validate_job_data(job.job_data)
        except ValidationError as e:
            print(e)
    else:
        job.run()
Exemple #3
0
def run_legacy_job(job_data, oob_file, config, output_dir, validate):

    if os.getuid() != 0:
        logging.error("lava dispatch has to be run as root")
        exit(1)

    json_job_data = json.dumps(job_data)
    job = LavaTestJob(json_job_data, oob_file, config, output_dir)

    # FIXME Return status
    if validate:
        try:
            validate_job_data(job.job_data)
        except ValidationError as e:
            print e
    else:
        job.run()
Exemple #4
0
    def test_job_create_vmgroup(self):
        factory = DispatcherFactory()
        vmhost = factory.create_qemu_target(self.host, {})
        self.assertEqual(vmhost.config.hostname, self.host)
        json_str = factory.multinode_jobdata(2)
        self.assertNotEqual(json_str, None)
        jobdata = json.loads(json_str)
        self.assertEqual(jobdata['health_check'], False)
        validate_job_data(jobdata)
        self.assertIn('target_group', jobdata)
        self.assertNotIn('is_vmhost', jobdata)

        json_str = factory.vmhost_jobdata(jobdata['target_group'])
        self.assertNotEqual(json_str, None)
        jobdata = json.loads(json_str)
        self.assertEqual(jobdata['health_check'], False)
        validate_job_data(jobdata)
        self.assertIn('target_group', jobdata)
        self.assertIn('is_vmhost', jobdata)
        self.assertTrue(jobdata['is_vmhost'])

        vmguest = factory.create_vm_target(self.vm_name, {})
        self.assertEqual(vmguest.config.hostname, self.vm_name)
        json_str = factory.vmguest_jobdata(jobdata['target_group'])
        self.assertNotEqual(json_str, None)
        jobdata = json.loads(json_str)
        self.assertEqual(jobdata['health_check'], False)
        validate_job_data(jobdata)
        self.assertIn('target_group', jobdata)
        self.assertIn('is_vmhost', jobdata)
        self.assertFalse(jobdata['is_vmhost'])
Exemple #5
0
 def test_job_create_multinode(self):
     """
     Test the creation of a MultiNode LavaTestJob within
     the dispatcher to identify issues before the job has
     started to run and without needing to talk to the
     lava-coordinator.
     This job is only one part of a MultiNode job - it
     cannot be expected to run as-is.
     """
     factory = DispatcherFactory()
     for name in self.device_names:
         target = factory.create_qemu_target(name, {})
         json_str = factory.multinode_jobdata(len(self.device_names))
         self.assertEqual(target.config.hostname, name)
         self.assertNotEqual(json_str, None)
         jobdata = json.loads(json_str)
         self.assertEqual(jobdata['health_check'], False)
         validate_job_data(jobdata)
         # multi node
         self.assertIn('target_group', jobdata)
         self.assertNotIn('is_vmhost', jobdata)
         job = LavaTestJob(json_str, sys.stderr, get_config(), None)
         self.assertEqual(job.target, target.config.hostname)