summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Kearney <josh@jk0.org>2012-11-26 13:06:10 -0600
committerJosh Kearney <josh@jk0.org>2012-11-26 14:29:37 -0600
commiteae906f8a84023ff0f0f3af1196d2af112765501 (patch)
tree1ff0d760974126dbe87ed2bbb166e593a891d15f
parenta6d8554fa3a0ab024c3d52696e02fd3db6e21006 (diff)
downloadnova-eae906f8a84023ff0f0f3af1196d2af112765501.tar.gz
nova-eae906f8a84023ff0f0f3af1196d2af112765501.tar.xz
nova-eae906f8a84023ff0f0f3af1196d2af112765501.zip
Add SSL support to utils.generate_glance_url().
Since glance now supports SSL, we need to take this into consideration when generating the URL. Also updates and adds a test. A new config option 'glance_protocol' was added that defaults to 'http' since that's what the glance options, '*_client_protocol', default to. Set to 'https' for SSL. Change-Id: Id231a1fd4c4d8e221ae0cf6541181e5572dff02b
-rw-r--r--.mailmap3
-rw-r--r--nova/config.py4
-rw-r--r--nova/tests/test_utils.py14
-rw-r--r--nova/utils.py7
4 files changed, 21 insertions, 7 deletions
diff --git a/.mailmap b/.mailmap
index ac6f75f88..f97171d8d 100644
--- a/.mailmap
+++ b/.mailmap
@@ -37,7 +37,8 @@
<jmckenty@gmail.com> <jmckenty@yyj-dhcp171.corp.flock.com>
<jmckenty@gmail.com> <joshua.mckenty@nasa.gov>
<johannes.erdfelt@rackspace.com> <johannes@compute3.221.st>
-<josh@jk0.org> <josh.kearney@rackspace.com>
+<josh.kearney@pistoncloud.com> <josh.kearney@rackspace.com>
+<josh.kearney@pistoncloud.com> <josh@jk0.org>
<justin@fathomdb.com> <justinsb@justinsb-desktop>
<kshileev@gmail.com> <kshileev@griddynamics.com>
<lorin@nimbisservices.com> <lorin@isi.edu>
diff --git a/nova/config.py b/nova/config.py
index 5755009e1..d1878365b 100644
--- a/nova/config.py
+++ b/nova/config.py
@@ -86,6 +86,10 @@ global_opts = [
cfg.IntOpt('glance_port',
default=9292,
help='default glance port'),
+ cfg.StrOpt('glance_protocol',
+ default='http',
+ help='Default protocol to use when connecting to glance. '
+ 'Set to https for SSL.'),
cfg.ListOpt('glance_api_servers',
default=['$glance_host:$glance_port'],
help='A list of the glance api servers available to nova. '
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index 8bf6df8b5..2ee0bd36f 100644
--- a/nova/tests/test_utils.py
+++ b/nova/tests/test_utils.py
@@ -34,7 +34,9 @@ from nova import test
from nova import utils
CONF = cfg.CONF
+CONF.import_opt('glance_host', 'nova.config')
CONF.import_opt('glance_port', 'nova.config')
+CONF.import_opt('glance_protocol', 'nova.config')
class ByteConversionTest(test.TestCase):
@@ -379,10 +381,16 @@ class GenericUtilsTestCase(test.TestCase):
self.assertFalse(utils.bool_from_str(None))
self.assertFalse(utils.bool_from_str('junk'))
- def test_generate_glance_url(self):
+ def test_generate_glance_http_url(self):
generated_url = utils.generate_glance_url()
- actual_url = "http://%s:%d" % (CONF.glance_host, CONF.glance_port)
- self.assertEqual(generated_url, actual_url)
+ http_url = "http://%s:%d" % (CONF.glance_host, CONF.glance_port)
+ self.assertEqual(generated_url, http_url)
+
+ def test_generate_glance_https_url(self):
+ self.flags(glance_protocol="https")
+ generated_url = utils.generate_glance_url()
+ https_url = "https://%s:%d" % (CONF.glance_host, CONF.glance_port)
+ self.assertEqual(generated_url, https_url)
def test_read_cached_file(self):
self.mox.StubOutWithMock(os.path, "getmtime")
diff --git a/nova/utils.py b/nova/utils.py
index c94cd2c3e..640080a43 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -59,7 +59,9 @@ CONF = cfg.CONF
CONF.register_opt(
cfg.BoolOpt('disable_process_locking', default=False,
help='Whether to disable inter-process locks'))
+CONF.import_opt('glance_host', 'nova.config')
CONF.import_opt('glance_port', 'nova.config')
+CONF.import_opt('glance_protocol', 'nova.config')
CONF.import_opt('instance_usage_audit_period', 'nova.config')
CONF.import_opt('monkey_patch', 'nova.config')
CONF.import_opt('rootwrap_config', 'nova.config')
@@ -905,9 +907,8 @@ def timefunc(func):
def generate_glance_url():
"""Generate the URL to glance."""
- # TODO(jk0): This will eventually need to take SSL into consideration
- # when supported in glance.
- return "http://%s:%d" % (CONF.glance_host, CONF.glance_port)
+ return "%s://%s:%d" % (CONF.glance_protocol, CONF.glance_host,
+ CONF.glance_port)
def generate_image_url(image_ref):