summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-03-24 16:26:44 +0000
committerTarmac <>2011-03-24 16:26:44 +0000
commit809cbdb96ff3173a85465ad60770bc7032ac0aae (patch)
treecf91a580dc9cf843c3747a4a858f35824ab4bcb1 /nova/api
parentc53e56576ead57815f3542a7faa797e5d0135e0c (diff)
parent964dbe0ee380877e21465647f0e57d28f7897d98 (diff)
Aggregates capabilities from Compute, Network, Volume to the ZoneManager in Scheduler.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/zones.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/nova/api/openstack/zones.py b/nova/api/openstack/zones.py
index 8fe84275a..d4a59993b 100644
--- a/nova/api/openstack/zones.py
+++ b/nova/api/openstack/zones.py
@@ -15,9 +15,9 @@
import common
+from nova import db
from nova import flags
from nova import wsgi
-from nova import db
from nova.scheduler import api
@@ -52,7 +52,7 @@ class Controller(wsgi.Controller):
"""Return all zones in brief"""
# Ask the ZoneManager in the Scheduler for most recent data,
# or fall-back to the database ...
- items = api.API().get_zone_list(req.environ['nova.context'])
+ items = api.get_zone_list(req.environ['nova.context'])
if not items:
items = db.zone_get_all(req.environ['nova.context'])
@@ -67,8 +67,16 @@ class Controller(wsgi.Controller):
def info(self, req):
"""Return name and capabilities for this zone."""
- return dict(zone=dict(name=FLAGS.zone_name,
- capabilities=FLAGS.zone_capabilities))
+ items = api.get_zone_capabilities(req.environ['nova.context'])
+
+ zone = dict(name=FLAGS.zone_name)
+ caps = FLAGS.zone_capabilities
+ for cap in caps:
+ key, value = cap.split('=')
+ zone[key] = value
+ for item, (min_value, max_value) in items.iteritems():
+ zone[item] = "%s,%s" % (min_value, max_value)
+ return dict(zone=zone)
def show(self, req, id):
"""Return data about the given zone id"""