diff options
| -rw-r--r-- | cloudinit/sources/DataSourceOpenNebula.py | 5 | ||||
| -rw-r--r-- | tests/unittests/test_datasource/test_opennebula.py | 7 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/cloudinit/sources/DataSourceOpenNebula.py b/cloudinit/sources/DataSourceOpenNebula.py index d91b80ab..34557f8b 100644 --- a/cloudinit/sources/DataSourceOpenNebula.py +++ b/cloudinit/sources/DataSourceOpenNebula.py @@ -422,8 +422,9 @@ def read_context_disk_dir(source_dir, asuser=None):      # b64decode user data if necessary (default)      if 'userdata' in results: -        userdata_encoding = context.get('USERDATA_ENCODING', None) -        if userdata_encoding in (None, "base64"): +        encoding = context.get('USERDATA_ENCODING', +                               context.get('USER_DATA_ENCODING')) +        if encoding == "base64":              try:                  results['userdata'] = base64.b64decode(results['userdata'])              except TypeError: diff --git a/tests/unittests/test_datasource/test_opennebula.py b/tests/unittests/test_datasource/test_opennebula.py index 47e7acbc..ec6b752b 100644 --- a/tests/unittests/test_datasource/test_opennebula.py +++ b/tests/unittests/test_datasource/test_opennebula.py @@ -175,14 +175,15 @@ class TestOpenNebulaDataSource(MockerTestCase):              self.assertTrue('userdata' in results)              self.assertEqual(USER_DATA, results['userdata']) -    def test_user_data_default_encoding(self): +    def test_user_data_encoding_required_for_decode(self): +        b64userdata = b64encode(USER_DATA)          for k in ('USER_DATA', 'USERDATA'):              my_d = os.path.join(self.tmp, k) -            populate_context_dir(my_d, {k: b64encode(USER_DATA)}) +            populate_context_dir(my_d, {k: b64userdata})              results = ds.read_context_disk_dir(my_d)              self.assertTrue('userdata' in results) -            self.assertEqual(USER_DATA, results['userdata']) +            self.assertEqual(b64userdata, results['userdata'])      def test_user_data_base64_encoding(self):          for k in ('USER_DATA', 'USERDATA'): | 
