Blame SOURCES/sos-bz1776549-podman-buildah-rootless.patch

a02485
From 1875213788f4472cc11ce8e732cd4780e99ca477 Mon Sep 17 00:00:00 2001
a02485
From: Pavel Moravec <pmoravec@redhat.com>
a02485
Date: Fri, 8 May 2020 15:38:36 +0200
a02485
Subject: [PATCH] [containers_common] collect rootless containers info
a02485
a02485
Add the ability to collect data/info about rootless podman/buildah
a02485
containers, in particular:
a02485
a02485
- containers_common plugopt 'rootlessusers' as a list of users to inspect
a02485
- for each user, collect:
a02485
  - its containers config
a02485
  - [podman|buildah] info and [UID|GID] map
a02485
- collect user-status and few user-related config files
a02485
a02485
Resolves: #2055
a02485
a02485
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
a02485
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
a02485
---
a02485
 sos/plugins/containers_common.py | 29 +++++++++++++++++++++++++
a02485
 1 file changed, 29 insertions(+)
a02485
a02485
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
a02485
index 99ae88fe..9a878849 100644
a02485
--- a/sos/plugins/containers_common.py
a02485
+++ b/sos/plugins/containers_common.py
a02485
@@ -9,6 +9,7 @@
a02485
 # See the LICENSE file in the source distribution for further information.
a02485
 
a02485
 from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin
a02485
+import os
a02485
 
a02485
 
a02485
 class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
a02485
@@ -17,11 +18,39 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
a02485
     plugin_name = 'containers_common'
a02485
     profiles = ('container', )
a02485
     packages = ('containers-common', )
a02485
+    option_list = [
a02485
+        ('rootlessusers', 'colon-separated list of users\' containers info',
a02485
+         '', ''),
a02485
+    ]
a02485
 
a02485
     def setup(self):
a02485
         self.add_copy_spec([
a02485
             '/etc/containers/*',
a02485
             '/usr/share/containers/*',
a02485
+            '/etc/subuid',
a02485
+            '/etc/subgid',
a02485
         ])
a02485
+        self.add_cmd_output(['loginctl user-status'])
a02485
+
a02485
+        users_opt = self.get_option('rootlessusers')
a02485
+        users_list = []
a02485
+        if users_opt:
a02485
+            users_list = [x for x in users_opt.split(':') if x]
a02485
+
a02485
+        user_subcmds = [
a02485
+            'info',
a02485
+            'unshare cat /proc/self/uid_map',
a02485
+            'unshare cat /proc/self/gid_map'
a02485
+        ]
a02485
+        for user in users_list:
a02485
+            # collect user's containers' config
a02485
+            self.add_copy_spec(
a02485
+                '%s/.config/containers/' % (os.path.expanduser('~%s') % user))
a02485
+            # collect the user's podman/buildah info and uid/guid maps
a02485
+            for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
a02485
+                for cmd in user_subcmds:
a02485
+                    self.add_cmd_output([
a02485
+                        'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
a02485
+                    ])
a02485
 
a02485
 # vim: set et ts=4 sw=4 :
a02485
-- 
a02485
2.21.3
a02485
a02485
From c2d4c7d1f3ecf6ac59c665cb5138cb2ddda71b3d Mon Sep 17 00:00:00 2001
a02485
From: Pavel Moravec <pmoravec@redhat.com>
a02485
Date: Fri, 22 May 2020 08:17:30 +0200
a02485
Subject: [PATCH] [containers_common] fix user's home expansion
a02485
a02485
Apply os.path.expanduser on ~[user], not ~%s .
a02485
a02485
Relates to: #2082
a02485
a02485
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
a02485
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
a02485
---
a02485
 sos/plugins/containers_common.py | 2 +-
a02485
 1 file changed, 1 insertion(+), 1 deletion(-)
a02485
a02485
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
a02485
index 9a878849..da360c7e 100644
a02485
--- a/sos/plugins/containers_common.py
a02485
+++ b/sos/plugins/containers_common.py
a02485
@@ -45,7 +45,7 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
a02485
         for user in users_list:
a02485
             # collect user's containers' config
a02485
             self.add_copy_spec(
a02485
-                '%s/.config/containers/' % (os.path.expanduser('~%s') % user))
a02485
+                '%s/.config/containers/' % (os.path.expanduser('~%s' % user)))
a02485
             # collect the user's podman/buildah info and uid/guid maps
a02485
             for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
a02485
                 for cmd in user_subcmds:
