Esempio n. 1
0
    def test_job_requeue(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)
        jobs = OLJob.submit(connection, requested_slots=1, command="sleep 1000")
        job = jobs.pop()
        while job.is_pending:
            time.sleep(1)
            job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)

        if not job.is_running:
            self.skipTest("Job no longer running")

        start_time = job.start_time
        job.requeue(hold=False)
        time.sleep(45)
        job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)
        if job.is_pending:
            # Passed
            job.kill()
            return None

        self.assertNotEqual(job.start_time, start_time)
        job.kill()
Esempio n. 2
0
    def compare_job_attributes(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)

        for local_job in Job.get_job_list():
            remote_ob = OLJob(connection, job_id=local_job.job_id, array_index=local_job.array_index)
            local_ob = Job(job_id=local_job.job_id, array_index=local_job.array_index)
            for attr in local_ob.json_attributes():

                local_attr_val = getattr(local_ob, attr)
                remote_attr_val = getattr(remote_ob, attr)

                if isinstance(local_attr_val, list):
                    self.assertEqual(len(local_attr_val), len(remote_attr_val))
                elif isinstance(local_attr_val, dict):
                    keys = local_attr_val.keys()
                    rkeys = getattr(remote_ob, attr).keys()
                    for key in keys:
                        self.assertIn(key, rkeys)
                    for key in rkeys:
                        self.assertIn(key, keys)
                else:
                    self.assertEqual(str(local_attr_val), str(remote_attr_val))
Esempio n. 3
0
 def test_exception(self):
     Cargs.username = os.environ.get("OLWEB_USERNAME")
     Cargs.password = os.environ.get("OLWEB_PASSWORD")
     Cargs.url = os.environ.get("OLWEB_URL")
     # noinspection PyTypeChecker
     connection = OpenLavaConnection(Cargs)
     base_url = os.environ.get("OLWEB_URL", None)
     base_url.rstrip("/")
     for ex in [
         RemoteServerError,
         NoSuchHostError,
         NoSuchJobError,
         NoSuchQueueError,
         NoSuchUserError,
         ResourceDoesntExistError,
         ClusterInterfaceError,
         PermissionDeniedError,
         JobSubmitError
     ]:
         print "Raising: %s" % ex.__name__
         url = "%s/exception_test?json=1&exception_name=%s" % (base_url, ex.__name__)
         request = urllib2.Request(url, None, {'Content-Type': 'application/json'})
         self.assertRaises(
             ex,
             connection.open, request
         )
Esempio n. 4
0
    def compare_host_attributes(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)

        for local_host in Host.get_host_list():
            remote_ob = OLHost(connection, host_name=local_host.name)
            local_ob = Host(local_host.name)
            for attr in local_ob.json_attributes():

                local_attr_val = getattr(local_ob, attr)
                remote_attr_val = getattr(remote_ob, attr)

                if isinstance(local_attr_val, list):
                    self.assertEqual(len(local_attr_val), len(remote_attr_val))
                elif isinstance(local_attr_val, dict):
                    keys = local_attr_val.keys()
                    rkeys = getattr(remote_ob, attr).keys()
                    for key in keys:
                        self.assertIn(key, rkeys)
                    for key in rkeys:
                        self.assertIn(key, keys)
                else:
                    self.assertEqual(str(local_attr_val), str(remote_attr_val))
