summaryrefslogtreecommitdiff
path: root/tests/unittests/test_datasource/test_openstack.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2018-09-12 18:44:19 +0000
committerServer Team CI Bot <josh.powers+server-team-bot@canonical.com>2018-09-12 18:44:19 +0000
commitc75c582ed1824dc3ff39cefdbddccfc2924b868c (patch)
tree18c6243665e28d029fde5b143cf28010cf6db92e /tests/unittests/test_datasource/test_openstack.py
parentc7555762f3a30190ce7726b4d013bc3e83c7e4b6 (diff)
downloadvyos-cloud-init-c75c582ed1824dc3ff39cefdbddccfc2924b868c.tar.gz
vyos-cloud-init-c75c582ed1824dc3ff39cefdbddccfc2924b868c.zip
OpenStack: fix bug causing 'latest' version to be used from network.
Cloud-init was reading a list of versions from the OpenStack metadata service (http://169.254.169.254/openstack/) and attempt to select the newest known supported version. The problem was that the list of versions was not being decoded, so we were comparing a list of bytes (found versions) to a list of strings (known versions). LP: #1792157
Diffstat (limited to 'tests/unittests/test_datasource/test_openstack.py')
-rw-r--r--tests/unittests/test_datasource/test_openstack.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/unittests/test_datasource/test_openstack.py b/tests/unittests/test_datasource/test_openstack.py
index 6e1e971b..ab5d3adc 100644
--- a/tests/unittests/test_datasource/test_openstack.py
+++ b/tests/unittests/test_datasource/test_openstack.py
@@ -555,4 +555,34 @@ class TestDetectOpenStack(test_helpers.CiTestCase):
m_proc_env.assert_called_with(1)
+class TestMetadataReader(test_helpers.HttprettyTestCase):
+ """Test the MetadataReader."""
+ burl = 'http://169.254.169.254/'
+
+ def register(self, path, body=None, status=200):
+ hp.register_uri(
+ hp.GET, self.burl + "openstack" + path, status=status, body=body)
+
+ def register_versions(self, versions):
+ self.register("", '\n'.join(versions).encode('utf-8'))
+
+ def test__find_working_version(self):
+ """Test a working version ignores unsupported."""
+ unsup = "2016-11-09"
+ self.register_versions(
+ [openstack.OS_FOLSOM, openstack.OS_LIBERTY, unsup,
+ openstack.OS_LATEST])
+ self.assertEqual(
+ openstack.OS_LIBERTY,
+ openstack.MetadataReader(self.burl)._find_working_version())
+
+ def test__find_working_version_uses_latest(self):
+ """'latest' should be used if no supported versions."""
+ unsup1, unsup2 = ("2016-11-09", '2017-06-06')
+ self.register_versions([unsup1, unsup2, openstack.OS_LATEST])
+ self.assertEqual(
+ openstack.OS_LATEST,
+ openstack.MetadataReader(self.burl)._find_working_version())
+
+
# vi: ts=4 expandtab