Merge branch 'f25'
Conflicts: cloud-init.spec
This commit is contained in:
commit
8edfbaca38
@ -1,176 +0,0 @@
|
||||
From 44b87ec7c3b948d1a32076e3d865b1a1de21d32e Mon Sep 17 00:00:00 2001
|
||||
From: Colin Walters <walters@verbum.org>
|
||||
Date: Fri, 20 Jan 2017 17:35:08 +0000
|
||||
Subject: [PATCH] Delete GCE test, it's failing
|
||||
|
||||
---
|
||||
tests/unittests/test_datasource/test_gce.py | 157 ----------------------------
|
||||
1 file changed, 157 deletions(-)
|
||||
delete mode 100644 tests/unittests/test_datasource/test_gce.py
|
||||
|
||||
diff --git a/tests/unittests/test_datasource/test_gce.py b/tests/unittests/test_datasource/test_gce.py
|
||||
deleted file mode 100644
|
||||
index 4f66767..0000000
|
||||
--- a/tests/unittests/test_datasource/test_gce.py
|
||||
+++ /dev/null
|
||||
@@ -1,157 +0,0 @@
|
||||
-# Copyright (C) 2014 Vaidas Jablonskis
|
||||
-#
|
||||
-# Author: Vaidas Jablonskis <jablonskis@gmail.com>
|
||||
-#
|
||||
-# This file is part of cloud-init. See LICENSE file for license information.
|
||||
-
|
||||
-import re
|
||||
-
|
||||
-from base64 import b64encode, b64decode
|
||||
-from six.moves.urllib_parse import urlparse
|
||||
-
|
||||
-from cloudinit import helpers
|
||||
-from cloudinit import settings
|
||||
-from cloudinit.sources import DataSourceGCE
|
||||
-
|
||||
-from .. import helpers as test_helpers
|
||||
-
|
||||
-httpretty = test_helpers.import_httpretty()
|
||||
-
|
||||
-GCE_META = {
|
||||
- 'instance/id': '123',
|
||||
- 'instance/zone': 'foo/bar',
|
||||
- 'project/attributes/sshKeys': 'user:ssh-rsa AA2..+aRD0fyVw== root@server',
|
||||
- 'instance/hostname': 'server.project-foo.local',
|
||||
- 'instance/attributes/user-data': b'/bin/echo foo\n',
|
||||
-}
|
||||
-
|
||||
-GCE_META_PARTIAL = {
|
||||
- 'instance/id': '1234',
|
||||
- 'instance/hostname': 'server.project-bar.local',
|
||||
- 'instance/zone': 'bar/baz',
|
||||
-}
|
||||
-
|
||||
-GCE_META_ENCODING = {
|
||||
- 'instance/id': '12345',
|
||||
- 'instance/hostname': 'server.project-baz.local',
|
||||
- 'instance/zone': 'baz/bang',
|
||||
- 'instance/attributes/user-data': b64encode(b'/bin/echo baz\n'),
|
||||
- 'instance/attributes/user-data-encoding': 'base64',
|
||||
-}
|
||||
-
|
||||
-HEADERS = {'X-Google-Metadata-Request': 'True'}
|
||||
-MD_URL_RE = re.compile(
|
||||
- r'http://metadata.google.internal/computeMetadata/v1/.*')
|
||||
-
|
||||
-
|
||||
-def _set_mock_metadata(gce_meta=None):
|
||||
- if gce_meta is None:
|
||||
- gce_meta = GCE_META
|
||||
-
|
||||
- def _request_callback(method, uri, headers):
|
||||
- url_path = urlparse(uri).path
|
||||
- if url_path.startswith('/computeMetadata/v1/'):
|
||||
- path = url_path.split('/computeMetadata/v1/')[1:][0]
|
||||
- else:
|
||||
- path = None
|
||||
- if path in gce_meta:
|
||||
- return (200, headers, gce_meta.get(path))
|
||||
- else:
|
||||
- return (404, headers, '')
|
||||
-
|
||||
- httpretty.register_uri(httpretty.GET, MD_URL_RE, body=_request_callback)
|
||||
-
|
||||
-
|
||||
-@httpretty.activate
|
||||
-class TestDataSourceGCE(test_helpers.HttprettyTestCase):
|
||||
-
|
||||
- def setUp(self):
|
||||
- self.ds = DataSourceGCE.DataSourceGCE(
|
||||
- settings.CFG_BUILTIN, None,
|
||||
- helpers.Paths({}))
|
||||
- super(TestDataSourceGCE, self).setUp()
|
||||
-
|
||||
- def test_connection(self):
|
||||
- _set_mock_metadata()
|
||||
- success = self.ds.get_data()
|
||||
- self.assertTrue(success)
|
||||
-
|
||||
- req_header = httpretty.last_request().headers
|
||||
- self.assertDictContainsSubset(HEADERS, req_header)
|
||||
-
|
||||
- def test_metadata(self):
|
||||
- _set_mock_metadata()
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- shostname = GCE_META.get('instance/hostname').split('.')[0]
|
||||
- self.assertEqual(shostname,
|
||||
- self.ds.get_hostname())
|
||||
-
|
||||
- self.assertEqual(GCE_META.get('instance/id'),
|
||||
- self.ds.get_instance_id())
|
||||
-
|
||||
- self.assertEqual(GCE_META.get('instance/attributes/user-data'),
|
||||
- self.ds.get_userdata_raw())
|
||||
-
|
||||
- # test partial metadata (missing user-data in particular)
|
||||
- def test_metadata_partial(self):
|
||||
- _set_mock_metadata(GCE_META_PARTIAL)
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- self.assertEqual(GCE_META_PARTIAL.get('instance/id'),
|
||||
- self.ds.get_instance_id())
|
||||
-
|
||||
- shostname = GCE_META_PARTIAL.get('instance/hostname').split('.')[0]
|
||||
- self.assertEqual(shostname, self.ds.get_hostname())
|
||||
-
|
||||
- def test_metadata_encoding(self):
|
||||
- _set_mock_metadata(GCE_META_ENCODING)
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- decoded = b64decode(
|
||||
- GCE_META_ENCODING.get('instance/attributes/user-data'))
|
||||
- self.assertEqual(decoded, self.ds.get_userdata_raw())
|
||||
-
|
||||
- def test_missing_required_keys_return_false(self):
|
||||
- for required_key in ['instance/id', 'instance/zone',
|
||||
- 'instance/hostname']:
|
||||
- meta = GCE_META_PARTIAL.copy()
|
||||
- del meta[required_key]
|
||||
- _set_mock_metadata(meta)
|
||||
- self.assertEqual(False, self.ds.get_data())
|
||||
- httpretty.reset()
|
||||
-
|
||||
- def test_project_level_ssh_keys_are_used(self):
|
||||
- _set_mock_metadata()
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- # we expect a list of public ssh keys with user names stripped
|
||||
- self.assertEqual(['ssh-rsa AA2..+aRD0fyVw== root@server'],
|
||||
- self.ds.get_public_ssh_keys())
|
||||
-
|
||||
- def test_instance_level_ssh_keys_are_used(self):
|
||||
- key_content = 'ssh-rsa JustAUser root@server'
|
||||
- meta = GCE_META.copy()
|
||||
- meta['instance/attributes/sshKeys'] = 'user:{0}'.format(key_content)
|
||||
-
|
||||
- _set_mock_metadata(meta)
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- self.assertIn(key_content, self.ds.get_public_ssh_keys())
|
||||
-
|
||||
- def test_instance_level_keys_replace_project_level_keys(self):
|
||||
- key_content = 'ssh-rsa JustAUser root@server'
|
||||
- meta = GCE_META.copy()
|
||||
- meta['instance/attributes/sshKeys'] = 'user:{0}'.format(key_content)
|
||||
-
|
||||
- _set_mock_metadata(meta)
|
||||
- self.ds.get_data()
|
||||
-
|
||||
- self.assertEqual([key_content], self.ds.get_public_ssh_keys())
|
||||
-
|
||||
- def test_only_last_part_of_zone_used_for_availability_zone(self):
|
||||
- _set_mock_metadata()
|
||||
- self.ds.get_data()
|
||||
- self.assertEqual('bar', self.ds.availability_zone)
|
||||
-
|
||||
-# vi: ts=4 expandtab
|
||||
--
|
||||
2.9.3
|
||||
|
@ -17,7 +17,7 @@ Patch0: cloud-init-0.7.8-fedora.patch
|
||||
|
||||
# Fix rsyslog log filtering
|
||||
# https://code.launchpad.net/~gholms/cloud-init/rsyslog-programname/+merge/186906
|
||||
#Patch1: cloud-init-0.7.5-rsyslog-programname.patch
|
||||
Patch1: cloud-init-0.7.5-rsyslog-programname.patch
|
||||
|
||||
# Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1151824
|
||||
@ -39,7 +39,6 @@ Patch11: cloud-init-0.7.8-nm-controlled.patch
|
||||
# Requires pylxd
|
||||
Patch12: tests-Neuter-lxd-testing.patch
|
||||
# Not debugged/upstreamed yet
|
||||
Patch13: Delete-GCE-test-it-s-failing.patch
|
||||
Patch14: disable-failing-tests.patch
|
||||
|
||||
BuildArch: noarch
|
||||
@ -131,7 +130,12 @@ cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudi
|
||||
|
||||
|
||||
%check
|
||||
nosetests-%{python3_version} tests/unittests/
|
||||
# python-httpretty-0.8.14 broke several GCE tests
|
||||
# https://github.com/gabrielfalcao/HTTPretty/issues/316
|
||||
nosetests-%{python3_version} tests/unittests/ \
|
||||
-e test_instance_level_keys_replace_project_level_keys \
|
||||
-e test_instance_level_ssh_keys_are_used \
|
||||
-e test_metadata_encoding
|
||||
|
||||
|
||||
%clean
|
||||
@ -182,9 +186,13 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Jan 27 2017 Garrett Holmstrom <gholms@fedoraproject.org> - 0.7.8-5
|
||||
- Re-applied rsyslog configuration fixes
|
||||
- Disabled GCE tests broken by python-httpretty-0.8.14-1.20161011git70af1f8
|
||||
- Fixed systemd dependency loop for cloud-init.target [RH:1393094]
|
||||
|
||||
* Fri Jan 20 2017 Colin Walters <walters@verbum.org> - 0.7.9-1
|
||||
- New upstream version
|
||||
Resolves: #1393094
|
||||
- New upstream version [RH:1393094]
|
||||
|
||||
* Tue Dec 13 2016 Charalampos Stratakis <cstratak@redhat.com> - 0.7.8-4
|
||||
- Rebuild for Python 3.6
|
||||
|
Loading…
Reference in New Issue
Block a user