Esempio n. 5
0
    def compare_queue_attributes(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        connection = OpenLavaConnection(Cargs)

        for local_queue in Queue.get_queue_list():
            remote_ob = OLQueue(connection, queue_name=local_queue.name)
            local_ob = Queue(local_queue.name)
            for attr in local_ob.json_attributes():

                local_attr_val = getattr(local_ob, attr)
                remote_attr_val = getattr(remote_ob, attr)

                if isinstance(local_attr_val, list):
                    self.assertEqual(len(local_attr_val), len(remote_attr_val))
                elif isinstance(local_attr_val, dict):
                    keys = local_attr_val.keys()
                    rkeys = getattr(remote_ob, attr).keys()
                    for key in keys:
                        self.assertIn(key, rkeys)
                    for key in rkeys:
                        self.assertIn(key, keys)
                else:
                    self.assertEqual(str(local_attr_val), str(remote_attr_val))
Esempio n. 6
0
 def test_job_submit(self):
     Cargs.username = os.environ.get("OLWEB_USERNAME")
     Cargs.password = os.environ.get("OLWEB_PASSWORD")
     Cargs.url = os.environ.get("OLWEB_URL")
     # noinspection PyTypeChecker
     connection = OpenLavaConnection(Cargs)
     jobs = OLJob.submit(connection, requested_slots=1, command="hostname")
     self.assertIs(len(jobs), 1, msg="Submitting one job returns 1 item")
     self.job_state_test(jobs[0])
Esempio n. 7
0
 def test_job_list(self):
     Cargs.username = os.environ.get("OLWEB_USERNAME")
     Cargs.password = os.environ.get("OLWEB_PASSWORD")
     Cargs.url = os.environ.get("OLWEB_URL")
     # noinspection PyTypeChecker
     connection = OpenLavaConnection(Cargs)
     job_list = OLJob.get_job_list(connection)
     for job in job_list:
         self.assertIsInstance(job, OLJob)
Esempio n. 8
0
    def compare_job_attributes(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)

        for local_job in Job.get_job_list():
            remote_job = OLJob(connection, job_id=local_job.job_id, array_index=local_job.array_index)
            local_job = Job(job_id=local_job.job_id, array_index=local_job.array_index)
            for attr in local_job.json_attributes():
                self.assertEqual(str(getattr(local_job, attr)), str(getattr(remote_job, attr)))
Esempio n. 9
0
 def test_job_suspend(self):
     Cargs.username = os.environ.get("OLWEB_USERNAME")
     Cargs.password = os.environ.get("OLWEB_PASSWORD")
     Cargs.url = os.environ.get("OLWEB_URL")
     # noinspection PyTypeChecker
     connection = OpenLavaConnection(Cargs)
     jobs = OLJob.submit(connection, requested_slots=1, command="sleep 1000")
     job = jobs.pop()
     job.suspend()
     time.sleep(15)
     job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)
     self.assertTrue(job.is_suspended)
     job.kill()
Esempio n. 10
0
    def test_job_kill(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)
        jobs = OLJob.submit(connection, requested_slots=1, command="sleep 1000")
        job = jobs.pop()
        # kill the job
        job.kill()

        # Wait for the job to actually die
        time.sleep(15)

        job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)
        self.assertTrue(job.is_completed or job.is_failed or job.was_killed)
Esempio n. 11
0
    def test_job_requeue_hold(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)
        jobs = OLJob.submit(connection, requested_slots=1, command="sleep 1000")
        job = jobs.pop()
        while job.is_pending:
            time.sleep(1)
            job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)

        if not job.is_running:
            self.skipTest("Job no longer running")

        job.requeue(hold=True)
        time.sleep(45)  # Takes a while, first state is exit...
        job = OLJob(connection, job_id=job.job_id, array_index=job.array_index)
        self.assertTrue(job.is_suspended)
        job.kill()
Esempio n. 12
0
    def compare_job_list(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)

        remote_job_list = OLJob.get_job_list(connection)
        local_job_list = Job.get_job_list()
        local_jobs = set()
        remote_jobs = set()
        for job in local_job_list:
            local_jobs.add(str(job))

        for job in remote_job_list:
            remote_jobs.add(str(job))

        for job in local_jobs:
            self.assertIn(job, remote_jobs)

        for job in remote_jobs:
            self.assertIn(job, local_jobs)
Esempio n. 13
0
    def compare_host_list(self):
        Cargs.username = os.environ.get("OLWEB_USERNAME")
        Cargs.password = os.environ.get("OLWEB_PASSWORD")
        Cargs.url = os.environ.get("OLWEB_URL")
        # noinspection PyTypeChecker
        connection = OpenLavaConnection(Cargs)

        remote_list = OLHost.get_host_list(connection)
        local_list = Host.get_host_list()

        local_names = set()
        remote_names = set()
        for ob in local_list:
            local_names.add(str(ob))

        for ob in remote_list:
            remote_names.add(str(ob))

        for ob in local_list:
            self.assertIn(str(ob), remote_names)

        for ob in remote_list:
            self.assertIn(str(ob), local_names)