summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-02-18 12:08:35 -0400
committerSandy Walsh <sandy.walsh@rackspace.com>2011-02-18 12:08:35 -0400
commitc884064e7a9af04b2ebdbbb9ee32318a00716412 (patch)
tree34854e36fcf398e3c2f532b4cef317638970789c /nova/api
parente5d979596ff8c588c7bbe82b7f1cb90de8af041a (diff)
fixups backed on merge comments
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/zones.py30
1 files changed, 7 insertions, 23 deletions
diff --git a/nova/api/openstack/zones.py b/nova/api/openstack/zones.py
index f75176824..24a4444f7 100644
--- a/nova/api/openstack/zones.py
+++ b/nova/api/openstack/zones.py
@@ -1,4 +1,4 @@
-# Copyright 2010 OpenStack LLC.
+# Copyright 2011 OpenStack LLC.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -20,6 +20,7 @@ from nova import flags
from nova import wsgi
from nova import db
from nova import rpc
+from nova.scheduler.api import API
FLAGS = flags.FLAGS
@@ -49,31 +50,14 @@ class Controller(wsgi.Controller):
"attributes": {
"zone": ["id", "api_url", "name", "capabilities"]}}}
- def _call_scheduler(self, method, context, params=None):
- """Generic handler for RPC calls to the scheduler.
-
- :param params: Optional dictionary of arguments to be passed to the
- scheduler worker
-
- :retval: Result returned by scheduler worker
- """
- if not params:
- params = {}
- queue = FLAGS.scheduler_topic
- kwargs = {'method': method, 'args': params}
- return rpc.call(context, queue, kwargs)
-
def index(self, req):
"""Return all zones in brief"""
- # Ask the ZoneManager in the Scheduler for most recent data.
- items = self._call_scheduler('get_zone_list',
- req.environ['nova.context'])
- for item in items:
- item['api_url'] = item['api_url'].replace('\\/', '/')
-
- # Or fall-back to the database ...
- if len(items) == 0:
+ # Ask the ZoneManager in the Scheduler for most recent data,
+ # or fall-back to the database ...
+ items = API().get_zone_list(req.environ['nova.context'])
+ if not items:
items = db.zone_get_all(req.environ['nova.context'])
+
items = common.limited(items, req)
items = [_exclude_keys(item, ['username', 'password'])
for item in items]