Blame SOURCES/sos-bz1506908-openstack-containerized.patch

7b9b39
From e63c17d902f99d96cbd4cb2a06d9cbbf8a4d4c18 Mon Sep 17 00:00:00 2001
7b9b39
From: Martin Schuppert <mschuppert@redhat.com>
7b9b39
Date: Tue, 7 Nov 2017 18:07:47 +0100
7b9b39
Subject: [PATCH] [openstack_nova] added missing nova container config
7b9b39
7b9b39
Tripleo Pike opinionated config+log paths to be collected
7b9b39
for services, when running in containers.
7b9b39
7b9b39
The nova configuration for the nova and placement container
7b9b39
was included, but the nova configuration libvirt container
7b9b39
was missing. Also the httpd configs for the nova contaier
7b9b39
were added.
7b9b39
7b9b39
This is a change to #1130
7b9b39
7b9b39
Signed-off-by: Martin Schuppert mschuppe@redhat.com
7b9b39
---
7b9b39
 sos/plugins/openstack_nova.py | 6 +++++-
7b9b39
 1 file changed, 5 insertions(+), 1 deletion(-)
7b9b39
7b9b39
diff --git a/sos/plugins/openstack_nova.py b/sos/plugins/openstack_nova.py
7b9b39
index 1fbfa76a..cdd29760 100644
7b9b39
--- a/sos/plugins/openstack_nova.py
7b9b39
+++ b/sos/plugins/openstack_nova.py
7b9b39
@@ -87,7 +87,10 @@ class OpenStackNova(Plugin):
7b9b39
             "/etc/nova/",
7b9b39
             self.var_puppet_gen + "/etc/nova/",
7b9b39
             self.var_puppet_gen + "/etc/my.cnf.d/tripleo.cnf",
7b9b39
-            self.var_puppet_gen + "_placement/var/spool/cron/nova",
7b9b39
+            self.var_puppet_gen + "/var/spool/cron/nova",
7b9b39
+            self.var_puppet_gen + "/etc/httpd/conf/",
7b9b39
+            self.var_puppet_gen + "/etc/httpd/conf.d/",
7b9b39
+            self.var_puppet_gen + "/etc/httpd/conf.modules.d/*.conf",
7b9b39
             self.var_puppet_gen + "_placement/etc/nova/",
7b9b39
             self.var_puppet_gen + "_placement/etc/httpd/conf/",
7b9b39
             self.var_puppet_gen + "_placement/etc/httpd/conf.d/",
7b9b39
@@ -96,6 +99,7 @@ class OpenStackNova(Plugin):
7b9b39
             self.var_puppet_gen + "/../memcached/etc/sysconfig/memcached",
7b9b39
             self.var_puppet_gen + "_libvirt/etc/libvirt/",
7b9b39
             self.var_puppet_gen + "_libvirt/etc/my.cnf.d/tripleo.cnf",
7b9b39
+            self.var_puppet_gen + "_libvirt/etc/nova/",
7b9b39
             self.var_puppet_gen + "_libvirt/etc/nova/migration/"
7b9b39
             "authorized_keys",
7b9b39
             self.var_puppet_gen + "_libvirt/var/lib/nova/.ssh/config",
7b9b39
-- 
7b9b39
2.13.6
7b9b39
7b9b39
From 410733862a1f5ea1f9666d1fa41a7b5d3390e3c6 Mon Sep 17 00:00:00 2001
7b9b39
From: Martin Schuppert <mschuppert@redhat.com>
7b9b39
Date: Wed, 8 Nov 2017 17:57:54 +0100
7b9b39
Subject: [PATCH] [openstack_[glance|heat|cinder|nova]] limit command run
7b9b39
7b9b39
Collect "glance-manage db_version" and similar commands from the
7b9b39
four plugins only if the relevant services or containers are
7b9b39
running. Otherwise the commands get stuck and timeout.
7b9b39
7b9b39
This is an enhancement to #1124 to check for containers + do the
7b9b39
same for nova + cinder.
7b9b39
7b9b39
Signed-off-by: Martin Schuppert mschuppe@redhat.com
7b9b39
7b9b39
Edited to remove use of shell syntax.
7b9b39
7b9b39
Fixes: #1139
7b9b39
7b9b39
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
7b9b39
---
7b9b39
 sos/plugins/openstack_cinder.py | 30 ++++++++++---
