summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorXavier Queralt <xqueralt@redhat.com>2013-06-12 14:59:29 +0200
committerXavier Queralt <xqueralt@redhat.com>2013-06-17 11:45:30 +0200
commit645c2d3a06bbf8b0854ebcc539ad33dd706866c5 (patch)
tree298705a7eb9d62fd2ca8e927daf9303025251fab /nova
parentd147af21db2db77f578e527883cf2c68abc56496 (diff)
downloadnova-645c2d3a06bbf8b0854ebcc539ad33dd706866c5.tar.gz
nova-645c2d3a06bbf8b0854ebcc539ad33dd706866c5.tar.xz
nova-645c2d3a06bbf8b0854ebcc539ad33dd706866c5.zip
Accept is_public=None when listing all flavors
nova-client uses a None (with capital N) when listing all the flavors. Right now this is interpreted as a wrong query by n-api preventing us from listing the private flavors using the nova-client. Fixes bug #1190239 Change-Id: I2a9b1c24cd744c8819c1d41e0ad103d05398401c
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/compute/flavors.py3
-rw-r--r--nova/tests/api/openstack/compute/test_flavors.py1
-rw-r--r--nova/utils.py10
3 files changed, 13 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/flavors.py b/nova/api/openstack/compute/flavors.py
index 4da130e9b..c6303646a 100644
--- a/nova/api/openstack/compute/flavors.py
+++ b/nova/api/openstack/compute/flavors.py
@@ -24,6 +24,7 @@ from nova.api.openstack import xmlutil
from nova.compute import flavors
from nova import exception
from nova.openstack.common import strutils
+from nova import utils
def make_flavor(elem, detailed=False):
@@ -98,7 +99,7 @@ class Controller(wsgi.Controller):
if is_public is None:
# preserve default value of showing only public flavors
return True
- elif is_public == 'none':
+ elif utils.is_none_string(is_public):
return None
else:
try:
diff --git a/nova/tests/api/openstack/compute/test_flavors.py b/nova/tests/api/openstack/compute/test_flavors.py
index 77e637044..3741fcd33 100644
--- a/nova/tests/api/openstack/compute/test_flavors.py
+++ b/nova/tests/api/openstack/compute/test_flavors.py
@@ -792,6 +792,7 @@ class ParseIsPublicTest(test.TestCase):
def test_string_none(self):
self.assertPublic(None, 'none')
+ self.assertPublic(None, 'None')
def test_other(self):
self.assertRaises(
diff --git a/nova/utils.py b/nova/utils.py
index fe360cac6..7fa19aea6 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -1078,3 +1078,13 @@ def spawn_n(func, *args, **kwargs):
interfering with the service spawns.
"""
eventlet.spawn_n(func, *args, **kwargs)
+
+
+def is_none_string(val):
+ """
+ Check if a string represents a None value.
+ """
+ if not isinstance(val, basestring):
+ return False
+
+ return val.lower() == 'none'