Files
ansible-core/suse-distribution-fix.patch

43 lines
2.1 KiB
Diff

From bffda9eb661a8560bb9ac9e240ec70a2552aa2a8 Mon Sep 17 00:00:00 2001
From: HVSharma12 <harshvardhan.sharma@suse.com>
Date: Mon, 26 May 2025 18:08:53 +0530
Subject: [PATCH] Adjust distribution detection logic for SUSE
---
.../module_utils/facts/system/distribution.py | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/lib/ansible/module_utils/facts/system/distribution.py b/lib/ansible/module_utils/facts/system/distribution.py
index 7554ef1ae3..5ec94c92d1 100644
--- a/lib/ansible/module_utils/facts/system/distribution.py
+++ b/lib/ansible/module_utils/facts/system/distribution.py
@@ -311,9 +311,22 @@ class DistributionFiles:
suse_facts['distribution_release'] = release.group(1)
suse_facts['distribution_version'] = collected_facts['distribution_version'] + '.' + release.group(1)
- # See https://www.suse.com/support/kb/doc/?id=000019341 for SLES for SAP
- if os.path.islink('/etc/products.d/baseproduct') and os.path.realpath('/etc/products.d/baseproduct').endswith('SLES_SAP.prod'):
- suse_facts['distribution'] = 'SLES_SAP'
+ # Check VARIANT_ID first for SLES4SAP or SL-Micro
+ variant_id_match = re.search(r'^VARIANT_ID="?([^"\n]*)"?', data, re.MULTILINE)
+ if variant_id_match:
+ variant_id = variant_id_match.group(1)
+ if variant_id in ('server-sap', 'sles-sap'):
+ suse_facts['distribution'] = 'SLES_SAP'
+ elif variant_id == 'transactional':
+ suse_facts['distribution'] = 'SL-Micro'
+ else:
+ # Fallback for older SLES 15 using baseproduct symlink
+ if os.path.islink('/etc/products.d/baseproduct'):
+ resolved = os.path.realpath('/etc/products.d/baseproduct')
+ if resolved.endswith('SLES_SAP.prod'):
+ suse_facts['distribution'] = 'SLES_SAP'
+ elif resolved.endswith('SL-Micro.prod'):
+ suse_facts['distribution'] = 'SL-Micro'
return True, suse_facts
--
2.49.0