a02485
-- 
a02485
2.21.3
a02485
a02485
From 569f261801d3a4da2852c0b40be78b701056edaa Mon Sep 17 00:00:00 2001
a02485
From: Pavel Moravec <pmoravec@redhat.com>
a02485
Date: Fri, 22 May 2020 08:20:11 +0200
a02485
Subject: [PATCH] [containers_common] Call machinectl on foreground
a02485
a02485
Commands like:
a02485
a02485
machinectl -q shell user1@ ..
a02485
a02485
hang if not called on foreground / with terminal.
a02485
a02485
Resolves: #2082
a02485
a02485
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
a02485
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
a02485
---
a02485
 sos/plugins/containers_common.py | 2 +-
a02485
 1 file changed, 1 insertion(+), 1 deletion(-)
a02485
a02485
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
a02485
index da360c7e..92c2e9e8 100644
a02485
--- a/sos/plugins/containers_common.py
a02485
+++ b/sos/plugins/containers_common.py
a02485
@@ -51,6 +51,6 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
a02485
                 for cmd in user_subcmds:
a02485
                     self.add_cmd_output([
a02485
                         'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
a02485
-                    ])
a02485
+                    ], foreground=True)
a02485
 
a02485
 # vim: set et ts=4 sw=4 :
a02485
-- 
a02485
2.21.3
a02485
2518e3
From 2b158a5c2a963c52cf5a96b27cc07c73b5829d59 Mon Sep 17 00:00:00 2001
2518e3
From: Pavel Moravec <pmoravec@redhat.com>
2518e3
Date: Thu, 9 Jul 2020 15:38:47 +0200
2518e3
Subject: [PATCH] [containers_common] collect user-related commands outputs
2518e3
2518e3
podman and buildah commands should be collected on per-user basis,
2518e3
as declared by rootlessusers plugin option.
2518e3
2518e3
Resolves: #2145
2518e3
2518e3
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
2518e3
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
2518e3
---
2518e3
 sos/plugins/containers_common.py | 36 ++++++++++++++++++-------
2518e3
 1 file changed, 26 insertions(+), 10 deletions(-)
2518e3
2518e3
diff --git a/sos/plugins/containers_common.py b/sos/plugins/containers_common.py
2518e3
index 92c2e9e8..08962a94 100644
2518e3
--- a/sos/plugins/containers_common.py
2518e3
+++ b/sos/plugins/containers_common.py
2518e3
@@ -30,7 +30,6 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
2518e3
             '/etc/subuid',
2518e3
             '/etc/subgid',
2518e3
         ])
2518e3
-        self.add_cmd_output(['loginctl user-status'])
2518e3
 
2518e3
         users_opt = self.get_option('rootlessusers')
2518e3
         users_list = []
2518e3
@@ -38,19 +37,36 @@ class ContainersCommon(Plugin, RedHatPlugin, UbuntuPlugin):
2518e3
             users_list = [x for x in users_opt.split(':') if x]
2518e3
 
2518e3
         user_subcmds = [
2518e3
-            'info',
2518e3
-            'unshare cat /proc/self/uid_map',
2518e3
-            'unshare cat /proc/self/gid_map'
2518e3
+            'podman info',
2518e3
+            'podman unshare cat /proc/self/uid_map',
2518e3
+            'podman unshare cat /proc/self/gid_map',
2518e3
+            'podman images',
2518e3
+            'podman pod ps',
2518e3
+            'podman port --all',
2518e3
+            'podman ps',
2518e3
+            'podman ps -a',
2518e3
+            'podman stats --no-stream --all',
2518e3
+            'podman version',
2518e3
+            'podman volume ls',
2518e3
+            'buildah info',
2518e3
+            'buildah unshare cat /proc/self/uid_map',
2518e3
+            'buildah unshare cat /proc/self/gid_map',
2518e3
+            'buildah containers',
2518e3
+            'buildah containers --all',
2518e3
+            'buildah images',
2518e3
+            'buildah images --all',
2518e3
+            'buildah version',
2518e3
         ]
2518e3
         for user in users_list:
2518e3
             # collect user's containers' config
2518e3
             self.add_copy_spec(
2518e3
                 '%s/.config/containers/' % (os.path.expanduser('~%s' % user)))
2518e3
-            # collect the user's podman/buildah info and uid/guid maps
2518e3
-            for binary in ['/usr/bin/podman', '/usr/bin/buildah']:
2518e3
-                for cmd in user_subcmds:
2518e3
-                    self.add_cmd_output([
2518e3
-                        'machinectl -q shell %s@ %s %s' % (user, binary, cmd)
2518e3
-                    ], foreground=True)
2518e3
+            # collect user-status
2518e3
+            self.add_cmd_output('loginctl user-status %s' % user)
2518e3
+            # collect the user's related commands
2518e3
+            self.add_cmd_output([
2518e3
+                'machinectl -q shell %s@ /usr/bin/%s' % (user, cmd)
2518e3
+                for cmd in user_subcmds
2518e3
+            ], foreground=True)
2518e3
 
2518e3
 # vim: set et ts=4 sw=4 :
2518e3
-- 
2518e3
2.26.2
2518e3