ironic/ironic/objects/indirection.py
Sam Betts 57d4e0ce3d Remove cyclic import between rpcapi and objects.base
There was a cyclic import between conductor.rpcapi and objects.base,
this was initally fixed by doing an import at runtime. This patch fixes
the import cycle for good.

Change-Id: I8ee8c47652de75430312f77ddee08adc7a237d2b
Closes-Bug: #1623074
2016-09-13 15:55:44 +01:00

44 lines
2.0 KiB
Python

# 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.
from oslo_versionedobjects import base as object_base
from ironic.conductor import rpcapi as conductor_api
class IronicObjectIndirectionAPI(object_base.VersionedObjectIndirectionAPI):
def __init__(self):
super(IronicObjectIndirectionAPI, self).__init__()
self._conductor = conductor_api.ConductorAPI()
def object_action(self, context, objinst, objmethod, args, kwargs):
return self._conductor.object_action(context, objinst, objmethod,
args, kwargs)
def object_class_action(self, context, objname, objmethod, objver,
args, kwargs):
# NOTE(xek): This method is implemented for compatibility with
# oslo.versionedobjects 0.10.0 and older. It will be replaced by
# object_class_action_versions.
versions = object_base.obj_tree_get_versions(objname)
return self.object_class_action_versions(
context, objname, objmethod, versions, args, kwargs)
def object_class_action_versions(self, context, objname, objmethod,
object_versions, args, kwargs):
return self._conductor.object_class_action_versions(
context, objname, objmethod, object_versions, args, kwargs)
def object_backport_versions(self, context, objinst, object_versions):
return self._conductor.object_backport_versions(context, objinst,
object_versions)