diff --git a/ci-fix-Always-use-single-datasource-if-specified-5098.patch b/ci-fix-Always-use-single-datasource-if-specified-5098.patch new file mode 100644 index 0000000..53e4689 --- /dev/null +++ b/ci-fix-Always-use-single-datasource-if-specified-5098.patch @@ -0,0 +1,66 @@ +From 4e5b1ed68014b81ca2ef2f07675f2a43cf03c5c3 Mon Sep 17 00:00:00 2001 +From: James Falcon +Date: Tue, 26 Mar 2024 15:55:50 -0500 +Subject: [PATCH] fix: Always use single datasource if specified (#5098) + +RH-Author: Ani Sinha +RH-MergeRequest: 135: fix: Always use single datasource if specified (#5098) +RH-Jira: RHEL-36701 +RH-Acked-by: Emanuele Giuseppe Esposito +RH-Acked-by: Cathy Avery +RH-Commit: [1/1] 491f053f7d758f1a0ca8918d1449cc2f7838291f + +This change may require a user to add `None` to the `datasource_list` +defined in `/etc/cloud/cloud.cfg[.d]` if they have a customized +datasource_list and want the DataSourceNone fallback behavior. + +ds-identify would automatically append "None" to the datasource_list +if a single entry was provided in /etc/cloud/cloud.cfg[.d]. +This wasn't a problem in the past as the python code would detect +a single datasource along with None as an indication to automatically +use that datasource. Since the python code no longer does that, +we should ensure that one specified datasource results in one specified +datasource after ds-identify has run. + +Fixes GH-5091 + +(cherry picked from commit cdbbd17ae400e432d13f674c18a6f5c873fa328b) +Signed-off-by: Ani Sinha +--- + tests/unittests/test_ds_identify.py | 2 +- + tools/ds-identify | 6 +++++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/tests/unittests/test_ds_identify.py b/tests/unittests/test_ds_identify.py +index ba0bf779..acbf3f03 100644 +--- a/tests/unittests/test_ds_identify.py ++++ b/tests/unittests/test_ds_identify.py +@@ -522,7 +522,7 @@ class TestDsIdentify(DsIdentifyBase): + mydata = copy.deepcopy(VALID_CFG["Ec2-hvm"]) + cfgpath = "etc/cloud/cloud.cfg.d/myds.cfg" + mydata["files"][cfgpath] = 'datasource_list: ["NoCloud"]\n' +- self._check_via_dict(mydata, rc=RC_FOUND, dslist=["NoCloud", DS_NONE]) ++ self._check_via_dict(mydata, rc=RC_FOUND, dslist=["NoCloud"]) + + def test_configured_list_with_none(self): + """When datasource_list already contains None, None is not added. +diff --git a/tools/ds-identify b/tools/ds-identify +index ec2cc18a..6e49ded3 100755 +--- a/tools/ds-identify ++++ b/tools/ds-identify +@@ -1865,7 +1865,11 @@ _main() { + # if there is only a single entry in $DI_DSLIST + if [ $# -eq 1 ] || [ $# -eq 2 -a "$2" = "None" ] ; then + debug 1 "single entry in datasource_list ($DI_DSLIST) use that." +- found "$@" ++ if [ $# -eq 1 ]; then ++ write_result "datasource_list: [ $1 ]" ++ else ++ found "$@" ++ fi + return + fi + +-- +2.45.1 + diff --git a/cloud-init.spec b/cloud-init.spec index f29cfe4..5cd4a40 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -6,7 +6,7 @@ Name: cloud-init Version: 23.4 -Release: 7%{?dist}.2 +Release: 7%{?dist}.3 Summary: Cloud instance init scripts Group: System Environment/Base @@ -47,6 +47,8 @@ Patch25: ci-feat-apply-global-DNS-to-interfaces-in-network-manag.patch Patch26: ci-fix-Undeprecate-network-in-schema-route-definition-5.patch # For RHEL-32841 - [cloud-init][ESXi]VMware datasource resets on every boot causing it to lose network configuration [rhel-8.10.z] Patch27: ci-fix-Fall-back-to-cached-local-ds-if-no-valid-ds-foun.patch +# For RHEL-36701 - DataSourceNoCloudNet not configurable via config files [rhel-8.10.z] +Patch28: ci-fix-Always-use-single-datasource-if-specified-5098.patch BuildArch: noarch @@ -262,6 +264,11 @@ fi %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf %changelog +* Wed May 29 2024 Jon Maloy - 23.4-7.el8.3 +- ci-fix-Always-use-single-datasource-if-specified-5098.patch [RHEL-36701] +- Resolves: RHEL-36701 + (DataSourceNoCloudNet not configurable via config files [rhel-8.10.z]) + * Tue Apr 23 2024 Miroslav Rezanina - 23.4-7.el8_10.2 - ci-fix-Fall-back-to-cached-local-ds-if-no-valid-ds-foun.patch [RHEL-32841] - Resolves: RHEL-32841