Merge "Remove unused object function"
This commit is contained in:
commit
cd32fa5421
@ -17,8 +17,6 @@
|
|||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
from oslo_versionedobjects import base as object_base
|
from oslo_versionedobjects import base as object_base
|
||||||
|
|
||||||
from ironic.common import exception
|
|
||||||
from ironic.common.i18n import _
|
|
||||||
from ironic.objects import fields as object_fields
|
from ironic.objects import fields as object_fields
|
||||||
|
|
||||||
|
|
||||||
@ -29,30 +27,6 @@ class IronicObjectRegistry(object_base.VersionedObjectRegistry):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
# Object versioning rules
|
|
||||||
#
|
|
||||||
# Each service has its set of objects, each with a version attached. When
|
|
||||||
# a client attempts to call an object method, the server checks to see if
|
|
||||||
# the version of that object matches (in a compatible way) its object
|
|
||||||
# implementation. If so, cool, and if not, fail.
|
|
||||||
def check_object_version(server, client):
|
|
||||||
try:
|
|
||||||
client_major, _client_minor = client.split('.')
|
|
||||||
server_major, _server_minor = server.split('.')
|
|
||||||
client_minor = int(_client_minor)
|
|
||||||
server_minor = int(_server_minor)
|
|
||||||
except ValueError:
|
|
||||||
raise exception.IncompatibleObjectVersion(
|
|
||||||
_('Invalid version string'))
|
|
||||||
|
|
||||||
if client_major != server_major:
|
|
||||||
raise exception.IncompatibleObjectVersion(
|
|
||||||
dict(client=client_major, server=server_major))
|
|
||||||
if client_minor > server_minor:
|
|
||||||
raise exception.IncompatibleObjectVersion(
|
|
||||||
dict(client=client_minor, server=server_minor))
|
|
||||||
|
|
||||||
|
|
||||||
class IronicObject(object_base.VersionedObject):
|
class IronicObject(object_base.VersionedObject):
|
||||||
"""Base class and object factory.
|
"""Base class and object factory.
|
||||||
|
|
||||||
@ -94,17 +68,3 @@ class IronicObject(object_base.VersionedObject):
|
|||||||
class IronicObjectSerializer(object_base.VersionedObjectSerializer):
|
class IronicObjectSerializer(object_base.VersionedObjectSerializer):
|
||||||
# Base class to use for object hydration
|
# Base class to use for object hydration
|
||||||
OBJ_BASE_CLASS = IronicObject
|
OBJ_BASE_CLASS = IronicObject
|
||||||
|
|
||||||
|
|
||||||
def obj_to_primitive(obj):
|
|
||||||
"""Recursively turn an object into a python primitive.
|
|
||||||
|
|
||||||
An IronicObject becomes a dict
|
|
||||||
"""
|
|
||||||
if isinstance(obj, IronicObject):
|
|
||||||
result = {}
|
|
||||||
for key, value in obj.items():
|
|
||||||
result[key] = obj_to_primitive(value)
|
|
||||||
return result
|
|
||||||
else:
|
|
||||||
return obj
|
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
# Copyright 2013 IBM Corp.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""Utility methods for objects"""
|
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from oslo_utils import timeutils
|
|
||||||
|
|
||||||
|
|
||||||
def dt_serializer(name):
|
|
||||||
"""Return a datetime serializer for a named attribute."""
|
|
||||||
def serializer(self, name=name):
|
|
||||||
if getattr(self, name) is not None:
|
|
||||||
return datetime.isoformat(getattr(self, name))
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
return serializer
|
|
||||||
|
|
||||||
|
|
||||||
def dt_deserializer(instance, val):
|
|
||||||
"""A deserializer method for datetime attributes."""
|
|
||||||
if val is None:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return timeutils.parse_isotime(val)
|
|
@ -18,14 +18,12 @@ import gettext
|
|||||||
import iso8601
|
import iso8601
|
||||||
|
|
||||||
from oslo_context import context
|
from oslo_context import context
|
||||||
from oslo_utils import timeutils
|
|
||||||
from oslo_versionedobjects import base as object_base
|
from oslo_versionedobjects import base as object_base
|
||||||
from oslo_versionedobjects import exception as object_exception
|
from oslo_versionedobjects import exception as object_exception
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from ironic.objects import base
|
from ironic.objects import base
|
||||||
from ironic.objects import fields
|
from ironic.objects import fields
|
||||||
from ironic.objects import utils
|
|
||||||
from ironic.tests import base as test_base
|
from ironic.tests import base as test_base
|
||||||
|
|
||||||
gettext.install('ironic')
|
gettext.install('ironic')
|
||||||
@ -94,34 +92,6 @@ class TestSubclassedObject(MyObj):
|
|||||||
fields = {'new_field': fields.StringField()}
|
fields = {'new_field': fields.StringField()}
|
||||||
|
|
||||||
|
|
||||||
class TestUtils(test_base.TestCase):
|
|
||||||
|
|
||||||
def test_dt_serializer(self):
|
|
||||||
class Obj(object):
|
|
||||||
foo = utils.dt_serializer('bar')
|
|
||||||
|
|
||||||
obj = Obj()
|
|
||||||
obj.bar = timeutils.parse_isotime('1955-11-05T00:00:00+00:00')
|
|
||||||
self.assertEqual('1955-11-05T00:00:00+00:00', obj.foo())
|
|
||||||
obj.bar = None
|
|
||||||
self.assertIsNone(obj.foo())
|
|
||||||
obj.bar = 'foo'
|
|
||||||
self.assertRaises(TypeError, obj.foo)
|
|
||||||
|
|
||||||
def test_dt_deserializer(self):
|
|
||||||
dt = timeutils.parse_isotime('1955-11-05T00:00:00Z')
|
|
||||||
self.assertEqual(utils.dt_deserializer(None, dt.isoformat()), dt)
|
|
||||||
self.assertIsNone(utils.dt_deserializer(None, None))
|
|
||||||
self.assertRaises(ValueError, utils.dt_deserializer, None, 'foo')
|
|
||||||
|
|
||||||
def test_obj_to_primitive_dict(self):
|
|
||||||
myobj = MyObj(self.context)
|
|
||||||
myobj.foo = 1
|
|
||||||
myobj.bar = 'foo'
|
|
||||||
self.assertEqual({'foo': 1, 'bar': 'foo'},
|
|
||||||
base.obj_to_primitive(myobj))
|
|
||||||
|
|
||||||
|
|
||||||
class _BaseTestCase(test_base.TestCase):
|
class _BaseTestCase(test_base.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(_BaseTestCase, self).setUp()
|
super(_BaseTestCase, self).setUp()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user