From e9dc79f08b2e2560f2a868030f8eca2912b66a47 Mon Sep 17 00:00:00 2001 From: Paula Madalina Crismaru Date: Mon, 10 Apr 2017 15:13:58 +0300 Subject: [PATCH] Adds EC2 userdata execution support Add support for executing userdata when using the EC2 metadata service. Change-Id: Ie9896fb50eab6cf9c4803a92313cae1854aeeeba Implements: blueprint user-data-support-for-aws --- cloudbaseinit/metadata/services/ec2service.py | 4 ++++ cloudbaseinit/tests/metadata/services/test_ec2service.py | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/cloudbaseinit/metadata/services/ec2service.py b/cloudbaseinit/metadata/services/ec2service.py index 52446ddf..6f7f0eb9 100644 --- a/cloudbaseinit/metadata/services/ec2service.py +++ b/cloudbaseinit/metadata/services/ec2service.py @@ -55,6 +55,10 @@ class EC2Service(base.BaseHTTPMetadataService): return self._get_cache_data('%s/meta-data/instance-id' % self._metadata_version, decode=True) + def get_user_data(self): + return self._get_cache_data('%s/user-data' % + self._metadata_version) + def get_public_keys(self): ssh_keys = [] diff --git a/cloudbaseinit/tests/metadata/services/test_ec2service.py b/cloudbaseinit/tests/metadata/services/test_ec2service.py index 15a66eb0..9e11e7e2 100644 --- a/cloudbaseinit/tests/metadata/services/test_ec2service.py +++ b/cloudbaseinit/tests/metadata/services/test_ec2service.py @@ -88,3 +88,11 @@ class EC2ServiceTest(unittest.TestCase): 'idx': 'key'}, decode=True)] self.assertEqual(expected, mock_get_cache_data.call_args_list) self.assertEqual(['fake key'], response) + + @mock.patch('cloudbaseinit.metadata.services.ec2service.EC2Service' + '._get_cache_data') + def test_get_user_data(self, mock_get_cache_data): + response = self._service.get_user_data() + path = '%s/user-data' % self._service._metadata_version + mock_get_cache_data.assert_called_once_with(path) + self.assertEqual(mock_get_cache_data.return_value, response)