Skip to content

Commit

Permalink
cloud-id: include trailing newline in /run/cloud-init/cloud-id
Browse files Browse the repository at this point in the history
  • Loading branch information
blackboxsw committed Feb 10, 2022
1 parent 5731a01 commit 44fa8f5
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion cloudinit/sources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 3 additions & 3 deletions tests/unittests/sources/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -693,20 +693,20 @@ 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
with mock.patch(
"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-<cloud-type> 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."""
Expand Down

0 comments on commit 44fa8f5

Please sign in to comment.