فهرست منبع

Enable CentOS Stream detection

Enables detection and validates `CentOS Stream` for OSMorphing
Daniel Vincze 2 سال پیش
والد
کامیت
8d06b53e2c
2فایلهای تغییر یافته به همراه12 افزوده شده و 7 حذف شده
  1. 4 2
      coriolis/osmorphing/centos.py
  2. 8 5
      coriolis/osmorphing/osdetect/centos.py

+ 4 - 2
coriolis/osmorphing/centos.py

@@ -7,14 +7,16 @@ from coriolis.osmorphing.osdetect import centos as centos_detect
 
 
 
 
 CENTOS_DISTRO_IDENTIFIER = centos_detect.CENTOS_DISTRO_IDENTIFIER
 CENTOS_DISTRO_IDENTIFIER = centos_detect.CENTOS_DISTRO_IDENTIFIER
+CENTOS_STREAM_DISTRO_IDENTIFIER = centos_detect.CENTOS_STREAM_DISTRO_IDENTIFIER
 
 
 
 
 class BaseCentOSMorphingTools(redhat.BaseRedHatMorphingTools):
 class BaseCentOSMorphingTools(redhat.BaseRedHatMorphingTools):
 
 
     @classmethod
     @classmethod
     def check_os_supported(cls, detected_os_info):
     def check_os_supported(cls, detected_os_info):
-        if detected_os_info['distribution_name'] != (
-                CENTOS_DISTRO_IDENTIFIER):
+        supported_oses = [
+            CENTOS_STREAM_DISTRO_IDENTIFIER, CENTOS_DISTRO_IDENTIFIER]
+        if detected_os_info['distribution_name'] not in supported_oses:
             return False
             return False
         return cls._version_supported_util(
         return cls._version_supported_util(
             detected_os_info['release_version'], minimum=6)
             detected_os_info['release_version'], minimum=6)

+ 8 - 5
coriolis/osmorphing/osdetect/centos.py

@@ -4,13 +4,13 @@
 import re
 import re
 
 
 from oslo_log import log as logging
 from oslo_log import log as logging
-
 from coriolis import constants
 from coriolis import constants
 from coriolis.osmorphing.osdetect import base
 from coriolis.osmorphing.osdetect import base
 
 
 
 
 LOG = logging.getLogger(__name__)
 LOG = logging.getLogger(__name__)
 CENTOS_DISTRO_IDENTIFIER = "CentOS"
 CENTOS_DISTRO_IDENTIFIER = "CentOS"
+CENTOS_STREAM_DISTRO_IDENTIFIER = "CentOS Stream"
 
 
 
 
 class CentOSOSDetectTools(base.BaseLinuxOSDetectTools):
 class CentOSOSDetectTools(base.BaseLinuxOSDetectTools):
@@ -22,19 +22,22 @@ class CentOSOSDetectTools(base.BaseLinuxOSDetectTools):
             release_info = self._read_file(
             release_info = self._read_file(
                 redhat_release_path).decode().splitlines()
                 redhat_release_path).decode().splitlines()
             if release_info:
             if release_info:
-                m = re.match(r"^(.*) release ([0-9].*) \((.*)\).*$",
+                m = re.match(r"^(.*) release ([0-9](\.[0-9])*)( \(.*\))?.*$",
                              release_info[0].strip())
                              release_info[0].strip())
                 if m:
                 if m:
-                    distro, version, _ = m.groups()
+                    distro, version, _, _ = m.groups()
                     if CENTOS_DISTRO_IDENTIFIER not in distro:
                     if CENTOS_DISTRO_IDENTIFIER not in distro:
                         LOG.debug(
                         LOG.debug(
                             "Distro does not appear to be a CentOS: %s", distro)
                             "Distro does not appear to be a CentOS: %s", distro)
                         return {}
                         return {}
 
 
+                    distribution_name = CENTOS_DISTRO_IDENTIFIER
+                    if CENTOS_STREAM_DISTRO_IDENTIFIER in distro:
+                        distribution_name = CENTOS_STREAM_DISTRO_IDENTIFIER
                     info = {
                     info = {
                         "os_type": constants.OS_TYPE_LINUX,
                         "os_type": constants.OS_TYPE_LINUX,
-                        "distribution_name": CENTOS_DISTRO_IDENTIFIER,
+                        "distribution_name": distribution_name,
                         "release_version": version,
                         "release_version": version,
                         "friendly_release_name": "%s Version %s" % (
                         "friendly_release_name": "%s Version %s" % (
-                            CENTOS_DISTRO_IDENTIFIER, version)}
+                            distribution_name, version)}
         return info
         return info