]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix usage of _fields method in provider_configuration.py
authorEugene Nikanorov <enikanorov@mirantis.com>
Fri, 20 Sep 2013 03:15:38 +0000 (07:15 +0400)
committerEugene Nikanorov <enikanorov@mirantis.com>
Mon, 23 Sep 2013 04:07:16 +0000 (08:07 +0400)
Apply _fields() method to each dict in the list.

Change-Id: I9357212e203843ffa4a05216d9c79fe8831971a5
Closes-Bug: #1227971

neutron/services/provider_configuration.py
neutron/tests/unit/test_provider_configuration.py

index 85c2424d915eed2fc506ed1474b1c25493e75f3d..88a64b72b29ff1078568f9b15571052a55eabb7b 100644 (file)
@@ -153,10 +153,10 @@ class ProviderConfiguration(object):
         return resource
 
     def get_service_providers(self, filters=None, fields=None):
-        res = [{'service_type': k[0],
-                'name': k[1],
-                'driver': v['driver'],
-                'default': v['default']}
-               for k, v in self.providers.items()
-               if self._check_entry(k, v, filters)]
-        return self._fields(res, fields)
+        return [self._fields({'service_type': k[0],
+                              'name': k[1],
+                              'driver': v['driver'],
+                              'default': v['default']},
+                             fields)
+                for k, v in self.providers.items()
+                if self._check_entry(k, v, filters)]
index e665c9a88d1560fe35972a428b0a776dd7d1f2cb..b8ee47796ba37ac3261345b271388d02f9f1dad4 100644 (file)
@@ -181,3 +181,21 @@ class ProviderConfigurationTestCase(base.BaseTestCase):
                          'service_type': prov['service_type']}
             )
             self.assertEqual(p, [prov])
+
+    def test_get_service_providers_with_fields(self):
+        provs = [{'service_type': constants.LOADBALANCER,
+                  'name': 'name',
+                  'driver': 'path',
+                  'default': False},
+                 {'service_type': constants.LOADBALANCER,
+                  'name': 'name2',
+                  'driver': 'path2',
+                  'default': False}]
+        pconf = provconf.ProviderConfiguration(provs)
+        for prov in provs:
+            p = pconf.get_service_providers(
+                filters={'name': [prov['name']],
+                         'service_type': prov['service_type']},
+                fields=['name']
+            )
+            self.assertEqual(p, [{'name': prov['name']}])