diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-01-31 14:00:38 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-31 14:00:38 +0000 |
commit | 98e37e905349c576f0550bec15d65d101c8bce3e (patch) | |
tree | d98f38e75517eb7e91f5e14b87ae7ebb781c533b | |
parent | 194ec6204ee3a67193b1ffd63de073d50878ce77 (diff) | |
parent | d3b62c1b49e4dc05d266ce679724c236456f863d (diff) | |
download | nova-98e37e905349c576f0550bec15d65d101c8bce3e.tar.gz nova-98e37e905349c576f0550bec15d65d101c8bce3e.tar.xz nova-98e37e905349c576f0550bec15d65d101c8bce3e.zip |
Merge "Pass parameter 'filter' back to model layer"
-rw-r--r-- | nova/api/ec2/cloud.py | 6 | ||||
-rw-r--r-- | nova/tests/api/ec2/test_cloud.py | 13 |
2 files changed, 18 insertions, 1 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 632ea668c..05e6b8acd 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -991,18 +991,22 @@ class CloudController(object): def describe_instances(self, context, **kwargs): # Optional DescribeInstances argument instance_id = kwargs.get('instance_id', None) + filters = kwargs.get('filter', None) instances = self._enforce_valid_instance_ids(context, instance_id) return self._format_describe_instances(context, instance_id=instance_id, - instance_cache=instances) + instance_cache=instances, + filter=filters) def describe_instances_v6(self, context, **kwargs): # Optional DescribeInstancesV6 argument instance_id = kwargs.get('instance_id', None) + filters = kwargs.get('filter', None) instances = self._enforce_valid_instance_ids(context, instance_id) return self._format_describe_instances(context, instance_id=instance_id, instance_cache=instances, + filter=filters, use_v6=True) def _format_describe_instances(self, context, **kwargs): diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py index a00dceff1..c60a0148e 100644 --- a/nova/tests/api/ec2/test_cloud.py +++ b/nova/tests/api/ec2/test_cloud.py @@ -824,6 +824,19 @@ class CloudTestCase(test.TestCase): self.cloud.describe_instances, self.context, instance_id=[instance_id]) + def test_describe_instances_with_filters(self): + # Makes sure describe_instances works and filters results. + filters = {'filter': [{'name': 'test', + 'value': ['a', 'b']}, + {'name': 'another_test', + 'value': 'a string'}]} + + self._stub_instance_get_with_fixed_ips('get_all') + self._stub_instance_get_with_fixed_ips('get') + + result = self.cloud.describe_instances(self.context, **filters) + self.assertEqual(result, {'reservationSet': []}) + def test_describe_instances_sorting(self): # Makes sure describe_instances works and is sorted as expected. self.flags(use_ipv6=True) |