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
This commit is contained in:
Paula Madalina Crismaru 2017-04-10 15:13:58 +03:00
parent 834f19058c
commit e9dc79f08b
2 changed files with 12 additions and 0 deletions

View File

@ -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 = []

View File

@ -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)