7b9b39
 sos/plugins/openstack_glance.py | 33 +++++++++++----
7b9b39
 sos/plugins/openstack_heat.py   | 23 ++++++++--
7b9b39
 sos/plugins/openstack_nova.py   | 94 +++++++++++++++++++++++++++--------------
7b9b39
 4 files changed, 129 insertions(+), 51 deletions(-)
7b9b39
7b9b39
diff --git a/sos/plugins/openstack_cinder.py b/sos/plugins/openstack_cinder.py
7b9b39
index abfd267b..a023105c 100644
7b9b39
--- a/sos/plugins/openstack_cinder.py
7b9b39
+++ b/sos/plugins/openstack_cinder.py
7b9b39
@@ -27,16 +27,34 @@ class OpenStackCinder(Plugin):
7b9b39
     plugin_name = "openstack_cinder"
7b9b39
     profiles = ('openstack', 'openstack_controller')
7b9b39
 
7b9b39
-    option_list = [("db", "gathers openstack cinder db version", "slow",
7b9b39
-                    False)]
7b9b39
-
7b9b39
     var_puppet_gen = "/var/lib/config-data/puppet-generated/cinder"
7b9b39
 
7b9b39
     def setup(self):
7b9b39
-        if self.get_option("db"):
7b9b39
+
7b9b39
+        # collect commands output only if the openstack-cinder-api service
7b9b39
+        # is running
7b9b39
+        service_status = self.get_command_output(
7b9b39
+            "systemctl status openstack-cinder-api.service"
7b9b39
+        )
7b9b39
+
7b9b39
+        container_status = self.get_command_output("docker ps")
7b9b39
+        in_container = False
7b9b39
+        if container_status['status'] == 0:
7b9b39
+            for line in container_status['output'].splitlines():
7b9b39
+                if line.endswith("cinder_api"):
7b9b39
+                    in_container = True
7b9b39
+
7b9b39
+        if (service_status['status'] == 0) or in_container:
7b9b39
+            cinder_config = ""
7b9b39
+            # if containerized we need to pass the config to the cont.
7b9b39
+            if in_container:
7b9b39
+                cinder_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
+                                "/etc/cinder/"
7b9b39
+
7b9b39
             self.add_cmd_output(
7b9b39
-                "cinder-manage db version",
7b9b39
-                suggest_filename="cinder_db_version")
7b9b39
+                "cinder-manage " + cinder_config + " db version",
7b9b39
+                suggest_filename="cinder_db_version"
7b9b39
+            )
7b9b39
 
