From 38182e7222218bbe548452d9f7a6a76d6c1d54b3 Mon Sep 17 00:00:00 2001 From: Lucas Alvares Gomes Date: Wed, 10 Sep 2014 18:38:36 +0100 Subject: [PATCH] Remove the objectify decorator The objectify decorator was used to convert DB objects into RPC objects, but it's not being used anymore since out objects API already has correspondent methods to match the dbapi ones. Also, since dbapi methods didn't get a context the decorator was forming bad RPC objects without a context stored within it. Change-Id: I892ab6ee2236af040c7f8effcfdfecb293e13ab6 Partial-Bug: #1314732 --- ironic/objects/__init__.py | 20 +--------- ironic/tests/objects/test_chassis.py | 32 ---------------- ironic/tests/objects/test_conductor.py | 32 ---------------- ironic/tests/objects/test_node.py | 51 -------------------------- ironic/tests/objects/test_port.py | 32 ---------------- 5 files changed, 1 insertion(+), 166 deletions(-) diff --git a/ironic/objects/__init__.py b/ironic/objects/__init__.py index fbc9aed93b..f022421fd1 100644 --- a/ironic/objects/__init__.py +++ b/ironic/objects/__init__.py @@ -12,29 +12,12 @@ # License for the specific language governing permissions and limitations # under the License. -import functools - from ironic.objects import chassis from ironic.objects import conductor from ironic.objects import node from ironic.objects import port -def objectify(klass): - """Decorator to convert database results into specified objects.""" - def the_decorator(fn): - @functools.wraps(fn) - def wrapper(*args, **kwargs): - result = fn(*args, **kwargs) - try: - return klass._from_db_object(klass(), result) - except TypeError: - # TODO(deva): handle lists of objects better - # once support for those lands and is imported. - return [klass._from_db_object(klass(), obj) for obj in result] - return wrapper - return the_decorator - Chassis = chassis.Chassis Conductor = conductor.Conductor Node = node.Node @@ -43,5 +26,4 @@ Port = port.Port __all__ = (Chassis, Conductor, Node, - Port, - objectify) + Port) diff --git a/ironic/tests/objects/test_chassis.py b/ironic/tests/objects/test_chassis.py index 2f0594ec5f..598e7fcaf6 100644 --- a/ironic/tests/objects/test_chassis.py +++ b/ironic/tests/objects/test_chassis.py @@ -19,7 +19,6 @@ from testtools.matchers import HasLength from ironic.common import exception from ironic.common import utils as ironic_utils from ironic.db import api as db_api -from ironic.db.sqlalchemy import models from ironic import objects from ironic.tests.db import base @@ -88,37 +87,6 @@ class TestChassisObject(base.DbTestCase): self.assertEqual(new_uuid, c.uuid) self.assertEqual(expected, mock_get_chassis.call_args_list) - def test_objectify(self): - def _get_db_chassis(): - c = models.Chassis() - c.update(self.fake_chassis) - return c - - @objects.objectify(objects.Chassis) - def _convert_db_chassis(): - return _get_db_chassis() - - self.assertIsInstance(_get_db_chassis(), models.Chassis) - self.assertIsInstance(_convert_db_chassis(), objects.Chassis) - - def test_objectify_many(self): - def _get_many_db_chassis(): - chassis = [] - for i in range(5): - c = models.Chassis() - c.update(self.fake_chassis) - chassis.append(c) - return chassis - - @objects.objectify(objects.Chassis) - def _convert_many_db_chassis(): - return _get_many_db_chassis() - - for c in _get_many_db_chassis(): - self.assertIsInstance(c, models.Chassis) - for c in _convert_many_db_chassis(): - self.assertIsInstance(c, objects.Chassis) - def test_list(self): with mock.patch.object(self.dbapi, 'get_chassis_list', autospec=True) as mock_get_list: diff --git a/ironic/tests/objects/test_conductor.py b/ironic/tests/objects/test_conductor.py index 599de39d2d..91fa6cd53e 100644 --- a/ironic/tests/objects/test_conductor.py +++ b/ironic/tests/objects/test_conductor.py @@ -20,7 +20,6 @@ import mock from oslo.utils import timeutils from ironic.db import api as db_api -from ironic.db.sqlalchemy import models from ironic import objects from ironic.objects import utils as obj_utils from ironic.tests.db import base @@ -82,34 +81,3 @@ class TestConductorObject(base.DbTestCase): c.refresh() self.assertEqual(obj_utils.datetime_or_none(t1), c.updated_at) self.assertEqual(expected, mock_get_cdr.call_args_list) - - def test_objectify(self): - def _get_db_conductor(): - c = models.Conductor() - c.update(self.fake_conductor) - return c - - @objects.objectify(objects.Conductor) - def _convert_db_conductor(): - return _get_db_conductor() - - self.assertIsInstance(_get_db_conductor(), models.Conductor) - self.assertIsInstance(_convert_db_conductor(), objects.Conductor) - - def test_objectify_many(self): - def _get_db_conductors(): - conductors = [] - for i in range(5): - c = models.Conductor() - c.update(self.fake_conductor) - conductors.append(c) - return conductors - - @objects.objectify(objects.Conductor) - def _convert_db_conductors(): - return _get_db_conductors() - - for c in _get_db_conductors(): - self.assertIsInstance(c, models.Conductor) - for c in _convert_db_conductors(): - self.assertIsInstance(c, objects.Conductor) diff --git a/ironic/tests/objects/test_node.py b/ironic/tests/objects/test_node.py index c62fd1cf49..ee72be3474 100644 --- a/ironic/tests/objects/test_node.py +++ b/ironic/tests/objects/test_node.py @@ -13,15 +13,11 @@ # License for the specific language governing permissions and limitations # under the License. -import datetime - import mock -from oslo.utils import timeutils from testtools.matchers import HasLength from ironic.common import exception from ironic.db import api as db_api -from ironic.db.sqlalchemy import models from ironic import objects from ironic.tests.db import base from ironic.tests.db import utils @@ -88,53 +84,6 @@ class TestNodeObject(base.DbTestCase): self.assertEqual({"fake": "second"}, n.properties) self.assertEqual(expected, mock_get_node.call_args_list) - def test_objectify(self): - 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_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 = [] - for i in range(5): - n = models.Node() - n.update(self.fake_node) - nodes.append(n) - return nodes - - @objects.objectify(objects.Node) - def _convert_db_nodes(): - return _get_db_nodes() - - for n in _get_db_nodes(): - self.assertIsInstance(n, models.Node) - for n in _convert_db_nodes(): - self.assertIsInstance(n, objects.Node) - def test_list(self): with mock.patch.object(self.dbapi, 'get_node_list', autospec=True) as mock_get_list: diff --git a/ironic/tests/objects/test_port.py b/ironic/tests/objects/test_port.py index abcad00fa8..2008ed991f 100644 --- a/ironic/tests/objects/test_port.py +++ b/ironic/tests/objects/test_port.py @@ -18,7 +18,6 @@ from testtools.matchers import HasLength from ironic.common import exception from ironic.db import api as db_api -from ironic.db.sqlalchemy import models from ironic import objects from ironic.tests.db import base from ironic.tests.db import utils @@ -95,37 +94,6 @@ class TestPortObject(base.DbTestCase): self.assertEqual(expected, mock_get_port.call_args_list) - def test_objectify(self): - def _get_db_port(): - p = models.Port() - p.update(self.fake_port) - return p - - @objects.objectify(objects.Port) - def _convert_db_port(): - return _get_db_port() - - self.assertIsInstance(_get_db_port(), models.Port) - self.assertIsInstance(_convert_db_port(), objects.Port) - - def test_objectify_many(self): - def _get_db_ports(): - nodes = [] - for i in range(5): - n = models.Port() - n.update(self.fake_port) - nodes.append(n) - return nodes - - @objects.objectify(objects.Port) - def _convert_db_nodes(): - return _get_db_ports() - - for p in _get_db_ports(): - self.assertIsInstance(p, models.Port) - for p in _convert_db_nodes(): - self.assertIsInstance(p, objects.Port) - def test_list(self): with mock.patch.object(self.dbapi, 'get_port_list', autospec=True) as mock_get_list: