summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/sources/DataSourceOpenNebula.py5
-rw-r--r--tests/unittests/test_datasource/test_opennebula.py7
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'):