https://github.com/sosreport/sos/wiki/
/usr/lib/python2.7/site-packages/sos/plugins
yum.py
from sos.plugins import Plugin, RedHatPlugin
class Yum(Plugin, RedHatPlugin):
"""yum information
"""
plugin_name = 'yum'
profiles = ('system', 'packagemanager', 'sysmgmt')
files = ('/etc/yum.conf',)
packages = ('yum',)
option_list = [
("yumlist", "list repositories and packages", "slow", False),
("yumdebug", "gather yum debugging data", "slow", False)
]
def setup(self):
# Pull all yum related information
self.add_copy_spec([
"/etc/yum",
"/etc/yum.repos.d",
"/etc/yum.conf",
"/var/log/yum.log"
])
# Get a list of channels the machine is subscribed to.
self.add_cmd_output("yum -C repolist")
# candlepin info
self.add_forbidden_path("/etc/pki/entitlement/key.pem")
self.add_forbidden_path("/etc/pki/entitlement/*-key.pem")
self.add_copy_spec([
"/etc/pki/product/*.pem",
"/etc/pki/consumer/cert.pem",
"/etc/pki/entitlement/*.pem"
])
self.add_cmd_output("yum history")
if self.get_option("yumlist"):
# List various information about available packages
self.add_cmd_output("yum list")
if self.get_option("yumdebug") and self.is_installed('yum-utils'):
# RHEL6+ alternative for this whole function:
# self.add_cmd_output("yum-debug-dump '%s'"
# % os.path.join(self.commons['dstroot'],"yum-debug-dump"))
r = self.call_ext_prog("yum-debug-dump")
try:
self.add_cmd_output("zcat %s" % (r['output'].split()[-1],))
except IndexError:
pass
plugin_name Name des Plugins
profiles -p (--profile) Wenn sosreport mit angegebenem NAME ausgeführt wird und der für NAME angegebene Wert in Profilen angegeben wird, wird das Plug-In ausgeführt. Mit sosreport --list-profile können Sie überprüfen, welches Plug-in welche Profile hat.
files, packages Wenn die in Dateien angegebenen Dateien vorhanden sind oder die in Paketen angegebenen Pakete installiert sind, ist das Plug-In standardmäßig aktiviert. Sie können das Plug-In optional aktivieren / deaktivieren.
option_list Optionen, die für das Plug-In angegeben werden können Von links: Optionsname, Optionsbeschreibung (überprüfen Sie mit sosreport -l), schnell oder langsam (derzeit wird kein Pfad verwendet, solange Sie die Quelle durchsuchen. Es wird empfohlen, dieses Element selbst zu entfernen), Standard Gültig / ungültig.
Setup-Methode Verpflichtend sosreport durchläuft die Setup-Methode jedes Plug-Ins (um Zeile 1247 von sosreport.py).
sosreport.py
1240 def setup(self):
1241 msg = "[%s:%s] executing 'sosreport %s'"
1242 self.soslog.info(msg % (__name__, "setup", " ".join(self._args)))
1243 self.ui_log.info(_(" Setting up plugins ..."))
1244 for plugname, plug in self.loaded_plugins:
1245 try:
1246 plug.archive = self.archive
1247 plug.setup()
1248 except KeyboardInterrupt:
1249 raise
1250 except (OSError, IOError) as e:
1251 if e.errno in fatal_fs_errors:
1252 self.ui_log.error("")
1253 self.ui_log.error(" %s while setting up plugins"
1254 % e.strerror)
1255 self.ui_log.error("")
1256 self._exit(1)
1257 if self.raise_plugins:
1258 raise
1259 self._log_plugin_exception(plugname, "setup")
1260 except:
1261 if self.raise_plugins:
1262 raise
1263 self._log_plugin_exception(plugname, "setup")
add_copy_spec Methode Kopieren Sie die Datei und holen Sie sie ab.
add_cmd_output Methode Ruft das Ergebnis der Befehlsausführung ab.
add_forbidden_path Methode Schließt die angegebene Datei vom Erfassungsziel aus.
get_option Methode Gibt True zurück, wenn die Option des in option_list festgelegten Plug-Ins angegeben ist.
is_installed Methode Gibt True zurück, wenn das angegebene Paket installiert ist.
call_ext_prog Methode Gibt das Ergebnis der Befehlsausführung in einem von sosreport getrennten Prozess zurück.
Zusammenfassend ist die Implementierung des yum-Plug-Ins wie folgt.
Artikel | Inhalt |
---|---|
profiles | system packagemanager sysmgmt |
Gültige Bedingungen | /etc/yum.conf existiert oder wenn yum package installiert ist |
yumlist Option | Ruft das Ausführungsergebnis des Befehls yum list ab. Standard deaktiviert |
yumdebug Option | yum-debug-Rufen Sie das Ergebnis der Referenzierung des vom Befehl dump generierten Archivs mit dem Befehl zcat ab. Standard ist deaktiviert |
Erfassungsdatei | /etc/yum /etc/yum.repos.d /etc/yum.conf /var/log/yum.log /etc/pki/product/*.pem(*1) /etc/pki/consumer/cert.pem /etc/pki/entitlement/*.pem /etc/pki/entitlement/key.pem /etc/pki/entitlement/*-key.pem yum-debug-Referenzergebnis des Befehls zcat des Archivs, das mit dem Befehl dump generiert wurde(*2) |
Befehl abrufen | yum -C repolist yum history yum list(*3) |
/etc/pki/entitlement/key.pem /etc/pki/entitlement/\*-key.pem
Recommended Posts