Fix provision_updated_at deserialization
Fix deserializing the provision_updated_at field of nodes from string to a datetime object. Closes-Bug: #1287307 Change-Id: Ie87ee0631e75e7f98ba45c3a2d53921d1d3b6498
This commit is contained in:
parent
76e6305386
commit
c627ba3c46
ironic
@ -44,7 +44,7 @@ class Node(base.IronicObject):
|
||||
'target_power_state': utils.str_or_none,
|
||||
|
||||
'provision_state': utils.str_or_none,
|
||||
'provision_updated_at': utils.datetime_or_none,
|
||||
'provision_updated_at': utils.datetime_or_str_or_none,
|
||||
'target_provision_state': utils.str_or_none,
|
||||
|
||||
'maintenance': bool,
|
||||
|
@ -13,11 +13,14 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
|
||||
import mock
|
||||
|
||||
from ironic.db import api as db_api
|
||||
from ironic.db.sqlalchemy import models
|
||||
from ironic import objects
|
||||
from ironic.openstack.common import timeutils
|
||||
from ironic.tests.db import base
|
||||
from ironic.tests.db import utils
|
||||
|
||||
@ -81,6 +84,22 @@ class TestNodeObject(base.DbTestCase):
|
||||
self.assertIsInstance(_get_db_node(), models.Node)
|
||||
self.assertIsInstance(_convert_db_node(), objects.Node)
|
||||
|
||||
def test_objectify_deserialize_provision_updated_at(self):
|
||||
dt = timeutils.isotime(datetime.datetime(2000, 1, 1, 0, 0))
|
||||
self.fake_node['provision_updated_at'] = dt
|
||||
|
||||
def _get_db_node():
|
||||
n = models.Node()
|
||||
n.update(self.fake_node)
|
||||
return n
|
||||
|
||||
@objects.objectify(objects.Node)
|
||||
def _convert_db_node():
|
||||
return _get_db_node()
|
||||
|
||||
self.assertIsInstance(_get_db_node(), models.Node)
|
||||
self.assertIsInstance(_convert_db_node(), objects.Node)
|
||||
|
||||
def test_objectify_many(self):
|
||||
def _get_db_nodes():
|
||||
nodes = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user