173 lines
6.7 KiB
Diff
173 lines
6.7 KiB
Diff
From 9108f2f83613bce42e8be91bbe7fe91fd1b1763a Mon Sep 17 00:00:00 2001
|
|
From: Jake Hunsaker <jhunsake@redhat.com>
|
|
Date: Thu, 18 Apr 2019 14:58:23 -0400
|
|
Subject: [PATCH] [sos-collector] Fix --list-options output
|
|
|
|
Fixes the output of --list-options to include layered profiles when
|
|
reporting base profile options.
|
|
|
|
Additionally adds output of the cluster types supported by the local
|
|
installation of sos-collector. Added cluster_name values to clusters
|
|
that were missing them.
|
|
|
|
Fixes: #22
|
|
|
|
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
---
|
|
soscollector/clusters/jbon.py | 1 +
|
|
soscollector/clusters/kubernetes.py | 1 +
|
|
soscollector/clusters/pacemaker.py | 1 +
|
|
soscollector/clusters/satellite.py | 1 +
|
|
soscollector/sos_collector.py | 40 +++++++++++++++++------------
|
|
5 files changed, 27 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/soscollector/clusters/jbon.py b/soscollector/clusters/jbon.py
|
|
index ea85ddf..0c53093 100644
|
|
--- a/soscollector/clusters/jbon.py
|
|
+++ b/soscollector/clusters/jbon.py
|
|
@@ -23,6 +23,7 @@ class jbon(Cluster):
|
|
use the provided --nodes list
|
|
'''
|
|
|
|
+ cluster_name = 'Just a Bunch Of Nodes (no cluster)'
|
|
packages = None
|
|
|
|
def get_nodes(self):
|
|
diff --git a/soscollector/clusters/kubernetes.py b/soscollector/clusters/kubernetes.py
|
|
index e18ee71..32bc68b 100644
|
|
--- a/soscollector/clusters/kubernetes.py
|
|
+++ b/soscollector/clusters/kubernetes.py
|
|
@@ -19,6 +19,7 @@ from soscollector.clusters import Cluster
|
|
|
|
class kubernetes(Cluster):
|
|
|
|
+ cluster_name = 'Community Kubernetes'
|
|
packages = ('kubernetes-master',)
|
|
sos_plugins = ['kubernetes']
|
|
sos_plugin_options = {'kubernetes.all': 'on'}
|
|
diff --git a/soscollector/clusters/pacemaker.py b/soscollector/clusters/pacemaker.py
|
|
index 778d8ae..be6c09e 100644
|
|
--- a/soscollector/clusters/pacemaker.py
|
|
+++ b/soscollector/clusters/pacemaker.py
|
|
@@ -18,6 +18,7 @@ from soscollector.clusters import Cluster
|
|
|
|
class pacemaker(Cluster):
|
|
|
|
+ cluster_name = 'Pacemaker High Availability Cluster Manager'
|
|
sos_plugins = ['pacemaker']
|
|
packages = ('pacemaker',)
|
|
option_list = [
|
|
diff --git a/soscollector/clusters/satellite.py b/soscollector/clusters/satellite.py
|
|
index ccdfefb..2c5c73d 100644
|
|
--- a/soscollector/clusters/satellite.py
|
|
+++ b/soscollector/clusters/satellite.py
|
|
@@ -20,6 +20,7 @@ from soscollector.clusters import Cluster
|
|
class satellite(Cluster):
|
|
"""Red Hat Satellite 6"""
|
|
|
|
+ cluster_name = 'Red Hat Satellite 6'
|
|
packages = ('satellite', 'satellite-installer')
|
|
|
|
def _psql_cmd(self, query):
|
|
diff --git a/soscollector/sos_collector.py b/soscollector/sos_collector.py
|
|
index 54410a2..5b31602 100644
|
|
--- a/soscollector/sos_collector.py
|
|
+++ b/soscollector/sos_collector.py
|
|
@@ -218,19 +218,28 @@ class SosCollector():
|
|
|
|
def list_options(self):
|
|
'''Display options for available clusters'''
|
|
+
|
|
+ sys.stdout.write('\nThe following clusters are supported by this '
|
|
+ 'installation\n')
|
|
+ sys.stdout.write('Use the short name with --cluster-type or cluster '
|
|
+ 'options (-c)\n\n')
|
|
+ for cluster in sorted(self.clusters, key=lambda x: self.clusters[x]):
|
|
+ sys.stdout.write(" {:<15} {:30}\n".format(
|
|
+ cluster,
|
|
+ self.clusters[cluster].cluster_name))
|
|
+
|
|
_opts = {}
|
|
for _cluster in self.clusters:
|
|
for opt in self.clusters[_cluster].options:
|
|
if opt.name not in _opts.keys():
|
|
_opts[opt.name] = opt
|
|
else:
|
|
- clust = _opts[opt.name].cluster
|
|
- if any(c in opt.cluster for c in clust):
|
|
- _opts[opt.name].cluster = ','.join(clust)
|
|
- else:
|
|
- _opts[opt.name] = opt
|
|
- print('\nThe following cluster options are available:\n')
|
|
- print('{:25} {:15} {:<10} {:10} {:<}'.format(
|
|
+ for clust in opt.cluster:
|
|
+ if clust not in _opts[opt.name].cluster:
|
|
+ _opts[opt.name].cluster.append(clust)
|
|
+
|
|
+ sys.stdout.write('\nThe following cluster options are available:\n\n')
|
|
+ sys.stdout.write(' {:25} {:15} {:<10} {:10} {:<}\n'.format(
|
|
'Cluster',
|
|
'Option Name',
|
|
'Type',
|
|
@@ -239,20 +248,17 @@ class SosCollector():
|
|
))
|
|
|
|
for _opt in sorted(_opts, key=lambda x: _opts[x].cluster):
|
|
- _clus = None
|
|
opt = _opts[_opt]
|
|
- if isinstance(opt.cluster, list):
|
|
- _clus = opt.cluster[0]
|
|
- optln = '{:25} {:15} {:<10} {:<10} {:<10}'.format(
|
|
- _clus or opt.cluster,
|
|
+ optln = ' {:25} {:15} {:<10} {:<10} {:<10}\n'.format(
|
|
+ ', '.join(c for c in sorted(opt.cluster)),
|
|
opt.name,
|
|
opt.opt_type.__name__,
|
|
str(opt.value),
|
|
- opt.description
|
|
- )
|
|
- print(optln)
|
|
- print('\nOptions take the form of cluster.name=value'
|
|
- '\nE.G. "ovirt.no-database=True" or "pacemaker.offline=False"')
|
|
+ opt.description)
|
|
+ sys.stdout.write(optln)
|
|
+ sys.stdout.write('\nOptions take the form of cluster.name=value'
|
|
+ '\nE.G. "ovirt.no-database=True" or '
|
|
+ '"pacemaker.offline=False"\n')
|
|
|
|
def delete_tmp_dir(self):
|
|
'''Removes the temp directory and all collected sosreports'''
|
|
--
|
|
2.17.2
|
|
|
|
From 70faf097e9d36898cfc624e9e57f46eea25d321c Mon Sep 17 00:00:00 2001
|
|
From: Jake Hunsaker <jhunsake@redhat.com>
|
|
Date: Tue, 2 Jul 2019 12:35:14 -0400
|
|
Subject: [PATCH] [sos-collector] Remove key sorting on cluster list
|
|
|
|
On python3, using the cluster key on sorting the list was causing an
|
|
exception. After testing, it appears a normal keyless sort still gives
|
|
us the desired effect, so remove the key sorting.
|
|
|
|
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
|
|
---
|
|
soscollector/sos_collector.py | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/soscollector/sos_collector.py b/soscollector/sos_collector.py
|
|
index a691219..d0a598f 100644
|
|
--- a/soscollector/sos_collector.py
|
|
+++ b/soscollector/sos_collector.py
|
|
@@ -223,7 +223,7 @@ class SosCollector():
|
|
'installation\n')
|
|
sys.stdout.write('Use the short name with --cluster-type or cluster '
|
|
'options (-c)\n\n')
|
|
- for cluster in sorted(self.clusters, key=lambda x: self.clusters[x]):
|
|
+ for cluster in sorted(self.clusters):
|
|
sys.stdout.write(" {:<15} {:30}\n".format(
|
|
cluster,
|
|
self.clusters[cluster].cluster_name))
|
|
--
|
|
2.17.2
|
|
|