Ensures that task.message is of type unicode
It is likely that a task script might store the message in a format which is not 'Text', like a json message. To ensure that we save the task message in the appropriate format, we should typecast it. partially implements bp async-glance-workers Change-Id: I4eaebb75357d448d4ea458cd7fe5e4ac96b33ace
This commit is contained in:
parent
503be24afa
commit
fcfb5d04cd
|
@ -19,6 +19,7 @@ import datetime
|
|||
import uuid
|
||||
|
||||
from oslo.config import cfg
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
import glance.openstack.common.log as logging
|
||||
|
@ -338,6 +339,17 @@ class Task(object):
|
|||
def status(self):
|
||||
return self._status
|
||||
|
||||
@property
|
||||
def message(self):
|
||||
return self._message
|
||||
|
||||
@message.setter
|
||||
def message(self, message):
|
||||
if message:
|
||||
self._message = six.text_type(message)
|
||||
else:
|
||||
self._message = six.text_type('')
|
||||
|
||||
def _validate_task_status_transition(self, cur_status, new_status):
|
||||
valid_transitions = {
|
||||
'pending': ['processing', 'failure'],
|
||||
|
|
|
@ -99,6 +99,7 @@ class TestTasks(functional.FunctionalTest):
|
|||
checked_keys = set([u'created_at',
|
||||
u'id',
|
||||
u'input',
|
||||
u'message',
|
||||
u'owner',
|
||||
u'schema',
|
||||
u'self',
|
||||
|
|
|
@ -317,7 +317,7 @@ class TestTaskFactory(test_utils.BaseTestCase):
|
|||
self.assertIsNone(task.expires_at)
|
||||
self.assertEqual(owner, task.owner)
|
||||
self.assertEqual(task_input, task.task_input)
|
||||
self.assertIsNone(task.message)
|
||||
self.assertEqual(task.message, u'')
|
||||
self.assertIsNone(task.result)
|
||||
|
||||
def test_new_task_invalid_type(self):
|
||||
|
@ -424,7 +424,7 @@ class TestTask(test_utils.BaseTestCase):
|
|||
self.task.succeed('{"location": "file://home"}')
|
||||
self.assertEqual(self.task.status, 'success')
|
||||
self.assertEqual(self.task.result, '{"location": "file://home"}')
|
||||
self.assertEqual(self.task.message, None)
|
||||
self.assertEqual(self.task.message, u'')
|
||||
expected = (timeutils.utcnow() +
|
||||
datetime.timedelta(hours=CONF.task.task_time_to_live))
|
||||
self.assertEqual(
|
||||
|
|
Loading…
Reference in New Issue