From aea3773cf97e1b1978489e3c6fd37b969a323d32 Mon Sep 17 00:00:00 2001 From: cvstealth Date: Fri, 18 Feb 2022 19:04:04 -0500 Subject: [PATCH 1/3] Add vendordata2 support for ConfigDrive source --- cloudinit/sources/DataSourceConfigDrive.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cloudinit/sources/DataSourceConfigDrive.py b/cloudinit/sources/DataSourceConfigDrive.py index f7c58b12df6..e47e58203c9 100644 --- a/cloudinit/sources/DataSourceConfigDrive.py +++ b/cloudinit/sources/DataSourceConfigDrive.py @@ -149,6 +149,14 @@ def _get_data(self): LOG.warning("Invalid content in vendor-data: %s", e) self.vendordata_raw = None + vd2 = results.get("vendordata2") + self.vendordata2_pure = vd2 + try: + self.vendordata2_raw = sources.convert_vendordata(vd2) + except ValueError as e: + LOG.warning("Invalid content in vendor-data2: %s", e) + self.vendordata2_raw = None + # network_config is an /etc/network/interfaces formated file and is # obsolete compared to networkdata (from network_data.json) but both # might be present. From b4366063845080131ce06f084019f7893661ebfc Mon Sep 17 00:00:00 2001 From: cvstealth Date: Fri, 18 Feb 2022 19:08:17 -0500 Subject: [PATCH 2/3] Add cvstealth as contributor --- tools/.github-cla-signers | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers index ac157a2fba4..191cb1367dd 100644 --- a/tools/.github-cla-signers +++ b/tools/.github-cla-signers @@ -20,6 +20,7 @@ chrislalos ciprianbadescu citrus-it cjp256 +cvstealth dankenigsberg ddymko dermotbradley From d741c2ee894bcdba3b01f10996e8f2120911560a Mon Sep 17 00:00:00 2001 From: cvstealth Date: Fri, 25 Feb 2022 23:18:09 -0500 Subject: [PATCH 3/3] Add vendordata to configdrive unit tests --- tests/unittests/sources/test_configdrive.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/unittests/sources/test_configdrive.py b/tests/unittests/sources/test_configdrive.py index 1fc40a0eb3b..5188ed3230c 100644 --- a/tests/unittests/sources/test_configdrive.py +++ b/tests/unittests/sources/test_configdrive.py @@ -35,6 +35,12 @@ "security-groups": ["default"], } USER_DATA = b"#!/bin/sh\necho This is user data\n" +VENDOR_DATA = { + "magic": "", +} +VENDOR_DATA2 = { + "static": "", +} OSTACK_META = { "availability_zone": "nova", "files": [ @@ -363,10 +369,14 @@ "openstack/content/0001": CONTENT_1, "openstack/latest/meta_data.json": json.dumps(OSTACK_META), "openstack/latest/user_data": USER_DATA, + "openstack/latest/vendor_data.json": json.dumps(VENDOR_DATA), + "openstack/latest/vendor_data2.json": json.dumps(VENDOR_DATA2), "openstack/latest/network_data.json": json.dumps(NETWORK_DATA), "openstack/2015-10-15/meta_data.json": json.dumps(OSTACK_META), "openstack/2015-10-15/user_data": USER_DATA, "openstack/2015-10-15/network_data.json": json.dumps(NETWORK_DATA), + "openstack/2015-10-15/vendor_data.json": json.dumps(VENDOR_DATA), + "openstack/2015-10-15/vendor_data2.json": json.dumps(VENDOR_DATA2), } M_PATH = "cloudinit.sources.DataSourceConfigDrive." @@ -531,6 +541,8 @@ def test_dir_valid(self): self.assertEqual(USER_DATA, found["userdata"]) self.assertEqual(expected_md, found["metadata"]) self.assertEqual(NETWORK_DATA, found["networkdata"]) + self.assertEqual(VENDOR_DATA, found["vendordata"]) + self.assertEqual(VENDOR_DATA2, found["vendordata2"]) self.assertEqual(found["files"]["/etc/foo.cfg"], CONTENT_0) self.assertEqual(found["files"]["/etc/bar/bar.cfg"], CONTENT_1) @@ -1058,6 +1070,8 @@ def populate_ds_from_read_config(cfg_ds, source, results): cfg_ds.metadata = results.get("metadata") cfg_ds.ec2_metadata = results.get("ec2-metadata") cfg_ds.userdata_raw = results.get("userdata") + cfg_ds.vendordata_raw = results.get("vendordata") + cfg_ds.vendordata2_raw = results.get("vendordata2") cfg_ds.version = results.get("version") cfg_ds.network_json = results.get("networkdata") cfg_ds._network_config = openstack.convert_net_json(