From 02edad3872b4511fcfd0ba26d644d75999baf091 Mon Sep 17 00:00:00 2001 From: Rick Wright Date: Wed, 22 May 2019 12:59:31 -0700 Subject: Encode hostkey value to utf-8 (needed for Python 3). (#775) --- .../google_compute_engine/instance_setup/instance_setup.py | 1 + .../google_compute_engine/instance_setup/tests/instance_setup_test.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py b/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py index e72534c..d65f642 100755 --- a/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py +++ b/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py @@ -169,6 +169,7 @@ class InstanceSetup(object): """Write a host key to guest attributes, ignoring errors.""" headers = {'Metadata-Flavor': 'Google'} url = '%s/%s/%s' % (GUEST_ATTRIBUTES_URL, HOSTKEY_NAMESPACE, key_type) + key_value = key_value.encode('utf-8') req = PutRequest(url, key_value, headers) try: response = urlrequest.urlopen(req) diff --git a/packages/python-google-compute-engine/google_compute_engine/instance_setup/tests/instance_setup_test.py b/packages/python-google-compute-engine/google_compute_engine/instance_setup/tests/instance_setup_test.py index a59ae0c..4cc33cf 100644 --- a/packages/python-google-compute-engine/google_compute_engine/instance_setup/tests/instance_setup_test.py +++ b/packages/python-google-compute-engine/google_compute_engine/instance_setup/tests/instance_setup_test.py @@ -335,6 +335,7 @@ class InstanceSetupTest(unittest.TestCase): def testWriteHostKeyToGuestAttributes(self, mock_put, mock_urlopen): key_type = 'ssh-rsa' key_value = 'asdfasdf' + encoded_key_value = key_value.encode('utf-8') expected_url = ('http://metadata.google.internal/computeMetadata/v1beta1/' 'instance/guest-attributes/hostkeys/%s' % key_type) headers = {'Metadata-Flavor': 'Google'} @@ -343,7 +344,7 @@ class InstanceSetupTest(unittest.TestCase): self.mock_setup, key_type, key_value) self.mock_logger.info.assert_called_with( 'Wrote %s host key to guest attributes.', key_type) - mock_put.assert_called_with(expected_url, key_value, headers) + mock_put.assert_called_with(expected_url, encoded_key_value, headers) mock_urlopen.side_effect = instance_setup.urlerror.HTTPError( 'http://foo', 403, 'Forbidden', {}, None) -- cgit v1.2.1