Beispiel #1
0
    def test_delete_job_with_children(self):
        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        parent_job = job_api.create_job(self.admin_context, job_body)
        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertIsNotNone(parent_job)
        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False, parent_id=parent_job['id'])
        job_body = dict(job=job_body)
        job = job_api.create_job(self.admin_context, job_body)
        job = job_api.get_job(self.admin_context, job['id'])
        self.assertIsNotNone(job)

        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False, parent_id=job['id'])
        job_body = dict(job=job_body)
        subjob = job_api.create_job(self.admin_context, job_body)
        subjob = job_api.get_job(self.admin_context, subjob['id'])
        self.assertIsNotNone(job)

        job_api.delete_job(self.admin_context, parent_job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, parent_job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, subjob['id'])
Beispiel #2
0
 def test_create_job_fail_non_admin(self):
     job_body = dict(tenant_id=self.tenant_id,
                     action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     with self.assertRaises(n_exc.NotAuthorized):
         job_api.create_job(self.context, job_body)
Beispiel #3
0
    def test_transaction_completion_percent(self):
        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        parent_job = job_api.create_job(self.admin_context, job_body)
        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertIsNotNone(parent_job)
        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False,
                        parent_id=parent_job['id'])
        job_body = dict(job=job_body)
        job = job_api.create_job(self.admin_context, job_body)
        job = job_api.get_job(self.admin_context, job['id'])
        self.assertIsNotNone(job)

        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False,
                        parent_id=job['id'])
        job_body = dict(job=job_body)
        subjob = job_api.create_job(self.admin_context, job_body)
        subjob = job_api.get_job(self.admin_context, subjob['id'])
        self.assertIsNotNone(job)

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertTrue('transaction_percent' in parent_job)
        self.assertEqual(0, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(0, parent_job['completed_subtransactions'])

        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        subjob = job_api.update_job(self.admin_context, subjob['id'],
                                    update_body)
        self.assertTrue(subjob['completed'])

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertEqual(50, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(1, parent_job['completed_subtransactions'])

        job = job_api.update_job(self.admin_context, job['id'], update_body)
        self.assertTrue(subjob['completed'])

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertEqual(100, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(2, parent_job['completed_subtransactions'])
        self.assertEqual(True, parent_job['completed'])
Beispiel #4
0
    def test_get_jobs(self):
        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job_body = dict(tenant_id=self.tenant_id2, action=self.action,
                        completed=True)
        job_body = dict(job=job_body)
        job2 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job2)

        jobs = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(type(jobs) in [list, tuple])
        job = jobs
        self.assertFalse(job['completed'])
        self.assertEqual(self.tenant_id, job['tenant_id'])
        self.assertEqual(self.action, job['action'])

        job = job_api.get_job(self.admin_context, job2['id'])
        self.assertTrue(job['completed'])
        self.assertEqual(self.tenant_id2, job['tenant_id'])
        self.assertEqual(self.action, job['action'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, 'derp')

        jobs = job_api.get_jobs(self.admin_context)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(2, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed=True)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(1, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed=False)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(1, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed='hello')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, tenant_id=self.tenant_id)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(1, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, tenant_id='derp')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))
