From b0bc8fddfbf9ebcf5f7e904b5a590e2966317fe9 Mon Sep 17 00:00:00 2001 From: Romain Ziba Date: Tue, 2 Jun 2015 16:44:55 +0200 Subject: [PATCH] Task model: Persistent attribute is a boolean In the model of task, we used to have a text unicode for the attribute 'persistent' of a task. This was a mistake. Change use of unicode 'True'/'False' for real boolean Change-Id: Ia8c06de318053ef704d286edbe68eaf388a3a450 --- cerberus/api/v1/datamodels/task.py | 4 ++-- cerberus/manager.py | 14 +++++++------- cerberus/plugins/base.py | 2 +- cerberus/tests/functional/api/v1/test_api.py | 8 ++++---- cerberus/tests/unit/db/utils.py | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cerberus/api/v1/datamodels/task.py b/cerberus/api/v1/datamodels/task.py index 0f1b671..24b1772 100644 --- a/cerberus/api/v1/datamodels/task.py +++ b/cerberus/api/v1/datamodels/task.py @@ -43,7 +43,7 @@ class TaskResource(base.Base): type = wtypes.wsattr(wtypes.text, default="unique") """Type of the task.""" - persistent = wtypes.wsattr(wtypes.text, default="false") + persistent = wtypes.wsattr(bool, default=False) """If task must persist.""" def as_dict(self): @@ -62,7 +62,7 @@ class TaskResource(base.Base): sample = cls(initial_data={ 'name': 'some_task', 'period': decimal.Decimal(3), - 'persistent': 'True', + 'persistent': True, 'state': 'running', 'plugin_id': '063d4206-5afc-409c-a4d1-c2a469299d37', 'type': 'recurrent', diff --git a/cerberus/manager.py b/cerberus/manager.py index 9fa0665..c2b5370 100644 --- a/cerberus/manager.py +++ b/cerberus/manager.py @@ -141,7 +141,7 @@ class CerberusManager(service.CerberusService): kwargs['task_period'] = task.period kwargs['task_id'] = task.uuid kwargs['running'] = task.running - kwargs['persistent'] = 'True' + kwargs['persistent'] = True self._add_task(task.plugin_id, task.method, **kwargs) def start(self): @@ -376,7 +376,7 @@ class CerberusManager(service.CerberusService): task_id=str(task_id), **kwargs) except Exception: raise - if kwargs.get('persistent', '') == 'True': + if kwargs.get('persistent', False) is True: try: self._store_task(task, method_) except Exception as e: @@ -398,7 +398,7 @@ class CerberusManager(service.CerberusService): if recurrent_task is None: raise errors.TaskNotFound(task_id) recurrent_task.stop() - if recurrent_task.kw.get('persistent', '') == 'True': + if recurrent_task.kw.get('persistent', False) is True: try: db_api.update_state_task(task_id, False) except Exception as e: @@ -413,7 +413,7 @@ class CerberusManager(service.CerberusService): if unique_task is None: raise errors.TaskNotFound(task_id) unique_task.stop() - if unique_task.kw.get('persistent', '') == 'True': + if unique_task.kw.get('persistent', False) is True: try: db_api.delete_task(task_id) except Exception as e: @@ -455,7 +455,7 @@ class CerberusManager(service.CerberusService): self.tg.timers.remove(recurrent_task) except ValueError: raise - if recurrent_task.kw.get('persistent', '') == 'True': + if recurrent_task.kw.get('persistent', False) is True: try: db_api.delete_task(task_id) except Exception as e: @@ -493,7 +493,7 @@ class CerberusManager(service.CerberusService): self.tg.timers.remove(recurrent_task) except ValueError: raise - if recurrent_task.kw.get('persistent', '') == 'True': + if recurrent_task.kw.get('persistent', False) is True: try: db_api.delete_task(task_id) except Exception as e: @@ -571,7 +571,7 @@ class CerberusManager(service.CerberusService): else: try: recurrent_task.start(int(period)) - if recurrent_task.kw.get('persistent', '') == 'True': + if recurrent_task.kw.get('persistent', False) is True: db_api.update_state_task(task_id, True) except Exception as e: LOG.exception(e) diff --git a/cerberus/plugins/base.py b/cerberus/plugins/base.py index af47b85..aa28ced 100644 --- a/cerberus/plugins/base.py +++ b/cerberus/plugins/base.py @@ -140,7 +140,7 @@ class FixedIntervalLoopingCallEncoder(json.JSONEncoder): 'period': obj.kw.get('task_period', None), 'type': obj.kw.get('task_type', None), 'plugin_id': obj.kw.get('plugin_id', None), - 'persistent': obj.kw.get('persistent', 'False'), + 'persistent': obj.kw.get('persistent', False), 'state': state} diff --git a/cerberus/tests/functional/api/v1/test_api.py b/cerberus/tests/functional/api/v1/test_api.py index f335310..8001cdb 100644 --- a/cerberus/tests/functional/api/v1/test_api.py +++ b/cerberus/tests/functional/api/v1/test_api.py @@ -180,7 +180,7 @@ class TaskTestsV1(base.TestCase): 'plugin_id': plugin_id, 'type': 'recurrent', 'period': 3, - 'persistent': 'True' + 'persistent': True } headers = {'content-type': 'application/json'} resp, body = self.security_client.post( @@ -196,7 +196,7 @@ class TaskTestsV1(base.TestCase): headers=headers) self.assertEqual(200, resp.status) self.assertEqual(task_id, json.loads(body)['id']) - self.assertEqual('True', json.loads(body)['persistent']) + self.assertEqual(True, json.loads(body)['persistent']) self.assertEqual('recurrent', json.loads(body)['type']) self.assertEqual('running', json.loads(body)['state']) self.assertEqual(3, json.loads(body)['period']) @@ -212,7 +212,7 @@ class TaskTestsV1(base.TestCase): headers=headers) self.assertEqual(200, resp.status) self.assertEqual(task_id, json.loads(body)['id']) - self.assertEqual('True', json.loads(body)['persistent']) + self.assertEqual(True, json.loads(body)['persistent']) self.assertEqual('recurrent', json.loads(body)['type']) self.assertEqual('stopped', json.loads(body)['state']) self.assertEqual(3, json.loads(body)['period']) @@ -228,7 +228,7 @@ class TaskTestsV1(base.TestCase): headers=headers) self.assertEqual(200, resp.status) self.assertEqual(task_id, json.loads(body)['id']) - self.assertEqual('True', json.loads(body)['persistent']) + self.assertEqual(True, json.loads(body)['persistent']) self.assertEqual('recurrent', json.loads(body)['type']) self.assertEqual('running', json.loads(body)['state']) self.assertEqual(3, json.loads(body)['period']) diff --git a/cerberus/tests/unit/db/utils.py b/cerberus/tests/unit/db/utils.py index 6059818..bad2fba 100644 --- a/cerberus/tests/unit/db/utils.py +++ b/cerberus/tests/unit/db/utils.py @@ -122,7 +122,7 @@ def get_test_task(**kwargs): 'type': kwargs.get('task_type', 'unique'), 'name': kwargs.get('task_name', 'No Name'), 'period': kwargs.get('task_period', ''), - 'persistent': 'false', + 'persistent': False, }