Просмотр исходного кода

Merged in ArinToaca/coriolis-core/osmorphing-sles-fix (pull request #104)

Modify suse.py _check_os for proper version and patch level.
Arin Toaca 8 лет назад
Родитель
Сommit
657ad861c1
2 измененных файлов с 6 добавлено и 4 удалено
  1. 2 1
      coriolis/osmorphing/base.py
  2. 4 3
      coriolis/osmorphing/suse.py

+ 2 - 1
coriolis/osmorphing/base.py

@@ -156,8 +156,9 @@ class BaseLinuxOSMorphingTools(BaseOSMorphingTools):
 
 
     def _get_config(self, config_content):
     def _get_config(self, config_content):
         config = {}
         config = {}
+        regex_expr = '(.*[^-\\s])\\s*=\\s*(?:"|\')?([^"\']*)(?:"|\')?\\s*'
         for config_line in config_content.split('\n'):
         for config_line in config_content.split('\n'):
-            m = re.match('(.*)=(?:"|\')?([^"\']*)(?:"|\')?', config_line)
+            m = re.match(regex_expr, config_line)
             if m:
             if m:
                 name, value = m.groups()
                 name, value = m.groups()
                 config[name] = value
                 config[name] = value

+ 4 - 3
coriolis/osmorphing/suse.py

@@ -22,10 +22,11 @@ class BaseSUSEMorphingTools(base.BaseLinuxOSMorphingTools):
         if self._test_path(suse_release_path):
         if self._test_path(suse_release_path):
             out = self._read_file(suse_release_path).decode()
             out = self._read_file(suse_release_path).decode()
             release = out.split('\n')[0]
             release = out.split('\n')[0]
-            version_id = re.findall('^VERSION = (.*)$', out, re.MULTILINE)[0]
-            patch_level = re.findall('^PATCHLEVEL = (.*)$', out, re.MULTILINE)
+            release_info = self._get_config(out)
+            version_id = release_info['VERSION']
+            patch_level = release_info.get('PATCHLEVEL', None)
             if patch_level:
             if patch_level:
-                version_id = "%s.%s" % (version_id, patch_level[1])
+                version_id = "%s.%s" % (version_id, patch_level)
             self._version_id = version_id
             self._version_id = version_id
             return ('SUSE', release)
             return ('SUSE', release)