From bab5f7dbeeb607231dd75b961b1a0379630070c3 Mon Sep 17 00:00:00 2001 From: Alessandro Pilotti Date: Thu, 27 Feb 2014 22:25:01 +0200 Subject: [PATCH] Adds user_data support for MaaS metadata service Changes also the metadata version in use from "latest" to "2012-03-01" --- cloudbaseinit/metadata/services/maasservice.py | 9 ++++++--- .../tests/metadata/services/test_maasservice.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cloudbaseinit/metadata/services/maasservice.py b/cloudbaseinit/metadata/services/maasservice.py index 2a371ba1..117ce462 100644 --- a/cloudbaseinit/metadata/services/maasservice.py +++ b/cloudbaseinit/metadata/services/maasservice.py @@ -43,12 +43,12 @@ LOG = logging.getLogger(__name__) class MaaSHttpService(base.BaseMetadataService): - _METADATA_LATEST = 'latest' + _METADATA_2012_03_01 = '2012-03-01' def __init__(self): super(MaaSHttpService, self).__init__() self._enable_retry = True - self._metadata_version = self._METADATA_LATEST + self._metadata_version = self._METADATA_2012_03_01 def load(self): super(MaaSHttpService, self).load() @@ -57,7 +57,7 @@ class MaaSHttpService(base.BaseMetadataService): LOG.debug('MaaS metadata url not set') else: try: - self._get_data('latest/meta-data/') + self._get_data('%s/meta-data/' % self._metadata_version) return True except Exception, ex: LOG.exception(ex) @@ -122,3 +122,6 @@ class MaaSHttpService(base.BaseMetadataService): return self._get_list_from_text( self._get_cache_data('%s/meta-data/x509' % self._metadata_version), "%s\n" % x509constants.PEM_FOOTER) + + def get_user_data(self): + return self._get_cache_data('%s/user-data' % self._metadata_version) diff --git a/cloudbaseinit/tests/metadata/services/test_maasservice.py b/cloudbaseinit/tests/metadata/services/test_maasservice.py index fb5528e4..959f2a13 100644 --- a/cloudbaseinit/tests/metadata/services/test_maasservice.py +++ b/cloudbaseinit/tests/metadata/services/test_maasservice.py @@ -40,7 +40,8 @@ class MaaSHttpServiceTest(unittest.TestCase): CONF.set_override('maas_metadata_url', ip) response = self._maasservice.load() if ip is not None: - mock_get_data.assert_called_once_with('latest/meta-data/') + mock_get_data.assert_called_once_with( + '%s/meta-data/' % self._maasservice._metadata_version) self.assertTrue(response) else: self.assertFalse(response) @@ -170,3 +171,12 @@ class MaaSHttpServiceTest(unittest.TestCase): mock_get_list_from_text.assert_called_once_with( mock_get_cache_data(), "%s\n" % x509constants.PEM_FOOTER) self.assertEqual(response, mock_get_list_from_text()) + + @mock.patch("cloudbaseinit.metadata.services.maasservice.MaaSHttpService" + "._get_cache_data") + def test_get_user_data(self, mock_get_cache_data): + response = self._maasservice.get_user_data() + mock_get_cache_data.assert_called_once_with( + '%s/user-data' % + self._maasservice._metadata_version) + self.assertEqual(response, mock_get_cache_data())