summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/sources/DataSourceAzure.py2
-rw-r--r--tests/unittests/test_datasource/test_azure.py15
2 files changed, 17 insertions, 0 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index 4bcbf3a4..0bb7fad9 100644
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -223,6 +223,8 @@ DEF_PASSWD_REDACTION = 'REDACTED'
def get_hostname(hostname_command='hostname'):
+ if not isinstance(hostname_command, (list, tuple)):
+ hostname_command = (hostname_command,)
return util.subp(hostname_command, capture=True)[0].strip()
diff --git a/tests/unittests/test_datasource/test_azure.py b/tests/unittests/test_datasource/test_azure.py
index 254e9876..da7da0ca 100644
--- a/tests/unittests/test_datasource/test_azure.py
+++ b/tests/unittests/test_datasource/test_azure.py
@@ -643,6 +643,21 @@ fdescfs /dev/fd fdescfs rw 0 0
expected_config['config'].append(blacklist_config)
self.assertEqual(netconfig, expected_config)
+ @mock.patch("cloudinit.sources.DataSourceAzure.util.subp")
+ def test_get_hostname_with_no_args(self, subp):
+ dsaz.get_hostname()
+ subp.assert_called_once_with(("hostname",), capture=True)
+
+ @mock.patch("cloudinit.sources.DataSourceAzure.util.subp")
+ def test_get_hostname_with_string_arg(self, subp):
+ dsaz.get_hostname(hostname_command="hostname")
+ subp.assert_called_once_with(("hostname",), capture=True)
+
+ @mock.patch("cloudinit.sources.DataSourceAzure.util.subp")
+ def test_get_hostname_with_iterable_arg(self, subp):
+ dsaz.get_hostname(hostname_command=("hostname",))
+ subp.assert_called_once_with(("hostname",), capture=True)
+
class TestAzureBounce(CiTestCase):