diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-03-13 19:14:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-03-13 19:14:09 +0000 |
commit | dd6e5368f1a9512f807f5140f687804d6a96adf5 (patch) | |
tree | 094a630030c8e39b7eb66e6b10ccb7e827ac8dad | |
parent | 697843b2af4c47df299d47d1fd765eec79b160db (diff) | |
parent | 782dd69de4c6661eeb889b4e5b3b1b8df9d228b6 (diff) | |
download | nova-dd6e5368f1a9512f807f5140f687804d6a96adf5.tar.gz nova-dd6e5368f1a9512f807f5140f687804d6a96adf5.tar.xz nova-dd6e5368f1a9512f807f5140f687804d6a96adf5.zip |
Merge "Prepare services index method for use with cells"
-rw-r--r-- | nova/api/openstack/compute/contrib/services.py | 10 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/contrib/test_services.py | 18 | ||||
-rw-r--r-- | nova/tests/integrated/test_api_samples.py | 2 |
3 files changed, 21 insertions, 9 deletions
diff --git a/nova/api/openstack/compute/contrib/services.py b/nova/api/openstack/compute/contrib/services.py index 3afd5ff45..fb7b9d591 100644 --- a/nova/api/openstack/compute/contrib/services.py +++ b/nova/api/openstack/compute/contrib/services.py @@ -20,7 +20,7 @@ import webob.exc from nova.api.openstack import extensions from nova.api.openstack import wsgi from nova.api.openstack import xmlutil -from nova import availability_zones +from nova import compute from nova import db from nova import exception from nova.openstack.common import log as logging @@ -58,6 +58,10 @@ class ServicesUpdateTemplate(xmlutil.TemplateBuilder): class ServiceController(object): + + def __init__(self): + self.host_api = compute.HostAPI() + @wsgi.serializers(xml=ServicesIndexTemplate) def index(self, req): """ @@ -66,8 +70,8 @@ class ServiceController(object): context = req.environ['nova.context'] authorize(context) now = timeutils.utcnow() - services = db.service_get_all(context) - services = availability_zones.set_availability_zones(context, services) + services = self.host_api.service_get_all( + context, set_zones=True) host = '' if 'host' in req.GET: diff --git a/nova/tests/api/openstack/compute/contrib/test_services.py b/nova/tests/api/openstack/compute/contrib/test_services.py index d4bf62d19..cb7ce67cb 100644 --- a/nova/tests/api/openstack/compute/contrib/test_services.py +++ b/nova/tests/api/openstack/compute/contrib/test_services.py @@ -16,6 +16,7 @@ import datetime from nova.api.openstack.compute.contrib import services +from nova import availability_zones from nova import context from nova import db from nova import exception @@ -76,7 +77,13 @@ class FakeRequestWithHostService(object): GET = {"host": "host1", "service": "nova-compute"} -def fake_service_get_all(context): +def fake_host_api_service_get_all(context, filters=None, set_zones=False): + if set_zones or 'availability_zone' in filters: + return availability_zones.set_availability_zones(context, + fake_services_list) + + +def fake_db_api_service_get_all(context, disabled=None): return fake_services_list @@ -112,15 +119,16 @@ class ServicesTest(test.TestCase): def setUp(self): super(ServicesTest, self).setUp() - self.stubs.Set(db, "service_get_all", fake_service_get_all) + self.context = context.get_admin_context() + self.controller = services.ServiceController() + + self.stubs.Set(self.controller.host_api, "service_get_all", + fake_host_api_service_get_all) self.stubs.Set(timeutils, "utcnow", fake_utcnow) self.stubs.Set(db, "service_get_by_args", fake_service_get_by_host_binary) self.stubs.Set(db, "service_update", fake_service_update) - self.context = context.get_admin_context() - self.controller = services.ServiceController() - def test_services_list(self): req = FakeRequest() res_dict = self.controller.index(req) diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index 26f37275a..1ca839b3f 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -1963,7 +1963,7 @@ class ServicesJsonTest(ApiSampleTestBase): def setUp(self): super(ServicesJsonTest, self).setUp() self.stubs.Set(db, "service_get_all", - test_services.fake_service_get_all) + test_services.fake_db_api_service_get_all) self.stubs.Set(timeutils, "utcnow", test_services.fake_utcnow) self.stubs.Set(db, "service_get_by_args", test_services.fake_service_get_by_host_binary) |