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 Nom du plugin
profiles -p (--profile) Lorsque sosreport est exécuté avec NAME spécifié, si la valeur spécifiée pour NAME est spécifiée dans les profils, le plug-in est exécuté. Vous pouvez vérifier quel plug-in a quels profils avec sosreport --list-profiles.
files, packages Si les fichiers spécifiés dans les fichiers existent ou si les packages spécifiés dans les packages sont installés, le plug-in est activé par défaut. Vous pouvez activer / désactiver le plug-in en option.
option_list Options pouvant être spécifiées pour le plug-in De gauche à droite: nom de l'option, description de l'option (vérifier avec sosreport -l), rapide ou lent (aucun chemin n'est actuellement utilisé tant que vous grep la source, il est suggéré de supprimer cet élément lui-même), par défaut Valide / invalide.
méthode de configuration Obligatoire sosreport parcourt la méthode de configuration de chaque plug-in (autour de la ligne 1247 de 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")
méthode add_copy_spec Copiez et récupérez le fichier.
méthode add_cmd_output Obtenez le résultat de l'exécution de la commande.
méthode add_forbidden_path Exclut le fichier spécifié de la cible d'acquisition.
méthode get_option Renvoie True si l'option du jeu de plug-ins dans option_list est spécifiée.
méthode is_installed Renvoie True si le package spécifié est installé.
méthode call_ext_prog Renvoie le résultat de l'exécution de la commande dans un processus distinct de sosreport.
Pour résumer ce qui précède, l'implémentation du plug-in yum est la suivante.
| article | Contenu | 
|---|---|
| profiles | system packagemanager sysmgmt  | 
| Conditions valables | /etc/yum.conf existe ou lorsque le package yum est installé | 
| option yumlist | Obtenez le résultat de l'exécution de la commande yum list. Par défaut désactivé | 
| option yumdebug | yum-debug-Obtenez le résultat du référencement de l'archive générée par la commande dump avec la commande zcat. La valeur par défaut est désactivée | 
| Dossier d'acquisition | /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-Résultat de référence par la commande zcat de l'archive générée par la commande dump(*2)  | 
| Obtenir la commande | yum -C repolist yum history yum list(*3)  | 
/etc/pki/entitlement/key.pem /etc/pki/entitlement/\*-key.pem
Recommended Posts