summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/config/cc_apt_configure.py7
-rw-r--r--tests/unittests/test_handler/test_handler_apt_conf_v1.py22
2 files changed, 27 insertions, 2 deletions
diff --git a/cloudinit/config/cc_apt_configure.py b/cloudinit/config/cc_apt_configure.py
index 42c56418..fa9505a7 100644
--- a/cloudinit/config/cc_apt_configure.py
+++ b/cloudinit/config/cc_apt_configure.py
@@ -477,8 +477,11 @@ def convert_v2_to_v3_apt_format(oldcfg):
'add_apt_repo_match': 'add_apt_repo_match'}
needtoconvert = []
for oldkey in mapoldkeys:
- if oldcfg.get(oldkey, None) is not None:
- needtoconvert.append(oldkey)
+ if oldkey in oldcfg:
+ if oldcfg[oldkey] in (None, ""):
+ del oldcfg[oldkey]
+ else:
+ needtoconvert.append(oldkey)
# no old config, so no new one to be created
if not needtoconvert:
diff --git a/tests/unittests/test_handler/test_handler_apt_conf_v1.py b/tests/unittests/test_handler/test_handler_apt_conf_v1.py
index 95fd1da2..45714efd 100644
--- a/tests/unittests/test_handler/test_handler_apt_conf_v1.py
+++ b/tests/unittests/test_handler/test_handler_apt_conf_v1.py
@@ -3,6 +3,7 @@ from cloudinit import util
from ..helpers import TestCase
+import copy
import os
import re
import shutil
@@ -106,4 +107,25 @@ class TestAptProxyConfig(TestCase):
self.assertFalse(os.path.isfile(self.cfile))
+class TestConversion(TestCase):
+ def test_convert_with_apt_mirror_as_empty_string(self):
+ # an empty apt_mirror is the same as no apt_mirror
+ empty_m_found = cc_apt_configure.convert_to_v3_apt_format(
+ {'apt_mirror': ''})
+ default_found = cc_apt_configure.convert_to_v3_apt_format({})
+ self.assertEqual(default_found, empty_m_found)
+
+ def test_convert_with_apt_mirror(self):
+ mirror = 'http://my.mirror/ubuntu'
+ f = cc_apt_configure.convert_to_v3_apt_format({'apt_mirror': mirror})
+ self.assertIn(mirror, {m['uri'] for m in f['apt']['primary']})
+
+ def test_no_old_content(self):
+ mirror = 'http://my.mirror/ubuntu'
+ mydata = {'apt': {'primary': {'arches': ['default'], 'uri': mirror}}}
+ expected = copy.deepcopy(mydata)
+ self.assertEqual(expected,
+ cc_apt_configure.convert_to_v3_apt_format(mydata))
+
+
# vi: ts=4 expandtab