Beispiel #5
0
    def test_transaction_completion_percent(self):
        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        parent_job = job_api.create_job(self.admin_context, job_body)
        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertIsNotNone(parent_job)
        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False, parent_id=parent_job['id'])
        job_body = dict(job=job_body)
        job = job_api.create_job(self.admin_context, job_body)
        job = job_api.get_job(self.admin_context, job['id'])
        self.assertIsNotNone(job)

        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False, parent_id=job['id'])
        job_body = dict(job=job_body)
        subjob = job_api.create_job(self.admin_context, job_body)
        subjob = job_api.get_job(self.admin_context, subjob['id'])
        self.assertIsNotNone(job)

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertTrue('transaction_percent' in parent_job)
        self.assertEqual(0, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(0, parent_job['completed_subtransactions'])

        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        subjob = job_api.update_job(self.admin_context, subjob['id'],
                                    update_body)
        self.assertTrue(subjob['completed'])

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertEqual(50, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(1, parent_job['completed_subtransactions'])

        job = job_api.update_job(self.admin_context, job['id'], update_body)
        self.assertTrue(subjob['completed'])

        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertEqual(100, parent_job['transaction_percent'])
        self.assertEqual(2, parent_job['subtransactions'])
        self.assertEqual(2, parent_job['completed_subtransactions'])
        self.assertEqual(True, parent_job['completed'])
Beispiel #6
0
 def test_create_job(self):
     job_body = dict(tenant_id=self.tenant_id, action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(job['completed'])
     self.assertEqual(self.tenant_id, job['tenant_id'])
     self.assertEqual(self.action, job['action'])
Beispiel #7
0
    def test_get_job_different_non_admin(self):
        job_body = dict(tenant_id=self.context.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job_body = dict(tenant_id=self.tenant_id2, action=self.action,
                        completed=True)
        job_body = dict(job=job_body)
        job2 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job2)

        jobs = job_api.get_jobs(self.context)
        self.assertTrue(type(jobs) in [list, tuple])

        self.assertEqual(1, len(jobs))
        self.assertEqual(self.context.tenant_id, jobs[0]['tenant_id'])
Beispiel #8
0
 def test_create_job_with_parent_job(self):
     job_body = dict(tenant_id=self.tenant_id, action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     parent_job = job_api.create_job(self.admin_context, job_body)
     job_body = dict(tenant_id=self.tenant_id, action=self.action,
                     completed=False, parent_id=parent_job['id'])
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(job['completed'])
     self.assertEqual(self.tenant_id, job['tenant_id'])
     self.assertEqual(self.action, job['action'])
     self.assertEqual(parent_job['id'], job['parent_id'])
     self.assertEqual(parent_job['id'], job['transaction_id'],
                      "transaction id should be outer most parent id")
     tx_job = job_api.get_job(self.admin_context, parent_job['id'])
     self.assertEqual(1, tx_job['subtransactions'])
     self.assertEqual(0, tx_job['completed_subtransactions'])
Beispiel #9
0
 def test_add_job_to_context(self):
     job_body = dict(tenant_id=self.tenant_id,
                     action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(hasattr(self.admin_context, 'async_job'))
     job_api.add_job_to_context(self.admin_context, job['id'])
     self.assertTrue(hasattr(self.admin_context, 'async_job'))
     self.assertEqual(self.admin_context.async_job['job']['id'], job['id'])
Beispiel #10
0
 def test_add_job_to_context(self):
     job_body = dict(tenant_id=self.tenant_id, action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(hasattr(self.admin_context, 'async_job'))
     job_api.add_job_to_context(self.admin_context, job['id'])
     self.assertTrue(hasattr(self.admin_context, 'async_job'))
     self.assertEqual(self.admin_context.async_job['job']['id'],
                      job['id'])
Beispiel #11
0
    def test_get_job_different_non_admin(self):
        job_body = dict(tenant_id=self.context.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job_body = dict(tenant_id=self.tenant_id2,
                        action=self.action,
                        completed=True)
        job_body = dict(job=job_body)
        job2 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job2)

        jobs = job_api.get_jobs(self.context)
        self.assertTrue(type(jobs) in [list, tuple])

        self.assertEqual(1, len(jobs))
        self.assertEqual(self.context.tenant_id, jobs[0]['tenant_id'])
Beispiel #12
0
 def test_create_job_with_parent_job(self):
     job_body = dict(tenant_id=self.tenant_id,
                     action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     parent_job = job_api.create_job(self.admin_context, job_body)
     job_body = dict(tenant_id=self.tenant_id,
                     action=self.action,
                     completed=False,
                     parent_id=parent_job['id'])
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(job['completed'])
     self.assertEqual(self.tenant_id, job['tenant_id'])
     self.assertEqual(self.action, job['action'])
     self.assertEqual(parent_job['id'], job['parent_id'])
     self.assertEqual(parent_job['id'], job['transaction_id'],
                      "transaction id should be outer most parent id")
     tx_job = job_api.get_job(self.admin_context, parent_job['id'])
     self.assertEqual(1, tx_job['subtransactions'])
     self.assertEqual(0, tx_job['completed_subtransactions'])
Beispiel #13
0
 def test_create_job(self):
     job_body = dict(tenant_id=self.tenant_id,
                     action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     job = job_api.create_job(self.admin_context, job_body)
     self.assertIsNotNone(job)
     self.assertFalse(job['completed'])
     self.assertEqual(self.tenant_id, job['tenant_id'])
     self.assertEqual(self.action, job['action'])
     self.assertEqual(None, job['parent_id'])
     self.assertEqual(job['id'], job['transaction_id'])
     self.assertEqual(0, job['subtransactions'])
     self.assertEqual(0, job['completed_subtransactions'])
Beispiel #14
0
    def test_delete_job_with_children(self):
        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        parent_job = job_api.create_job(self.admin_context, job_body)
        parent_job = job_api.get_job(self.admin_context, parent_job['id'])
        self.assertIsNotNone(parent_job)
        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False,
                        parent_id=parent_job['id'])
        job_body = dict(job=job_body)
        job = job_api.create_job(self.admin_context, job_body)
        job = job_api.get_job(self.admin_context, job['id'])
        self.assertIsNotNone(job)

        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False,
                        parent_id=job['id'])
        job_body = dict(job=job_body)
        subjob = job_api.create_job(self.admin_context, job_body)
        subjob = job_api.get_job(self.admin_context, subjob['id'])
        self.assertIsNotNone(job)

        job_api.delete_job(self.admin_context, parent_job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, parent_job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, job['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, subjob['id'])
Beispiel #15
0
 def update_sg(self, context, sg, rule_id, action):
     """Begins the async update process."""
     db_sg = db_api.security_group_find(context, id=sg, scope=db_api.ONE)
     if not db_sg:
         return None
     with context.session.begin():
         job_body = dict(action="%s sg rule %s" % (action, rule_id),
                         resource_id=rule_id,
                         tenant_id=db_sg['tenant_id'])
         job_body = dict(job=job_body)
         job = job_api.create_job(context.elevated(), job_body)
         rpc_client = QuarkSGAsyncProducerClient()
         try:
             rpc_client.populate_subtasks(context, sg, job['id'])
         except om_exc.MessagingTimeout:
             LOG.error("Failed to create subtasks. Rabbit running?")
             return None
     return {"job_id": job['id']}
Beispiel #16
0
    def test_delete_job_fail_non_admin(self):
        with self.assertRaises(n_exc.NotAuthorized):
            job_api.delete_job(self.context, 'derp')

        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        with self.assertRaises(n_exc.NotAuthorized):
            job_api.delete_job(self.context, job1['id'])

        job_api.delete_job(self.admin_context, job1['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.context, job1['id'])
Beispiel #17
0
    def test_delete_job_fail_non_admin(self):
        with self.assertRaises(n_exc.NotAuthorized):
            job_api.delete_job(self.context, 'derp')

        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        with self.assertRaises(n_exc.NotAuthorized):
            job_api.delete_job(self.context, job1['id'])

        job_api.delete_job(self.admin_context, job1['id'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.context, job1['id'])
Beispiel #18
0
 def test_create_deep_job_list(self):
     parent_job = None
     transaction = None
     for i in xrange(4):
         job_body = dict(tenant_id=self.tenant_id, action=self.action,
                         completed=False)
         if parent_job:
             job_body['parent_id'] = parent_job
         job_body = dict(job=job_body)
         job = job_api.create_job(self.admin_context, job_body)
         self.assertIsNotNone(job)
         if parent_job:
             self.assertEqual(parent_job, job['parent_id'])
         if transaction is None:
             self.assertIsNotNone(job['transaction_id'])
             transaction = job['id']
         else:
             self.assertEqual(transaction, job['transaction_id'])
         parent_job = job['id']
     tx_job = job_api.get_job(self.admin_context, transaction)
     self.assertEqual(3, tx_job['subtransactions'])
     self.assertEqual(0, job['completed_subtransactions'])
Beispiel #19
0
    def test_update_job_fail_non_admin(self):
        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        with self.assertRaises(n_exc.NotAuthorized):
            job_api.update_job(self.context, job1['id'], update_body)

        updated_job = job_api.update_job(self.admin_context, job1['id'],
                                         update_body)
        self.assertTrue(updated_job['completed'])

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertTrue(job['completed'])
Beispiel #20
0
    def test_update_jobs(self):
        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        with self.assertRaises(q_exc.JobNotFound):
            job_api.update_job(self.admin_context, 'derp', update_body)

        job_body = dict(tenant_id=self.tenant_id, action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        updated_job = job_api.update_job(self.admin_context, job1['id'],
                                         update_body)
        self.assertTrue(updated_job['completed'])

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertTrue(job['completed'])
Beispiel #21
0
    def test_update_jobs(self):
        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        with self.assertRaises(q_exc.JobNotFound):
            job_api.update_job(self.admin_context, 'derp', update_body)

        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        updated_job = job_api.update_job(self.admin_context, job1['id'],
                                         update_body)
        self.assertTrue(updated_job['completed'])

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertTrue(job['completed'])
Beispiel #22
0
    def test_update_job_fail_non_admin(self):
        update_body = dict(completed=True)
        update_body = dict(job=update_body)

        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False)
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(job['completed'])

        with self.assertRaises(n_exc.NotAuthorized):
            job_api.update_job(self.context, job1['id'], update_body)

        updated_job = job_api.update_job(self.admin_context, job1['id'],
                                         update_body)
        self.assertTrue(updated_job['completed'])

        job = job_api.get_job(self.admin_context, job1['id'])
        self.assertTrue(job['completed'])
Beispiel #23
0
 def populate_subtasks(self, context, sg, parent_job_id):
     """Produces a list of ports to be updated async."""
     db_sg = db_api.security_group_find(context, id=sg, scope=db_api.ONE)
     if not db_sg:
         return None
     ports = db_api.sg_gather_associated_ports(context, db_sg)
     if len(ports) == 0:
         return {"ports": 0}
     for port in ports:
         job_body = dict(action="update port %s" % port['id'],
                         tenant_id=db_sg['tenant_id'],
                         resource_id=port['id'],
                         parent_id=parent_job_id)
         job_body = dict(job=job_body)
         job = job_api.create_job(context.elevated(), job_body)
         rpc_consumer = QuarkSGAsyncConsumerClient()
         try:
             rpc_consumer.update_port(context, port['id'], job['id'])
         except om_exc.MessagingTimeout:
             # TODO(roaet): Not too sure what can be done here other than
             # updating the job as a failure?
             LOG.error("Failed to update port. Rabbit running?")
     return None
Beispiel #24
0
 def test_create_deep_job_list(self):
     parent_job = None
     transaction = None
     for i in xrange(4):
         job_body = dict(tenant_id=self.tenant_id,
                         action=self.action,
                         completed=False)
         if parent_job:
             job_body['parent_id'] = parent_job
         job_body = dict(job=job_body)
         job = job_api.create_job(self.admin_context, job_body)
         self.assertIsNotNone(job)
         if parent_job:
             self.assertEqual(parent_job, job['parent_id'])
         if transaction is None:
             self.assertIsNotNone(job['transaction_id'])
             transaction = job['id']
         else:
             self.assertEqual(transaction, job['transaction_id'])
         parent_job = job['id']
     tx_job = job_api.get_job(self.admin_context, transaction)
     self.assertEqual(3, tx_job['subtransactions'])
     self.assertEqual(0, job['completed_subtransactions'])
Beispiel #25
0
    def test_get_jobs(self):
        job_body = dict(tenant_id=self.tenant_id,
                        action=self.action,
                        completed=False,
                        resource_id='foo')
        job_body = dict(job=job_body)
        job1 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job1)

        job_body = dict(tenant_id=self.tenant_id2,
                        action=self.action,
                        completed=False,
                        resource_id='bar')
        job_body = dict(job=job_body)
        job2 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job2)

        job_body = dict(tenant_id=self.tenant_id2,
                        action=self.action,
                        completed=False,
                        resource_id='bar',
                        parent_id=job2['id'])
        job_body = dict(job=job_body)
        job3 = job_api.create_job(self.admin_context, job_body)
        self.assertIsNotNone(job3)

        jobs = job_api.get_job(self.admin_context, job1['id'])
        self.assertFalse(type(jobs) in [list, tuple])
        job = jobs
        self.assertFalse(job['completed'])
        self.assertEqual(self.tenant_id, job['tenant_id'])
        self.assertEqual(self.action, job['action'])

        job = job_api.get_job(self.admin_context, job2['id'])
        self.assertFalse(job['completed'])
        self.assertEqual(self.tenant_id2, job['tenant_id'])
        self.assertEqual(self.action, job['action'])

        with self.assertRaises(q_exc.JobNotFound):
            job_api.get_job(self.admin_context, 'derp')

        jobs = job_api.get_jobs(self.admin_context)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(3, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, transaction_id=job2['id'])
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(2, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed=True)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed=False)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(3, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, completed='hello')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, tenant_id=self.tenant_id)
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(1, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, tenant_id='derp')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, resource_id='foo')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(1, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, resource_id='bar')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(2, len(jobs))

        jobs = job_api.get_jobs(self.admin_context, resource_id='asdf')
        self.assertTrue(type(jobs) in [list, tuple])
        self.assertEqual(0, len(jobs))
Beispiel #26
0
 def test_create_job_fail_non_admin(self):
     job_body = dict(tenant_id=self.tenant_id, action=self.action,
                     completed=False)
     job_body = dict(job=job_body)
     with self.assertRaises(n_exc.NotAuthorized):
         job_api.create_job(self.context, job_body)
Beispiel #27
0
 def create_job(self, context, job):
     self._fix_missing_tenant_id(context, job, 'job')
     return jobs.create_job(context, job)
Beispiel #28
0
 def create_job(self, context, job):
     self._fix_missing_tenant_id(context, job, 'job')
     return jobs.create_job(context, job)