Merge changes I36ff7c05,If43658b9
* changes: Stop using nova.exception from nova.rpc. Make use of openstack.common.jsonutils.
This commit is contained in:
@@ -21,6 +21,7 @@ from nova import flags
|
||||
from nova import log as logging
|
||||
from nova.openstack.common import cfg
|
||||
from nova.openstack.common import importutils
|
||||
from nova.openstack.common import jsonutils
|
||||
from nova import utils
|
||||
|
||||
|
||||
@@ -121,7 +122,7 @@ def notify(context, publisher_id, event_type, priority, payload):
|
||||
_('%s not in valid priorities') % priority)
|
||||
|
||||
# Ensure everything is JSON serializable.
|
||||
payload = utils.to_primitive(payload, convert_instances=True)
|
||||
payload = jsonutils.to_primitive(payload, convert_instances=True)
|
||||
|
||||
driver = importutils.import_module(FLAGS.notification_driver)
|
||||
msg = dict(message_id=str(uuid.uuid4()),
|
||||
|
||||
@@ -34,7 +34,6 @@ from eventlet import pools
|
||||
from eventlet import semaphore
|
||||
|
||||
from nova import context
|
||||
from nova import exception
|
||||
from nova import log as logging
|
||||
from nova.openstack.common import excutils
|
||||
from nova.openstack.common import local
|
||||
@@ -141,7 +140,7 @@ class ConnectionContext(rpc_common.Connection):
|
||||
if self.connection:
|
||||
return getattr(self.connection, key)
|
||||
else:
|
||||
raise exception.InvalidRPCConnectionReuse()
|
||||
raise rpc_common.InvalidRPCConnectionReuse()
|
||||
|
||||
|
||||
def msg_reply(conf, msg_id, connection_pool, reply=None, failure=None,
|
||||
@@ -250,7 +249,6 @@ class ProxyCallback(object):
|
||||
return
|
||||
self.pool.spawn_n(self._process_data, ctxt, method, args)
|
||||
|
||||
@exception.wrap_exception()
|
||||
def _process_data(self, ctxt, method, args):
|
||||
"""Thread that magically looks for a method on the proxy
|
||||
object and calls it.
|
||||
|
||||
@@ -21,17 +21,38 @@ import copy
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
from nova import exception
|
||||
from nova import log as logging
|
||||
from nova.openstack.common import cfg
|
||||
from nova.openstack.common import importutils
|
||||
from nova import utils
|
||||
from nova.openstack.common import jsonutils
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class RemoteError(exception.NovaException):
|
||||
class RPCException(Exception):
|
||||
message = _("An unknown RPC related exception occurred.")
|
||||
|
||||
def __init__(self, message=None, **kwargs):
|
||||
self.kwargs = kwargs
|
||||
|
||||
if not message:
|
||||
try:
|
||||
message = self.message % kwargs
|
||||
|
||||
except Exception as e:
|
||||
# kwargs doesn't match a variable in the message
|
||||
# log the issue and the kwargs
|
||||
LOG.exception(_('Exception in string format operation'))
|
||||
for name, value in kwargs.iteritems():
|
||||
LOG.error("%s: %s" % (name, value))
|
||||
# at least get the core message out if something happened
|
||||
message = self.message
|
||||
|
||||
super(RPCException, self).__init__(message)
|
||||
|
||||
|
||||
class RemoteError(RPCException):
|
||||
"""Signifies that a remote class has raised an exception.
|
||||
|
||||
Contains a string representation of the type of the original exception,
|
||||
@@ -51,7 +72,7 @@ class RemoteError(exception.NovaException):
|
||||
traceback=traceback)
|
||||
|
||||
|
||||
class Timeout(exception.NovaException):
|
||||
class Timeout(RPCException):
|
||||
"""Signifies that a timeout has occurred.
|
||||
|
||||
This exception is raised if the rpc_response_timeout is reached while
|
||||
@@ -60,6 +81,10 @@ class Timeout(exception.NovaException):
|
||||
message = _("Timeout while waiting on RPC response.")
|
||||
|
||||
|
||||
class InvalidRPCConnectionReuse(RPCException):
|
||||
message = _("Invalid reuse of an RPC connection.")
|
||||
|
||||
|
||||
class Connection(object):
|
||||
"""A connection, returned by rpc.create_connection().
|
||||
|
||||
@@ -174,13 +199,13 @@ def serialize_remote_exception(failure_info):
|
||||
'kwargs': kwargs
|
||||
}
|
||||
|
||||
json_data = utils.dumps(data)
|
||||
json_data = jsonutils.dumps(data)
|
||||
|
||||
return json_data
|
||||
|
||||
|
||||
def deserialize_remote_exception(conf, data):
|
||||
failure = utils.loads(str(data))
|
||||
failure = jsonutils.loads(str(data))
|
||||
|
||||
trace = failure.get('tb', [])
|
||||
message = failure.get('message', "") + "\n" + "\n".join(trace)
|
||||
|
||||
@@ -20,9 +20,9 @@ import mox
|
||||
import StringIO
|
||||
|
||||
from nova import flags
|
||||
from nova import utils
|
||||
from nova import test
|
||||
from nova.compute import power_state
|
||||
from nova.openstack.common import jsonutils
|
||||
from nova.tests import fake_utils
|
||||
from nova import exception
|
||||
|
||||
@@ -95,8 +95,8 @@ class DomainReadWriteTestCase(test.TestCase):
|
||||
|
||||
def assertJSONEquals(self, x, y):
|
||||
"""Check if two json strings represent the equivalent Python object"""
|
||||
self.assertEquals(utils.loads(x), utils.loads(y))
|
||||
return utils.loads(x) == utils.loads(y)
|
||||
self.assertEquals(jsonutils.loads(x), jsonutils.loads(y))
|
||||
return jsonutils.loads(x) == jsonutils.loads(y)
|
||||
|
||||
def test_write_domain(self):
|
||||
"""Write the domain to file"""
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
|
||||
import nova.db.api
|
||||
from nova.notifier import capacity_notifier as cn
|
||||
from nova.openstack.common import jsonutils
|
||||
from nova import test
|
||||
from nova import utils
|
||||
|
||||
|
||||
class CapacityNotifierTestCase(test.TestCase):
|
||||
@@ -24,7 +24,7 @@ class CapacityNotifierTestCase(test.TestCase):
|
||||
|
||||
def _make_msg(self, host, event):
|
||||
usage_info = dict(memory_mb=123, disk_gb=456)
|
||||
payload = utils.to_primitive(usage_info, convert_instances=True)
|
||||
payload = jsonutils.to_primitive(usage_info, convert_instances=True)
|
||||
return dict(
|
||||
publisher_id="compute.%s" % host,
|
||||
event_type="compute.instance.%s" % event,
|
||||
|
||||
@@ -38,6 +38,7 @@ from nova import exception
|
||||
from nova import flags
|
||||
from nova import log as logging
|
||||
from nova.openstack.common import importutils
|
||||
from nova.openstack.common import jsonutils
|
||||
from nova import test
|
||||
from nova.tests import fake_network
|
||||
from nova.tests import fake_libvirt_utils
|
||||
@@ -1405,7 +1406,7 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
self.mox.ReplayAll()
|
||||
conn = connection.LibvirtConnection(False)
|
||||
info = conn.get_instance_disk_info(instance_ref.name)
|
||||
info = utils.loads(info)
|
||||
info = jsonutils.loads(info)
|
||||
self.assertEquals(info[0]['type'], 'raw')
|
||||
self.assertEquals(info[0]['path'], '/test/disk')
|
||||
self.assertEquals(info[0]['disk_size'], 10737418240)
|
||||
@@ -2507,7 +2508,7 @@ class LibvirtConnectionTestCase(test.TestCase):
|
||||
'virt_disk_size': '10737418240',
|
||||
'backing_file': '/base/disk.local',
|
||||
'disk_size':'83886080'}]
|
||||
disk_info_text = utils.dumps(disk_info)
|
||||
disk_info_text = jsonutils.dumps(disk_info)
|
||||
|
||||
def fake_get_instance_disk_info(instance):
|
||||
return disk_info_text
|
||||
@@ -2578,7 +2579,7 @@ class LibvirtConnectionTestCase(test.TestCase):
|
||||
'local_gb': 10, 'backing_file': '/base/disk'},
|
||||
{'type': 'raw', 'path': '/test/disk.local',
|
||||
'local_gb': 10, 'backing_file': '/base/disk.local'}]
|
||||
disk_info_text = utils.dumps(disk_info)
|
||||
disk_info_text = jsonutils.dumps(disk_info)
|
||||
|
||||
def fake_extend(path, size):
|
||||
pass
|
||||
@@ -2668,4 +2669,4 @@ class LibvirtNonblockingTestCase(test.TestCase):
|
||||
"""Test bug 962840"""
|
||||
import nova.virt.libvirt.connection
|
||||
connection = nova.virt.libvirt.connection.get_connection('')
|
||||
utils.to_primitive(connection._conn, convert_instances=True)
|
||||
jsonutils.to_primitive(connection._conn, convert_instances=True)
|
||||
|
||||
Reference in New Issue
Block a user