From 21d60c4c03eae28cd68345f5ca3f959c9e9b6eaf Mon Sep 17 00:00:00 2001
From: Victor Zhestkov <35733135+vzhestkov@users.noreply.github.com>
Date: Mon, 8 Nov 2021 18:13:59 +0300
Subject: [PATCH] Remove wrong _parse_cpe_name from grains.core (#453)

---
 salt/grains/core.py            | 28 ------------------
 tests/unit/grains/test_core.py | 53 +++++++++++++++++++++++++++-------
 2 files changed, 43 insertions(+), 38 deletions(-)

diff --git a/salt/grains/core.py b/salt/grains/core.py
index 846d2e6e2d..8642ee80ff 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -1660,34 +1660,6 @@ def _parse_cpe_name(cpe):
     return ret
 
 
-def _parse_cpe_name(cpe):
-    '''
-    Parse CPE_NAME data from the os-release
-
-    Info: https://csrc.nist.gov/projects/security-content-automation-protocol/scap-specifications/cpe
-
-    :param cpe:
-    :return:
-    '''
-    part = {
-        'o': 'operating system',
-        'h': 'hardware',
-        'a': 'application',
-    }
-    ret = {}
-    cpe = (cpe or '').split(':')
-    if len(cpe) > 4 and cpe[0] == 'cpe':
-        if cpe[1].startswith('/'):  # WFN to URI
-            ret['vendor'], ret['product'], ret['version'] = cpe[2:5]
-            ret['phase'] = cpe[5] if len(cpe) > 5 else None
-            ret['part'] = part.get(cpe[1][1:])
-        elif len(cpe) == 13 and cpe[1] == '2.3':  # WFN to a string
-            ret['vendor'], ret['product'], ret['version'], ret['phase'] = [x if x != '*' else None for x in cpe[3:7]]
-            ret['part'] = part.get(cpe[2])
-
-    return ret
-
-
 def os_data():
     '''
     Return grains pertaining to the operating system
diff --git a/tests/unit/grains/test_core.py b/tests/unit/grains/test_core.py
index 9ea1727058..0d57a142c5 100644
--- a/tests/unit/grains/test_core.py
+++ b/tests/unit/grains/test_core.py
@@ -109,16 +109,49 @@ class CoreGrainsTestCase(TestCase, LoaderModuleMockMixin):
         '''
         Parse correct CPE_NAME data v2.3 formatted
         :return:
-        '''
-        for cpe, cpe_ret in [('cpe:2.3:o:microsoft:windows_xp:5.1.601:beta:*:*:*:*:*:*',
-                              {'phase': 'beta', 'version': '5.1.601', 'product': 'windows_xp',
-                               'vendor': 'microsoft', 'part': 'operating system'}),
-                             ('cpe:2.3:h:corellian:millenium_falcon:1.0:*:*:*:*:*:*:*',
-                              {'phase': None, 'version': '1.0', 'product': 'millenium_falcon',
-                               'vendor': 'corellian', 'part': 'hardware'}),
-                             ('cpe:2.3:*:dark_empire:light_saber:3.0:beta:*:*:*:*:*:*',
-                              {'phase': 'beta', 'version': '3.0', 'product': 'light_saber',
-                               'vendor': 'dark_empire', 'part': None})]:
+        """
+        for cpe, cpe_ret in [
+            (
+                "cpe:2.3:o:microsoft:windows_xp:5.1.601:beta:*:*:*:*:*:*",
+                {
+                    "phase": "beta",
+                    "version": "5.1.601",
+                    "product": "windows_xp",
+                    "vendor": "microsoft",
+                    "part": "operating system",
+                },
+            ),
+            (
+                "cpe:2.3:h:corellian:millenium_falcon:1.0:*:*:*:*:*:*:*",
+                {
+                    "phase": None,
+                    "version": "1.0",
+                    "product": "millenium_falcon",
+                    "vendor": "corellian",
+                    "part": "hardware",
+                },
+            ),
+            (
+                "cpe:2.3:*:dark_empire:light_saber:3.0:beta:*:*:*:*:*:*",
+                {
+                    "phase": "beta",
+                    "version": "3.0",
+                    "product": "light_saber",
+                    "vendor": "dark_empire",
+                    "part": None,
+                },
+            ),
+            (
+                "cpe:2.3:o:amazon:amazon_linux:2",
+                {
+                    "phase": None,
+                    "version": "2",
+                    "product": "amazon_linux",
+                    "vendor": "amazon",
+                    "part": "operating system",
+                },
+            ),
+        ]:
             ret = core._parse_cpe_name(cpe)
             for key in cpe_ret:
                 assert key in ret
-- 
2.33.1


