summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/rpcapi.py3
-rw-r--r--nova/tests/api/ec2/test_cloud.py28
-rw-r--r--nova/tests/api/openstack/compute/test_server_actions.py12
3 files changed, 37 insertions, 6 deletions
diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py
index 8b4a4a529..c6ad3383e 100644
--- a/nova/compute/rpcapi.py
+++ b/nova/compute/rpcapi.py
@@ -518,8 +518,9 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
def terminate_instance(self, ctxt, instance, bdms):
instance_p = jsonutils.to_primitive(instance)
+ bdms_p = jsonutils.to_primitive(bdms)
self.cast(ctxt, self.make_msg('terminate_instance',
- instance=instance_p, bdms=bdms),
+ instance=instance_p, bdms=bdms_p),
topic=_compute_topic(self.topic, ctxt, None, instance),
version='2.4')
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index 1abde1069..a6995945b 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -1825,19 +1825,30 @@ class CloudTestCase(test.TestCase):
class BDM(object):
def __init__(self):
self.no_device = None
- self.values = dict(snapshot_id=snapshots[0],
+ self.values = dict(id=1,
+ snapshot_id=snapshots[0],
volume_id=volumes[0],
virtual_name=None,
volume_size=1,
device_name='sda1',
- delete_on_termination=False)
+ delete_on_termination=False,
+ connection_info='{"foo":"bar"}')
def __getattr__(self, name):
- return self.values.get(name)
+ """Properly delegate dotted lookups"""
+ if name in self.__dict__['values']:
+ return self.values.get(name)
+ try:
+ return self.__dict__[name]
+ except KeyError:
+ raise AttributeError
def __getitem__(self, key):
return self.values.get(key)
+ def iteritems(self):
+ return self.values.iteritems()
+
return [BDM()]
self.stubs.Set(db, 'block_device_mapping_get_all_by_instance',
@@ -1913,11 +1924,20 @@ class CloudTestCase(test.TestCase):
delete_on_termination=False)
def __getattr__(self, name):
- return self.values.get(name)
+ """Properly delegate dotted lookups"""
+ if name in self.__dict__['values']:
+ return self.values.get(name)
+ try:
+ return self.__dict__[name]
+ except KeyError:
+ raise AttributeError
def __getitem__(self, key):
return self.values.get(key)
+ def iteritems(self):
+ return self.values.iteritems()
+
return [BDM()]
self.stubs.Set(db, 'block_device_mapping_get_all_by_instance',
diff --git a/nova/tests/api/openstack/compute/test_server_actions.py b/nova/tests/api/openstack/compute/test_server_actions.py
index 995e566f3..0afa00f2b 100644
--- a/nova/tests/api/openstack/compute/test_server_actions.py
+++ b/nova/tests/api/openstack/compute/test_server_actions.py
@@ -722,14 +722,24 @@ class ServerActionsControllerTest(test.TestCase):
virtual_name=None,
volume_size=1,
device_name='vda',
+ snapshot_id=1,
delete_on_termination=False)
def __getattr__(self, name):
- return self.values.get(name)
+ """Properly delegate dotted lookups"""
+ if name in self.__dict__['values']:
+ return self.values.get(name)
+ try:
+ return self.__dict__[name]
+ except KeyError:
+ raise AttributeError
def __getitem__(self, key):
return self.values.get(key)
+ def iteritems(self):
+ return self.values.iteritems()
+
return [BDM()]
self.stubs.Set(db, 'block_device_mapping_get_all_by_instance',