]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cephadm: update hosts_facts to read apparmor profile names with spaces
authorJohn Mulligan <jmulligan@redhat.com>
Mon, 10 Jun 2024 18:30:31 +0000 (14:30 -0400)
committerAdam King <adking@redhat.com>
Fri, 7 Feb 2025 20:40:26 +0000 (15:40 -0500)
Fixes: https://tracker.ceph.com/issues/66389
Update the host_facts class kernel_security method to correctly read
apparmor profile names that have spaces in them. Update the test to
verify this functionality.

Original-version-by: Sebastian Marsching <sebastian.marsching-git-2016@aquenos.com>
Signed-off-by: John Mulligan <jmulligan@redhat.com>
(cherry picked from commit d40fe10b8a75402d518fb54f58c689331c854778)

Conflicts:
src/cephadm/cephadmlib/host_facts.py

src/cephadm/cephadm.py
src/cephadm/tests/test_enclosure.py

index c718106400f192ed42064f2eded12e7d177e5966..26b5f4c708c3fb92ba75c4b43f3ba2dbdb8ad137 100755 (executable)
@@ -9838,8 +9838,9 @@ class HostFacts():
                     else:
                         summary = {}  # type: Dict[str, int]
                         for line in profiles.split('\n'):
-                            item, mode = line.split(' ')
-                            mode = mode.strip('()')
+                            mode = line.rsplit(' ', 1)[-1]
+                            assert mode[0] == '(' and mode[-1] == ')'
+                            mode = mode[1:-1]
                             if mode in summary:
                                 summary[mode] += 1
                             else:
index b825fb6b32e4e37577ba5be4270608060e9e9875..64643e4c224a27ed8ffc6a1899ead3295be3aecd 100644 (file)
@@ -81,9 +81,8 @@ def test_host_facts_security(cephadm_fs):
         '/usr/bin/man (enforce)',
         '1password (unconfined)',
         'Discord (unconfined)',
-        # These examples with spaces in the name fail currently
-        # 'MongoDB Compass (unconfined)',
-        # 'profile name with spaces (enforce)',
+        'MongoDB Compass (unconfined)',
+        'profile name with spaces (enforce)',
     ]
     cephadm_fs.create_file(
         '/sys/kernel/security/apparmor/profiles',
@@ -103,5 +102,5 @@ def test_host_facts_security(cephadm_fs):
     assert ksec['type'] == 'AppArmor'
     assert ksec['type'] == 'AppArmor'
     assert ksec['complain'] == 0
-    assert ksec['enforce'] == 0
-    assert ksec['unconfined'] == 1
+    assert ksec['enforce'] == 1
+    assert ksec['unconfined'] == 2