7b9b39
         self.add_copy_spec([
7b9b39
             "/etc/cinder/",
7b9b39
diff --git a/sos/plugins/openstack_glance.py b/sos/plugins/openstack_glance.py
7b9b39
index fdd789a8..4cdc6dc6 100644
7b9b39
--- a/sos/plugins/openstack_glance.py
7b9b39
+++ b/sos/plugins/openstack_glance.py
7b9b39
@@ -54,22 +54,37 @@ class OpenStackGlance(Plugin):
7b9b39
         if self.get_option("verify"):
7b9b39
             self.add_cmd_output("rpm -V %s" % ' '.join(self.packages))
7b9b39
 
7b9b39
-        vars_all = [p in os.environ for p in [
7b9b39
-                    'OS_USERNAME', 'OS_PASSWORD']]
7b9b39
-
7b9b39
-        vars_any = [p in os.environ for p in [
7b9b39
-                    'OS_TENANT_NAME', 'OS_PROJECT_NAME']]
7b9b39
-
7b9b39
         # collect commands output only if the openstack-glance-api service
7b9b39
         # is running
7b9b39
         service_status = self.get_command_output(
7b9b39
-                "systemctl status openstack-glance-api.service"
7b9b39
+            "systemctl status openstack-glance-api.service"
7b9b39
         )
7b9b39
-        if service_status['status'] == 0:
7b9b39
+
7b9b39
+        container_status = self.get_command_output("docker ps")
7b9b39
+        in_container = False
7b9b39
+        if container_status['status'] == 0:
7b9b39
+            for line in container_status['output'].splitlines():
7b9b39
+                if line.endswith("cinder_api"):
7b9b39
+                    in_container = True
7b9b39
+
7b9b39
+        if (service_status['status'] == 0) or in_container:
7b9b39
+            glance_config = ""
7b9b39
+            # if containerized we need to pass the config to the cont.
7b9b39
+            if in_container:
7b9b39
+                glance_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
+                                "/etc/glance/"
7b9b39
+
7b9b39
             self.add_cmd_output(
7b9b39
-                "glance-manage db_version",
7b9b39
+                "glance-manage " + glance_config + " db_version",
7b9b39
                 suggest_filename="glance_db_version"
7b9b39
             )
7b9b39
+
7b9b39
+            vars_all = [p in os.environ for p in [
7b9b39
+                        'OS_USERNAME', 'OS_PASSWORD']]
7b9b39
+
7b9b39
+            vars_any = [p in os.environ for p in [
7b9b39
+                        'OS_TENANT_NAME', 'OS_PROJECT_NAME']]
7b9b39
+
7b9b39
             if not (all(vars_all) and any(vars_any)):
7b9b39
                 self.soslog.warning("Not all environment variables set. "
7b9b39
                                     "Source the environment file for the user "
7b9b39
diff --git a/sos/plugins/openstack_heat.py b/sos/plugins/openstack_heat.py
7b9b39
index de34ed15..e3395fab 100644
7b9b39
--- a/sos/plugins/openstack_heat.py
7b9b39
+++ b/sos/plugins/openstack_heat.py
7b9b39
@@ -32,11 +32,26 @@ class OpenStackHeat(Plugin):
7b9b39
 
7b9b39
         # collect commands output only if the openstack-heat-api service
7b9b39
         # is running
7b9b39
-        service_status = self.get_command_output("systemctl status "
7b9b39
-                                                 "openstack-heat-api.service")
7b9b39
-        if service_status['status'] == 0:
7b9b39
+        service_status = self.get_command_output(
7b9b39
+            "systemctl status openstack-heat-api.service"
7b9b39
+        )
7b9b39
+
7b9b39
+        container_status = self.get_command_output("docker ps")
7b9b39
+        in_container = False
7b9b39
+        if container_status['status'] == 0:
7b9b39
+            for line in container_status['output'].splitlines():
7b9b39
+                if line.endswith("cinder_api"):
7b9b39
+                    in_container = True
7b9b39
+
7b9b39
+        if (service_status['status'] == 0) or in_container:
7b9b39
+            heat_config = ""
7b9b39
+            # if containerized we need to pass the config to the cont.
7b9b39
+            if in_container:
7b9b39
+                heat_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
+                                "_api/etc/heat/"
7b9b39
+
7b9b39
             self.add_cmd_output(
7b9b39
-                "heat-manage db_version",
7b9b39
+                "heat-manage " + heat_config + " db_version",
7b9b39
                 suggest_filename="heat_db_version"
7b9b39
             )
7b9b39
 
7b9b39
diff --git a/sos/plugins/openstack_nova.py b/sos/plugins/openstack_nova.py
7b9b39
index cdd29760..e8839a2a 100644
7b9b39
--- a/sos/plugins/openstack_nova.py
7b9b39
+++ b/sos/plugins/openstack_nova.py
7b9b39
@@ -32,40 +32,70 @@ class OpenStackNova(Plugin):
7b9b39
     var_puppet_gen = "/var/lib/config-data/puppet-generated/nova"
7b9b39
 
7b9b39
     def setup(self):
7b9b39
-        # commands we do not need to source the environment file
7b9b39
-        self.add_cmd_output("nova-manage db version")
7b9b39
-        self.add_cmd_output("nova-manage fixed list")
7b9b39
-        self.add_cmd_output("nova-manage floating list")
7b9b39
 
7b9b39
-        vars_all = [p in os.environ for p in [
7b9b39
-                    'OS_USERNAME', 'OS_PASSWORD']]
7b9b39
-
7b9b39
-        vars_any = [p in os.environ for p in [
7b9b39
-                    'OS_TENANT_NAME', 'OS_PROJECT_NAME']]
7b9b39
+        # collect commands output only if the openstack-nova-api service
7b9b39
+        # is running
7b9b39
+        service_status = self.get_command_output(
7b9b39
+            "systemctl status openstack-nova-api.service"
7b9b39
+        )
7b9b39
 
7b9b39
-        if not (all(vars_all) and any(vars_any)):
7b9b39
-            self.soslog.warning("Not all environment variables set. Source "
7b9b39
-                                "the environment file for the user intended "
7b9b39
-                                "to connect to the OpenStack environment.")
7b9b39
-        else:
7b9b39
-            self.add_cmd_output("nova service-list")
7b9b39
-            self.add_cmd_output("openstack flavor list --long")
7b9b39
-            self.add_cmd_output("nova network-list")
7b9b39
-            self.add_cmd_output("nova list")
7b9b39
-            self.add_cmd_output("nova agent-list")
7b9b39
-            self.add_cmd_output("nova version-list")
7b9b39
-            self.add_cmd_output("nova host-list")
7b9b39
-            self.add_cmd_output("openstack quota show")
7b9b39
-            self.add_cmd_output("openstack hypervisor stats show")
7b9b39
-            # get details for each nova instance
7b9b39
-            cmd = "openstack server list -f value"
7b9b39
-            nova_instances = self.call_ext_prog(cmd)['output']
7b9b39
-            for instance in nova_instances.splitlines():
7b9b39
-                instance = instance.split()[0]
7b9b39
-                cmd = "openstack server show %s" % (instance)
7b9b39
-                self.add_cmd_output(
7b9b39
-                    cmd,
7b9b39
-                    suggest_filename="instance-" + instance + ".log")
7b9b39
+        container_status = self.get_command_output("docker ps")
7b9b39
+        in_container = False
7b9b39
+        if container_status['status'] == 0:
7b9b39
+            for line in container_status['output'].splitlines():
7b9b39
+                if line.endswith("cinder_api"):
7b9b39
+                    in_container = True
7b9b39
+
7b9b39
+        if (service_status['status'] == 0) or in_container:
7b9b39
+            nova_config = ""
7b9b39
+            # if containerized we need to pass the config to the cont.
7b9b39
+            if in_container:
7b9b39
+                nova_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
+                                "/etc/nova/"
7b9b39
+
7b9b39
+            self.add_cmd_output(
7b9b39
+                "nova-manage " + nova_config + " db version",
7b9b39
+                suggest_filename="nova-manage_db_version"
7b9b39
+            )
7b9b39
+            self.add_cmd_output(
7b9b39
+                "nova-manage " + nova_config + " fixed list",
7b9b39
+                suggest_filename="nova-manage_fixed_list"
7b9b39
+            )
7b9b39
+            self.add_cmd_output(
7b9b39
+                "nova-manage " + nova_config + " floating list",
7b9b39
+                suggest_filename="nova-manage_floating_list"
7b9b39
+            )
7b9b39
+
7b9b39
+            vars_all = [p in os.environ for p in [
7b9b39
+                        'OS_USERNAME', 'OS_PASSWORD']]
7b9b39
+
7b9b39
+            vars_any = [p in os.environ for p in [
7b9b39
+                        'OS_TENANT_NAME', 'OS_PROJECT_NAME']]
7b9b39
+
7b9b39
+            if not (all(vars_all) and any(vars_any)):
7b9b39
+                self.soslog.warning("Not all environment variables set. "
7b9b39
+                                    "Source the environment file for the user "
7b9b39
+                                    "intended to connect to the OpenStack "
7b9b39
+                                    "environment.")
7b9b39
+            else:
7b9b39
+                self.add_cmd_output("nova service-list")
7b9b39
+                self.add_cmd_output("openstack flavor list --long")
7b9b39
+                self.add_cmd_output("nova network-list")
7b9b39
+                self.add_cmd_output("nova list")
7b9b39
+                self.add_cmd_output("nova agent-list")
7b9b39
+                self.add_cmd_output("nova version-list")
7b9b39
+                self.add_cmd_output("nova hypervisor-list")
7b9b39
+                self.add_cmd_output("openstack quota show")
7b9b39
+                self.add_cmd_output("openstack hypervisor stats show")
7b9b39
+                # get details for each nova instance
7b9b39
+                cmd = "openstack server list -f value"
7b9b39
+                nova_instances = self.call_ext_prog(cmd)['output']
7b9b39
+                for instance in nova_instances.splitlines():
7b9b39
+                    instance = instance.split()[0]
7b9b39
+                    cmd = "openstack server show %s" % (instance)
7b9b39
+                    self.add_cmd_output(
7b9b39
+                        cmd,
7b9b39
+                        suggest_filename="instance-" + instance + ".log")
7b9b39
 
7b9b39
         self.limit = self.get_option("log_size")
7b9b39
         if self.get_option("all_logs"):
7b9b39
-- 
7b9b39
2.13.6
7b9b39
7b9b39
From 404951b99d5e2e46fe0757d27b984eb5ff94cf76 Mon Sep 17 00:00:00 2001
7b9b39
From: Pavel Moravec <pmoravec@redhat.com>
7b9b39
Date: Wed, 8 Nov 2017 19:30:57 +0100
7b9b39
Subject: [PATCH] [etcd] fix typo in etcdctl subcmds
7b9b39
7b9b39
subcmds variable set while "subcmd" referred instead.
7b9b39
7b9b39
Resolves: #1141
7b9b39
7b9b39
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
7b9b39
---
7b9b39
 sos/plugins/etcd.py | 2 +-
7b9b39
 1 file changed, 1 insertion(+), 1 deletion(-)
7b9b39
7b9b39
diff --git a/sos/plugins/etcd.py b/sos/plugins/etcd.py
7b9b39
index 4f072a4c..bd5d10d8 100644
7b9b39
--- a/sos/plugins/etcd.py
7b9b39
+++ b/sos/plugins/etcd.py
7b9b39
@@ -40,7 +40,7 @@ class etcd(Plugin, RedHatPlugin):
7b9b39
            'ls --recursive',
7b9b39
         ]
7b9b39
 
7b9b39
-        self.add_cmd_output(['%s %s' % (self.cmd, sub) for sub in subcmd])
7b9b39
+        self.add_cmd_output(['%s %s' % (self.cmd, sub) for sub in subcmds])
7b9b39
 
7b9b39
         urls = [
7b9b39
             '/v2/stats/leader',
7b9b39
-- 
7b9b39
2.13.6
7b9b39
7b9b39
From 2140b1611565078c4a6536782c013a525722e0da Mon Sep 17 00:00:00 2001
7b9b39
From: Martin Schuppert <mschuppert@redhat.com>
7b9b39
Date: Thu, 21 Dec 2017 08:00:41 +0100
7b9b39
Subject: [PATCH] [openstack_glance|heat|nova] fix api container names
7b9b39
7b9b39
Container names of glance, heat and nova api was not correct
7b9b39
when verify if a the container is running.
7b9b39
7b9b39
Signed-off-by: Martin Schuppert <mschuppe@redhat.com>
7b9b39
---
7b9b39
 sos/plugins/openstack_glance.py | 2 +-
7b9b39
 sos/plugins/openstack_heat.py   | 2 +-
7b9b39
 sos/plugins/openstack_nova.py   | 2 +-
7b9b39
 3 files changed, 3 insertions(+), 3 deletions(-)
7b9b39
7b9b39
diff --git a/sos/plugins/openstack_glance.py b/sos/plugins/openstack_glance.py
7b9b39
index 4cdc6dc62..d7588abe0 100644
7b9b39
--- a/sos/plugins/openstack_glance.py
7b9b39
+++ b/sos/plugins/openstack_glance.py
7b9b39
@@ -64,7 +64,7 @@ def setup(self):
7b9b39
         in_container = False
7b9b39
         if container_status['status'] == 0:
7b9b39
             for line in container_status['output'].splitlines():
7b9b39
-                if line.endswith("cinder_api"):
7b9b39
+                if line.endswith("glance_api"):
7b9b39
                     in_container = True
7b9b39
 
7b9b39
         if (service_status['status'] == 0) or in_container:
7b9b39
diff --git a/sos/plugins/openstack_heat.py b/sos/plugins/openstack_heat.py
7b9b39
index e3395fabd..0cf7c8595 100644
7b9b39
--- a/sos/plugins/openstack_heat.py
7b9b39
+++ b/sos/plugins/openstack_heat.py
7b9b39
@@ -40,7 +40,7 @@ def setup(self):
7b9b39
         in_container = False
7b9b39
         if container_status['status'] == 0:
7b9b39
             for line in container_status['output'].splitlines():
7b9b39
-                if line.endswith("cinder_api"):
7b9b39
+                if line.endswith("heat_api"):
7b9b39
                     in_container = True
7b9b39
 
7b9b39
         if (service_status['status'] == 0) or in_container:
7b9b39
diff --git a/sos/plugins/openstack_nova.py b/sos/plugins/openstack_nova.py
7b9b39
index e8839a2a6..951e69cba 100644
7b9b39
--- a/sos/plugins/openstack_nova.py
7b9b39
+++ b/sos/plugins/openstack_nova.py
7b9b39
@@ -43,7 +43,7 @@ def setup(self):
7b9b39
         in_container = False
7b9b39
         if container_status['status'] == 0:
7b9b39
             for line in container_status['output'].splitlines():
7b9b39
-                if line.endswith("cinder_api"):
7b9b39
+                if line.endswith("nova_api"):
7b9b39
                     in_container = True
7b9b39
 
7b9b39
         if (service_status['status'] == 0) or in_container:
7b9b39
From 6f5295056cbea8220407fe42159b15ea1a135e46 Mon Sep 17 00:00:00 2001
7b9b39
From: Martin Schuppert <mschuppert@redhat.com>
7b9b39
Date: Wed, 10 Jan 2018 20:50:46 +0100
7b9b39
Subject: [PATCH] [plugins] add method to check process list for a named
7b9b39
 process
7b9b39
7b9b39
In openstack plugins we collect data depending if processes with
7b9b39
different names are there. This introduces a check_process_by_name
7b9b39
Plugin method to have a consistent way to do this from any plugin
7b9b39
where needed.
7b9b39
7b9b39
Signed-off-by: Martin Schuppert mschuppe@redhat.com
7b9b39
---
7b9b39
 sos/plugins/__init__.py | 16 ++++++++++++++++
7b9b39
 1 file changed, 16 insertions(+)
7b9b39
7b9b39
diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py
7b9b39
index 2a8bc516e..3f3a19558 100644
7b9b39
--- a/sos/plugins/__init__.py
7b9b39
+++ b/sos/plugins/__init__.py
7b9b39
@@ -1026,6 +1026,22 @@ def report(self):
7b9b39
         else:
7b9b39
             return html
7b9b39
 
7b9b39
+    def check_process_by_name(self, process):
7b9b39
+        """Checks if a named process is found in /proc/[0-9]*/cmdline.
7b9b39
+        Returns either True or False."""
7b9b39
+        status = False
7b9b39
+        cmd_line_glob = "/proc/[0-9]*/cmdline"
7b9b39
+        try:
7b9b39
+            cmd_line_paths = glob.glob(cmd_line_glob)
7b9b39
+            for path in cmd_line_paths:
7b9b39
+                f = open(path, 'r')
7b9b39
+                cmd_line = f.read().strip()
7b9b39
+                if process in cmd_line:
7b9b39
+                    status = True
7b9b39
+        except IOError as e:
7b9b39
+            return False
7b9b39
+        return status
7b9b39
+
7b9b39
 
7b9b39
 class RedHatPlugin(object):
7b9b39
     """Tagging class for Red Hat's Linux distributions"""
7b9b39
From 12f1c4f851c771a0173f6e00657e1a983af8451c Mon Sep 17 00:00:00 2001
7b9b39
From: Martin Schuppert <mschuppert@redhat.com>
7b9b39
Date: Fri, 29 Dec 2017 09:20:33 +0100
7b9b39
Subject: [PATCH] [openstack_cinder] check for api service running via
7b9b39
 cinder_wsgi
7b9b39
7b9b39
With OSP11 cinder api changed to run via https wsgi. To check for
7b9b39
running cinder-manage command we also need to take this situation.
7b9b39
The change checks for cinder_wsgi process.
7b9b39
7b9b39
Signed-off-by: Martin Schuppert <mschuppert@redhat.com>
7b9b39
---
7b9b39
 sos/plugins/__init__.py         | 11 +++++++++++
7b9b39
 sos/plugins/openstack_cinder.py | 27 +++++++++++++++------------
7b9b39
 2 files changed, 26 insertions(+), 12 deletions(-)
7b9b39
7b9b39
diff --git a/sos/plugins/openstack_cinder.py b/sos/plugins/openstack_cinder.py
7b9b39
index a023105c8..cc9181efa 100644
7b9b39
--- a/sos/plugins/openstack_cinder.py
7b9b39
+++ b/sos/plugins/openstack_cinder.py
7b9b39
@@ -31,26 +31,29 @@ class OpenStackCinder(Plugin):
7b9b39
 
7b9b39
     def setup(self):
7b9b39
 
7b9b39
-        # collect commands output only if the openstack-cinder-api service
7b9b39
-        # is running
7b9b39
-        service_status = self.get_command_output(
7b9b39
-            "systemctl status openstack-cinder-api.service"
7b9b39
-        )
7b9b39
+        # check if either standalone (cinder-api) or httpd wsgi (cinder_wsgi)
7b9b39
+        # is up and running
7b9b39
+        cinder_process = ["cinder_wsgi", "cinder-api"]
7b9b39
+        in_ps = False
7b9b39
+        for process in cinder_process:
7b9b39
+            in_ps = self.check_process_by_name(process)
7b9b39
+            if in_ps:
7b9b39
+                break
7b9b39
 
7b9b39
         container_status = self.get_command_output("docker ps")
7b9b39
         in_container = False
7b9b39
+        cinder_config = ""
7b9b39
         if container_status['status'] == 0:
7b9b39
             for line in container_status['output'].splitlines():
7b9b39
                 if line.endswith("cinder_api"):
7b9b39
                     in_container = True
7b9b39
+                    # if containerized we need to pass the config to the cont.
7b9b39
+                    cinder_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
+                                    "/etc/cinder/"
7b9b39
+                    break
7b9b39
 
7b9b39
-        if (service_status['status'] == 0) or in_container:
7b9b39
-            cinder_config = ""
7b9b39
-            # if containerized we need to pass the config to the cont.
7b9b39
-            if in_container:
7b9b39
-                cinder_config = "--config-dir " + self.var_puppet_gen + \
7b9b39
-                                "/etc/cinder/"
7b9b39
-
7b9b39
+        # collect commands output if the standalone, wsgi or container is up
7b9b39
+        if in_ps or in_container:
7b9b39
             self.add_cmd_output(
7b9b39
                 "cinder-manage " + cinder_config + " db version",
7b9b39
                 suggest_filename="cinder_db_version"