From 44fa8f5ad2f86950e47f05cea1bfb50f949d4c98 Mon Sep 17 00:00:00 2001 From: Chad Smith Date: Thu, 10 Feb 2022 11:23:51 -0700 Subject: [PATCH] cloud-id: include trailing newline in /run/cloud-init/cloud-id --- cloudinit/sources/__init__.py | 2 +- tests/unittests/sources/test_init.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cloudinit/sources/__init__.py b/cloudinit/sources/__init__.py index 2d19cbe56df3..88028cfa6e9d 100644 --- a/cloudinit/sources/__init__.py +++ b/cloudinit/sources/__init__.py @@ -413,7 +413,7 @@ def persist_instance_data(self): ) cloud_id = instance_data["v1"].get("cloud_id", "none") cloud_id_file = os.path.join(self.paths.run_dir, "cloud-id") - util.write_file(f"{cloud_id_file}-{cloud_id}", cloud_id) + util.write_file(f"{cloud_id_file}-{cloud_id}", f"{cloud_id}\n") if os.path.exists(cloud_id_file): prev_cloud_id_file = os.path.realpath(cloud_id_file) else: diff --git a/tests/unittests/sources/test_init.py b/tests/unittests/sources/test_init.py index a266a148bf0a..ce8fc9700cd8 100644 --- a/tests/unittests/sources/test_init.py +++ b/tests/unittests/sources/test_init.py @@ -693,7 +693,7 @@ def test_persist_instance_data_writes_canonical_cloud_id_and_symlink(self): "cloudinit.sources.canonical_cloud_id", return_value="my-cloud" ): datasource.get_data() - self.assertEqual("my-cloud", util.load_file(cloud_id_link)) + self.assertEqual("my-cloud\n", util.load_file(cloud_id_link)) # A symlink with the generic /run/cloud-init/cloud-id link is present self.assertTrue(util.is_link(cloud_id_link)) # When cloud-id changes, symlink and content change @@ -701,12 +701,12 @@ def test_persist_instance_data_writes_canonical_cloud_id_and_symlink(self): "cloudinit.sources.canonical_cloud_id", return_value="my-cloud2" ): datasource.persist_instance_data() - self.assertEqual("my-cloud2", util.load_file(cloud_id2_file)) + self.assertEqual("my-cloud2\n", util.load_file(cloud_id2_file)) # Previous cloud-id- file removed self.assertFalse(os.path.exists(cloud_id_file)) # Generic link persisted which contains canonical-cloud-id as content self.assertTrue(util.is_link(cloud_id_link)) - self.assertEqual("my-cloud2", util.load_file(cloud_id_link)) + self.assertEqual("my-cloud2\n", util.load_file(cloud_id_link)) def test_persist_instance_data_writes_network_json_when_set(self): """When network_data.json class attribute is set, persist to json."""