summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/zones.py4
-rw-r--r--nova/flags.py5
-rw-r--r--nova/tests/api/openstack/test_zones.py6
3 files changed, 8 insertions, 7 deletions
diff --git a/nova/api/openstack/zones.py b/nova/api/openstack/zones.py
index 547920901..ebfc7743c 100644
--- a/nova/api/openstack/zones.py
+++ b/nova/api/openstack/zones.py
@@ -71,9 +71,9 @@ class Controller(wsgi.Controller):
items = api.API.get_zone_capabilities(req.environ['nova.context'])
zone = dict(name=FLAGS.zone_name)
- caps = FLAGS.zone_capabilities.split(';')
+ caps = FLAGS.zone_capabilities
for cap in caps:
- key_values = cap.split(':')
+ key_values = cap.split('=')
zone[key_values[0]] = key_values[1]
for item, (min_value, max_value) in items.iteritems():
zone[item] = "%s,%s" % (min_value, max_value)
diff --git a/nova/flags.py b/nova/flags.py
index c05cef373..3a8ec1a39 100644
--- a/nova/flags.py
+++ b/nova/flags.py
@@ -358,5 +358,6 @@ DEFINE_string('node_availability_zone', 'nova',
'availability zone of this node')
DEFINE_string('zone_name', 'nova', 'name of this zone')
-DEFINE_string('zone_capabilities', 'hypervisor:xenserver;os:linux',
- 'Key/Value tags which represent capabilities of this zone')
+DEFINE_list('zone_capabilities',
+ ['hypervisor=xenserver;kvm', 'os=linux;windows'],
+ 'Key/Multi-value list representng capabilities of this zone')
diff --git a/nova/tests/api/openstack/test_zones.py b/nova/tests/api/openstack/test_zones.py
index 5e3aee4a7..12d39fd29 100644
--- a/nova/tests/api/openstack/test_zones.py
+++ b/nova/tests/api/openstack/test_zones.py
@@ -178,7 +178,7 @@ class ZonesTest(test.TestCase):
def test_zone_info(self):
FLAGS.zone_name = 'darksecret'
- FLAGS.zone_capabilities = 'cap1:a,b;cap2:c,d'
+ FLAGS.zone_capabilities = ['cap1=a;b', 'cap2=c;d']
self.stubs.Set(api, '_call_scheduler', zone_caps)
body = dict(zone=dict(username='zeb', password='sneaky'))
@@ -188,5 +188,5 @@ class ZonesTest(test.TestCase):
res_dict = json.loads(res.body)
self.assertEqual(res.status_int, 200)
self.assertEqual(res_dict['zone']['name'], 'darksecret')
- self.assertEqual(res_dict['zone']['cap1'], 'a,b')
- self.assertEqual(res_dict['zone']['cap2'], 'c,d')
+ self.assertEqual(res_dict['zone']['cap1'], 'a;b')
+ self.assertEqual(res_dict['zone']['cap2'], 'c;d')