summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMotoKen <motokentsai@gmail.com>2012-12-22 13:58:53 +0800
committerMotoKen <motokentsai@gmail.com>2012-12-24 14:04:27 +0800
commit1f2144893df2fb79238ea22d84b9b5ee47f15ac0 (patch)
tree033798845fca5b67cff6eddd4d81c60ad3a149d3
parent1836ede3c57ecb255fe9dcf0f2ea3c880af3d201 (diff)
downloadnova-1f2144893df2fb79238ea22d84b9b5ee47f15ac0.tar.gz
nova-1f2144893df2fb79238ea22d84b9b5ee47f15ac0.tar.xz
nova-1f2144893df2fb79238ea22d84b9b5ee47f15ac0.zip
Fix cloudpipe instances query.
Filter out deleted instances in _get_all_cloudpipes. Fix bug 1092786. Change-Id: Ia714a1989f78728f8b3597d6f837b622427ac5b1
-rw-r--r--nova/api/openstack/compute/contrib/cloudpipe.py4
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_cloudpipe.py4
2 files changed, 5 insertions, 3 deletions
diff --git a/nova/api/openstack/compute/contrib/cloudpipe.py b/nova/api/openstack/compute/contrib/cloudpipe.py
index 1b60f6c1f..bb3007735 100644
--- a/nova/api/openstack/compute/contrib/cloudpipe.py
+++ b/nova/api/openstack/compute/contrib/cloudpipe.py
@@ -74,7 +74,9 @@ class CloudpipeController(object):
def _get_all_cloudpipes(self, context):
"""Get all cloudpipes"""
- return [instance for instance in self.compute_api.get_all(context)
+ instances = self.compute_api.get_all(context,
+ search_opts={'deleted': False})
+ return [instance for instance in instances
if instance['image_ref'] == str(CONF.vpn_image_id)
and instance['vm_state'] != vm_states.DELETED]
diff --git a/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py b/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
index 5f92d521e..1ff26a60d 100644
--- a/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
+++ b/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
@@ -39,11 +39,11 @@ def fake_vpn_instance():
}
-def compute_api_get_all_empty(context):
+def compute_api_get_all_empty(context, search_opts=None):
return []
-def compute_api_get_all(context):
+def compute_api_get_all(context, search_opts=None):
return [fake_vpn_instance()]