/usr/lib/python2.6/site-packages/sos/plugins
NameSizeModeActions
abrt.py17750644editdlrm
abrt.pyc16040644editdlrm
abrt.pyo16040644editdlrm
acpid.py12050644editdlrm
acpid.pyc14250644editdlrm
acpid.pyo14250644editdlrm
activemq.py20580644editdlrm
activemq.pyc23070644editdlrm
activemq.pyo23070644editdlrm
anaconda.py16950644editdlrm
anaconda.pyc14570644editdlrm
anaconda.pyo14570644editdlrm
anacron.py10960644editdlrm
anacron.pyc6930644editdlrm
anacron.pyo6930644editdlrm
apache.py23960644editdlrm
apache.pyc25710644editdlrm
apache.pyo25710644editdlrm
apparmor.py10480644editdlrm
apparmor.pyc7890644editdlrm
apparmor.pyo7890644editdlrm
apport.py10390644editdlrm
apport.pyc8010644editdlrm
apport.pyo8010644editdlrm
apt.py15920644editdlrm
apt.pyc13560644editdlrm
apt.pyo13560644editdlrm
ata.py14990644editdlrm
ata.pyc12760644editdlrm
ata.pyo12760644editdlrm
auditd.py14670644editdlrm
auditd.pyc12360644editdlrm
auditd.pyo12360644editdlrm
autofs.py22990644editdlrm
autofs.pyc27910644editdlrm
autofs.pyo27910644editdlrm
azure.py12740644editdlrm
azure.pyc9960644editdlrm
azure.pyo9960644editdlrm
block.py18180644editdlrm
block.pyc14480644editdlrm
block.pyo14480644editdlrm
boot.py17180644editdlrm
boot.pyc13970644editdlrm
boot.pyo13970644editdlrm
ceph.py16570644editdlrm
ceph.pyc14100644editdlrm
ceph.pyo14100644editdlrm
cgroups.py14300644editdlrm
cgroups.pyc14780644editdlrm
cgroups.pyo14780644editdlrm
cluster.py64440644editdlrm
cluster.pyc55490644editdlrm
cluster.pyo55490644editdlrm
cobbler.py14770644editdlrm
cobbler.pyc16950644editdlrm
cobbler.pyo16950644editdlrm
corosync.py19670644editdlrm
corosync.pyc24090644editdlrm
corosync.pyo24090644editdlrm
cron.py13070644editdlrm
cron.pyc10870644editdlrm
cron.pyo10870644editdlrm
cs.py36380644editdlrm
cs.pyc29300644editdlrm
cs.pyo29300644editdlrm
ctdb.py16420644editdlrm
ctdb.pyc15830644editdlrm
ctdb.pyo15830644editdlrm
cups.py17440644editdlrm
cups.pyc13420644editdlrm
cups.pyo13420644editdlrm
dbus.py10510644editdlrm
dbus.pyc8460644editdlrm
dbus.pyo8460644editdlrm
devicemapper.py11350644editdlrm
devicemapper.pyc9370644editdlrm
devicemapper.pyo9370644editdlrm
dhcp.py14010644editdlrm
dhcp.pyc16690644editdlrm
dhcp.pyo16690644editdlrm
distupgrade.py17140644editdlrm
distupgrade.pyc15830644editdlrm
distupgrade.pyo15830644editdlrm
dmraid.py15810644editdlrm
dmraid.pyc12090644editdlrm
dmraid.pyo12090644editdlrm
docker.py24280644editdlrm
docker.pyc24410644editdlrm
docker.pyo24410644editdlrm
dovecot.py14680644editdlrm
dovecot.pyc19370644editdlrm
dovecot.pyo19370644editdlrm
dpkg.py11260644editdlrm
dpkg.pyc9020644editdlrm
dpkg.pyo9020644editdlrm
ds.py29310644editdlrm
ds.pyc25160644editdlrm
ds.pyo25160644editdlrm
fcoe.py13370644editdlrm
fcoe.pyc8970644editdlrm
fcoe.pyo8970644editdlrm
filesys.py21640644editdlrm
filesys.pyc18940644editdlrm
filesys.pyo18940644editdlrm
firewalld.py14740644editdlrm
firewalld.pyc10950644editdlrm
firewalld.pyo10950644editdlrm
foreman.py11790644editdlrm
foreman.pyc9330644editdlrm
foreman.pyo9330644editdlrm
gdm.py9930644editdlrm
gdm.pyc8050644editdlrm
gdm.pyo8050644editdlrm
general.py20380644editdlrm
general.pyc23460644editdlrm
general.pyo23460644editdlrm
gluster.py40870644editdlrm
gluster.pyc37860644editdlrm
gluster.pyo37860644editdlrm
grub.py13530644editdlrm
grub.pyc12300644editdlrm
grub.pyo12300644editdlrm
grub2.py22390644editdlrm
grub2.pyc16640644editdlrm
grub2.pyo16640644editdlrm
haproxy.py11270644editdlrm
haproxy.pyc8870644editdlrm
haproxy.pyo8870644editdlrm
hardware.py12540644editdlrm
hardware.pyc10340644editdlrm
hardware.pyo10340644editdlrm
hpasm.py12620644editdlrm
hpasm.pyc10450644editdlrm
hpasm.pyo10450644editdlrm
hts.py10330644editdlrm
hts.pyc8190644editdlrm
hts.pyo8190644editdlrm
i18n.py11020644editdlrm
i18n.pyc9050644editdlrm
i18n.pyo9050644editdlrm
infiniband.py13660644editdlrm
infiniband.pyc10790644editdlrm
infiniband.pyo10790644editdlrm
ipa.py37840644editdlrm
ipa.pyc33400644editdlrm
ipa.pyo33400644editdlrm
iprconfig.py46700644editdlrm
iprconfig.pyc22490644editdlrm
iprconfig.pyo22490644editdlrm
ipsec.py13990644editdlrm
ipsec.pyc16450644editdlrm
ipsec.pyo16450644editdlrm
ipvs.py11280644editdlrm
ipvs.pyc8690644editdlrm
ipvs.pyo8690644editdlrm
iscsi.py14290644editdlrm
iscsi.pyc12960644editdlrm
iscsi.pyo12960644editdlrm
iscsitarget.py16400644editdlrm
iscsitarget.pyc17680644editdlrm
iscsitarget.pyo17680644editdlrm
java.py12090644editdlrm
java.pyc10080644editdlrm
java.pyo10080644editdlrm
juju.py29650644editdlrm
juju.pyc30820644editdlrm
juju.pyo30820644editdlrm
kdump.py15080644editdlrm
kdump.pyc19230644editdlrm
kdump.pyo19230644editdlrm
keepalived.py11630644editdlrm
keepalived.pyc9100644editdlrm
keepalived.pyo9100644editdlrm
kernel.py24030644editdlrm
kernel.pyc20140644editdlrm
kernel.pyo20140644editdlrm
kernelrt.py15730644editdlrm
kernelrt.pyc12210644editdlrm
kernelrt.pyo12210644editdlrm
keyutils.py11810644editdlrm
keyutils.pyc9430644editdlrm
keyutils.pyo9430644editdlrm
kpatch.py13620644editdlrm
kpatch.pyc10900644editdlrm
kpatch.pyo10900644editdlrm
krb5.py11810644editdlrm
krb5.pyc9870644editdlrm
krb5.pyo9870644editdlrm
kvm.py20830644editdlrm
kvm.pyc19530644editdlrm
kvm.pyo19530644editdlrm
landscape.py12410644editdlrm
landscape.pyc12410644editdlrm
landscape.pyo12410644editdlrm
ldap.py34800644editdlrm
ldap.pyc38790644editdlrm
ldap.pyo38790644editdlrm
libraries.py12490644editdlrm
libraries.pyc10880644editdlrm
libraries.pyo10880644editdlrm
libvirt.py26110644editdlrm
libvirt.pyc22060644editdlrm
libvirt.pyo22060644editdlrm
lilo.py10350644editdlrm
lilo.pyc8730644editdlrm
lilo.pyo8730644editdlrm
logrotate.py12030644editdlrm
logrotate.pyc10060644editdlrm
logrotate.pyo10060644editdlrm
logs.py33860644editdlrm
logs.pyc31680644editdlrm
logs.pyo31680644editdlrm
lsbrelease.py11890644editdlrm
lsbrelease.pyc10230644editdlrm
lsbrelease.pyo10230644editdlrm
lvm2.py30900644editdlrm
lvm2.pyc22940644editdlrm
lvm2.pyo22940644editdlrm
maas.py24020644editdlrm
maas.pyc21140644editdlrm
maas.pyo21140644editdlrm
md.py11310644editdlrm
md.pyc9150644editdlrm
md.pyo9150644editdlrm
megacli.py15070644editdlrm
megacli.pyc13660644editdlrm
megacli.pyo13660644editdlrm
memory.py12570644editdlrm
memory.pyc10490644editdlrm
memory.pyo10490644editdlrm
mongodb.py15380644editdlrm
mongodb.pyc17020644editdlrm
mongodb.pyo17020644editdlrm
mrggrid.py10030644editdlrm
mrggrid.pyc7960644editdlrm
mrggrid.pyo7960644editdlrm
mrgmessg.py10350644editdlrm
mrgmessg.pyc8250644editdlrm
mrgmessg.pyo8250644editdlrm
multipath.py12380644editdlrm
multipath.pyc10370644editdlrm
multipath.pyo10370644editdlrm
mysql.py33940644editdlrm
mysql.pyc32820644editdlrm
mysql.pyo32820644editdlrm
named.py29080644editdlrm
named.pyc31830644editdlrm
named.pyo31830644editdlrm
navicli.py36420644editdlrm
navicli.pyc30110644editdlrm
navicli.pyo30110644editdlrm
networking.py97870644editdlrm
networking.pyc82540644editdlrm
networking.pyo82540644editdlrm
nfs.py12040644editdlrm
nfs.pyc9800644editdlrm
nfs.pyo9800644editdlrm
nfsserver.py18370644editdlrm
nfsserver.pyc16090644editdlrm
nfsserver.pyo16090644editdlrm
nis.py11310644editdlrm
nis.pyc9530644editdlrm
nis.pyo9530644editdlrm
nodejs.py14790644editdlrm
nodejs.pyc12690644editdlrm
nodejs.pyo12690644editdlrm
npm.py23330644editdlrm
npm.pyc19430644editdlrm
npm.pyo19430644editdlrm
nscd.py14170644editdlrm
nscd.pyc12130644editdlrm
nscd.pyo12130644editdlrm
ntp.py14730644editdlrm
ntp.pyc18090644editdlrm
ntp.pyo18090644editdlrm
numa.py15200644editdlrm
numa.pyc12470644editdlrm
numa.pyo12470644editdlrm
oddjob.py11900644editdlrm
oddjob.pyc9570644editdlrm
oddjob.pyo9570644editdlrm
openhpi.py12000644editdlrm
openhpi.pyc11250644editdlrm
openhpi.pyo11250644editdlrm
openshift.py66590644editdlrm
openshift.pyc46970644editdlrm
openshift.pyo46970644editdlrm
openssl.py18730644editdlrm
openssl.pyc22170644editdlrm
openssl.pyo22170644editdlrm
openstack_ceilometer.py21230644editdlrm
openstack_ceilometer.pyc22990644editdlrm
openstack_ceilometer.pyo22990644editdlrm
openstack_cinder.py26400644editdlrm
openstack_cinder.pyc30520644editdlrm
openstack_cinder.pyo30520644editdlrm
openstack_glance.py19150644editdlrm
openstack_glance.pyc18430644editdlrm
openstack_glance.pyo18430644editdlrm
openstack_heat.py18680644editdlrm
openstack_heat.pyc21480644editdlrm
openstack_heat.pyo21480644editdlrm
openstack_horizon.py24420644editdlrm
openstack_horizon.pyc30300644editdlrm
openstack_horizon.pyo30300644editdlrm
openstack_keystone.py26750644editdlrm
openstack_keystone.pyc25900644editdlrm
openstack_keystone.pyo25900644editdlrm
openstack_neutron.py64950644editdlrm
openstack_neutron.pyc57810644editdlrm
openstack_neutron.pyo57810644editdlrm
openstack_nova.py50590644editdlrm
openstack_nova.pyc56900644editdlrm
openstack_nova.pyo56900644editdlrm
openstack_swift.py18720644editdlrm
openstack_swift.pyc19930644editdlrm
openstack_swift.pyo19930644editdlrm
openswan.py16400644editdlrm
openswan.pyc12930644editdlrm
openswan.pyo12930644editdlrm
openvswitch.py15240644editdlrm
openvswitch.pyc14070644editdlrm
openvswitch.pyo14070644editdlrm
ovirt.py75160644editdlrm
ovirt.pyc61420644editdlrm
ovirt.pyo61420644editdlrm
ovirt_hosted_engine.py30820644editdlrm
ovirt_hosted_engine.pyc21720644editdlrm
ovirt_hosted_engine.pyo21720644editdlrm
pam.py15010644editdlrm
pam.pyc18200644editdlrm
pam.pyo18200644editdlrm
pci.py12270644editdlrm
pci.pyc9910644editdlrm
pci.pyo9910644editdlrm
pcp.py60340644editdlrm
pcp.pyc33060644editdlrm
pcp.pyo33060644editdlrm
postfix.py15390644editdlrm
postfix.pyc19430644editdlrm
postfix.pyo19430644editdlrm
postgresql.py53540644editdlrm
postgresql.pyc47950644editdlrm
postgresql.pyo47950644editdlrm
powerpath.py20910644editdlrm
powerpath.pyc19370644editdlrm
powerpath.pyo19370644editdlrm
powerpc.py30990644editdlrm
powerpc.pyc24130644editdlrm
powerpc.pyo24130644editdlrm
ppp.py12130644editdlrm
ppp.pyc9610644editdlrm
ppp.pyo9610644editdlrm
procenv.py10290644editdlrm
procenv.pyc7880644editdlrm
procenv.pyo7880644editdlrm
process.py12380644editdlrm
process.pyc9950644editdlrm
process.pyo9950644editdlrm
processor.py15620644editdlrm
processor.pyc13870644editdlrm
processor.pyo13870644editdlrm
psacct.py16520644editdlrm
psacct.pyc18620644editdlrm
psacct.pyo18620644editdlrm
puppet.py14140644editdlrm
puppet.pyc12930644editdlrm
puppet.pyo12930644editdlrm
pxe.py17050644editdlrm
pxe.pyc19830644editdlrm
pxe.pyo19830644editdlrm
python.py11340644editdlrm
python.pyc9010644editdlrm
python.pyo9010644editdlrm
qpid.py25430644editdlrm
qpid.pyc18360644editdlrm
qpid.pyo18360644editdlrm
quagga.py10740644editdlrm
quagga.pyc8690644editdlrm
quagga.pyo8690644editdlrm
rabbitmq.py12710644editdlrm
rabbitmq.pyc11730644editdlrm
rabbitmq.pyo11730644editdlrm
radius.py17290644editdlrm
radius.pyc20390644editdlrm
radius.pyo20390644editdlrm
rhui.py14930644editdlrm
rhui.pyc11970644editdlrm
rhui.pyo11970644editdlrm
rpm.py31980644editdlrm
rpm.pyc25400644editdlrm
rpm.pyo25400644editdlrm
s390.py23750644editdlrm
s390.pyc19770644editdlrm
s390.pyo19770644editdlrm
samba.py14860644editdlrm
samba.pyc15310644editdlrm
samba.pyo15310644editdlrm
sanlock.py13510644editdlrm
sanlock.pyc14160644editdlrm
sanlock.pyo14160644editdlrm
saphana.py32250644editdlrm
saphana.pyc20610644editdlrm
saphana.pyo20610644editdlrm
sapnw.py58990644editdlrm
sapnw.pyc39820644editdlrm
sapnw.pyo39820644editdlrm
sar.py30450644editdlrm
sar.pyc23330644editdlrm
sar.pyo23330644editdlrm
satellite.py33930644editdlrm
satellite.pyc28000644editdlrm
satellite.pyo28000644editdlrm
scsi.py13150644editdlrm
scsi.pyc10630644editdlrm
scsi.pyo10630644editdlrm
selinux.py18070644editdlrm
selinux.pyc14500644editdlrm
selinux.pyo14500644editdlrm
sendmail.py15750644editdlrm
sendmail.pyc17930644editdlrm
sendmail.pyo17930644editdlrm
smartcard.py13880644editdlrm
smartcard.pyc11930644editdlrm
smartcard.pyo11930644editdlrm
snmp.py13450644editdlrm
snmp.pyc17260644editdlrm
snmp.pyo17260644editdlrm
soundcard.py14690644editdlrm
soundcard.pyc17920644editdlrm
soundcard.pyo17920644editdlrm
squid.py20540644editdlrm
squid.pyc21020644editdlrm
squid.pyo21020644editdlrm
ssh.py11510644editdlrm
ssh.pyc8850644editdlrm
ssh.pyo8850644editdlrm
ssmtp.py12990644editdlrm
ssmtp.pyc11310644editdlrm
ssmtp.pyo11310644editdlrm
sssd.py15930644editdlrm
sssd.pyc19650644editdlrm
sssd.pyo19650644editdlrm
startup.py18420644editdlrm
startup.pyc21300644editdlrm
startup.pyo21300644editdlrm
sunrpc.py16500644editdlrm
sunrpc.pyc13510644editdlrm
sunrpc.pyo13510644editdlrm
symcli.py38320644editdlrm
symcli.pyc36000644editdlrm
symcli.pyo36000644editdlrm
system.py11920644editdlrm
system.pyc9830644editdlrm
system.pyo9830644editdlrm
systemd.py19150644editdlrm
systemd.pyc15950644editdlrm
systemd.pyo15950644editdlrm
systemtap.py12430644editdlrm
systemtap.pyc10270644editdlrm
systemtap.pyo10270644editdlrm
sysvipc.py12040644editdlrm
sysvipc.pyc9440644editdlrm
sysvipc.pyo9440644editdlrm
teamd.py19250644editdlrm
teamd.pyc16740644editdlrm
teamd.pyo16740644editdlrm
tftpserver.py10870644editdlrm
tftpserver.pyc9210644editdlrm
tftpserver.pyo9210644editdlrm
tomcat.py22840644editdlrm
tomcat.pyc19240644editdlrm
tomcat.pyo19240644editdlrm
tuned.py13990644editdlrm
tuned.pyc10590644editdlrm
tuned.pyo10590644editdlrm
ubuntu.py12490644editdlrm
ubuntu.pyc11000644editdlrm
ubuntu.pyo11000644editdlrm
udev.py11230644editdlrm
udev.pyc9260644editdlrm
udev.pyo9260644editdlrm
upstart.py17590644editdlrm
upstart.pyc13090644editdlrm
upstart.pyo13090644editdlrm
usb.py10960644editdlrm
usb.pyc8830644editdlrm
usb.pyo8830644editdlrm
veritas.py16530644editdlrm
veritas.pyc15690644editdlrm
veritas.pyo15690644editdlrm
vhostmd.py21760644editdlrm
vhostmd.pyc15690644editdlrm
vhostmd.pyo15690644editdlrm
vmware.py11360644editdlrm
vmware.pyc9610644editdlrm
vmware.pyo9610644editdlrm
vsftpd.py10430644editdlrm
vsftpd.pyc8620644editdlrm
vsftpd.pyo8620644editdlrm
x11.py12250644editdlrm
x11.pyc10250644editdlrm
x11.pyo10250644editdlrm
xen.py39380644editdlrm
xen.pyc29220644editdlrm
xen.pyo29220644editdlrm
xfs.py15600644editdlrm
xfs.pyc13170644editdlrm
xfs.pyo13170644editdlrm
xinetd.py12020644editdlrm
xinetd.pyc9790644editdlrm
xinetd.pyo9790644editdlrm
yum.py28120644editdlrm
yum.pyc20620644editdlrm
yum.pyo20620644editdlrm
__init__.py295370644editdlrm
__init__.pyc309700644editdlrm
__init__.pyo309700644editdlrm
Edit: /usr/lib/python2.6/site-packages/sos/plugins/__init__.pyo (30970B)
R]c @s8dZddklZddklZlZlZlZlZddk Z ddk Z ddk Z ddk Z ddk l Z ddkZddkZdZdZdZd Zd efd YZd efd YZdefdYZdefdYZdefdYZedZdS(s; This exports methods available for use by plugins for sos i(twith_statement(tsos_get_command_outputt import_moduletgreptfileobjttailN(ttimec CsdyIt|ii}z)|~}ti||itiSWdQXWntj ogSXdS(s=Return a list of all non overlapping matches in the string(s)N(Rt__exit__t __enter__tretfindalltreadt MULTILINEtAttributeError(tregextfnamet_[1]tf((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt regex_findall s #&cCsYtidd|}tidd|}tidd|id}|d|!}|S( Ns^/(usr/|)(bin|sbin)/ts [^\w\-\.\/]+t_t/t.s ._-i(R tsubtstrip(tcommandtname_maxt mangledname((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_mangle_command)s  cstfd|DS(Nc3sx|]}|jVqWdS(N((t.0tp(tpath(s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pys 2s (tany(Rt path_list((Rs8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_path_in_path_list1scCshtidftidftidftidfg}x+|D]#}|d|io |dSq=WdS(s return a string indicating the type of special node represented by the stat buffer st (block, character, fifo, socket). s block devicescharacter devices named pipetsocketiiN(tstattS_ISBLKtS_ISCHRtS_ISFIFOtS_ISSOCKtst_mode(tstt_typestt((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _node_type5s   tPlugincBs<eZdZd7ZeZdZd8Zd9Z d7Z d:Z dZ e dZdZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZd7dZdZ dZ!dZ"ddZ#dd7dZ$d7edZ%dZ&dd7dZ'dd7d Z(d!Z)d7d7dd7d"Z*d7ed#Z+d$Z,d%Z-d&Z.d'Z/d7e0dd7d(Z1d)Z2d*Z3d+Z4d,Z5d-Z6d.Z7d/Z8d0Z9d1Z:d2Z;d3Z<d4Z=d5Z>d6Z?RS(;s@ This is the base class for sosreport plugins. Plugins should subclass this and set the class variables where applicable. plugin_name is a string returned by plugin.name(). If this is set to None (the default) class_.__name__.tolower() will be returned. Be sure to set this if you are defining multiple plugins that do the same thing on different platforms. requires_root is a boolean that specifies whether or not sosreport should execute this plugin as a super user. version is a string representing the version of the plugin. This can be useful for post-collection tooling. packages (files) is an iterable of the names of packages (the paths of files) to check for before running this plugin. If any of these packages or files is found on the system, the default implementation of check_enabled will return True. profiles is an iterable of profile names that this plugin belongs to. Whenever any of the profiles is selected on the command line the plugin will be enabled (subject to normal check_enabled tests). t unversionedcCst|dtp g|_ng|_g|_g|_d|_g|_g|_||_ g|_ t |_ g|_ g|_d|i jo|i dn tid|_xV|iD]K}|ii|d|iih|dd6|dd 6|d d 6qWdS( Nt option_listRtsoslogtsosiitdescitspeeditenabled(tgetattrtFalseR0t copied_filestexecuted_commandstalertst custom_textt opt_namest opt_parmstcommonstforbidden_pathstsett copy_pathst copy_stringst collect_cmdstloggingt getLoggerR1tappend(tselfR>topt((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt__init__es(             "cCs|io|iS|iiS(s^Returns the plugin's name as a string. This should return a lowercase string. (t plugin_namet__name__tlower(tclass_((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytname~s cCsd|i|fS(Ns[plugin:%s] %s(RN(RGtmsg((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _format_msgscCs|ii|i|dS(N(R1terrorRP(RGRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _log_errorscCs|ii|i|dS(N(R1twarningRP(RGRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _log_warnscCs|ii|i|dS(N(R1tinfoRP(RGRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _log_infoscCs|ii|i|dS(N(R1tdebugRP(RGRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _log_debugscCs |idS(Ntpolicy(R>(RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyRYscCs|ii|dj S(s'Is the package $package_name installed?N(RYt pkg_by_nametNone(RGt package_name((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt is_installedsc CsMd|d}|id|||f|ipdSd }yx|iD]}|dd joqJnti|d|otii|id|d}|id||ii |}t i |||i \} }|o|ii | |qqJqJWWn<tj o0} d} |i| |d| fd }nX|S( s_Apply a regexp substitution to command output archived by sosreport. cmd is the command name from which output is collected (i.e. excluding parameters). The regexp can be a string or a compiled re object. The substitution string, subst, is a string that replaces each occurrence of regexp in each file collected from cmd. Internally 'cmd' is treated as a glob with a leading and trailing '*' and each matching file from the current module's command list is subjected to the replacement. This function returns the number of replacements made. t*s4substituting '%s' for '%s' in commands matching '%s'itfiletexetcmddirsapplying substitution to '%s's-regex substitution failed for '%s' with: '%s'N(RXR9R[tfnmatchtosRtjoinR>tarchivet open_fileR tsubnR t add_stringt ExceptionRR( RGtcmdtregexptsubsttglobstrt replacementstcalledRtreadabletresultteRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytdo_cmd_output_subs0     # c Csy|i|}|id|||f|pdS|ii|}ti|||i\}}|o|ii||nd}Wn8tj o,}d} |i | ||fd}nX|S(sgApply a regexp substitution to a file archived by sosreport. srcpath is the path in the archive where the file can be found. regexp can be a regexp string or a compiled re object. subst is a string to replace each occurance of regexp in the content of srcpath. This function returns the number of replacements made. s"substituting '%s' for '%s' in '%s'is-regex substitution failed for '%s' with: '%s'( t_get_dest_for_srcpathRXReRfR RgR RhRiRR( RGtsrcpathRkRlRRpRqRnRrRO((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt do_file_subs  !  c Cst|dpti|}n|i}g}|iD]"}||do ||q:q:~}x%|D]}|i|d||qlWdS(szApply a regexp substituation to a set of files archived by sos. The set of files to be substituted is generated by matching collected file pathnames against pathexp which may be a regular expression string or compiled re object. The portion of the file to be replaced is specified via regexp and the replacement string is passed in subst.tmatchRuN(thasattrR tcompileRwR8Rv( RGtpathexpRkRlRwRRt file_listR_((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytdo_path_regex_subs 9cCs t||S(N(R(RGRR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytdo_regex_find_allscCsoti|}tiitii||}tii|}tii|o<tii|tii|}|id||fn|}|id||tii |f|i i ||tii |o|id|dS|id||f||jo|i |n|id||i ih|d6|d6dd 6|d 6dS( Ns&made link target '%s' relative as '%s's0copying link '%s' pointing to '%s' with isdir=%ss%link '%s' is a directory, skipping...s#normalized link target '%s' as '%s's.link '%s' points to itself, skipping target...Rutdstpathtyestsymlinktpointsto(RctreadlinkRRdtdirnametnormpathtisabstrelpathRXtisdirRetadd_linkt _do_copy_pathR8RF(RGRutlinkdesttdesttabsdesttreldest((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _copy_symlinks0!!     cCsWxPti|D]?}|id||f|itii||ddqWdS(Ns!recursively adding '%s' from '%s'R(RctlistdirRXRRRdR[(RGRutafile((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _copy_dirs  cCs2x+|iD] }||djo |dSq WdS(NRuR~(R8R[(RGRutcopied((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyRts   cCst||iS(N(R"R?(RGR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_is_forbidden_path$scCsSti|i}ti|i}|i}|ii||ti||dS(N(Rctmajortst_rdevtminorR)Retadd_nodetmakedev(RGRR*tdev_majtdev_mintmode((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt _copy_node's cCs|i|o|id|dS|p |}nyti|}Wn+ttfj o|id|dSXti|i o|i |dSti |i o|i |dSti |i pti |i p8t|}|id||f|i||dS|id||f|i d@p|iid|n|ii|||iih|d6|d 6d d 6dS( sCopy file or directory to the destination tree. If a directory, then everything below it is recursively copied. A list of copied files are saved for use later in preparing a report. sskipping forbidden path '%s'Rsfailed to stat '%s'Ns creating %s node at archive:'%s's!copying path '%s' to archive:'%s'i$RuR~tnoR(RRXRctlstattOSErrortIOErrorRVR$tS_ISLNKR)RtS_ISDIRRtS_ISREGR-RReRhtadd_fileR8RF(RGRuRR*tntype((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR.s:   &  cCs.x'ti|D]}|ii|qWdS(sWSpecify a path to not copy, even if it's part of a copy_specs[] entry. N(tglobR?RF(RGt forbiddenPathtfilespec((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytadd_forbidden_path^scCs|i|ifS(s%return a list of all options selected(R<R=(RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_all_optionsfscCsJxCt|i|iD](\}}||jo||dRR<R=R[tgett iteritems( RGRtdefaulttglobal_optionsRRNRtvaltitemsRR((Rs8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt get_optionss          t,c Csq|i|}yGg}|i|D]}||iq&~}ttd|SWntj o|SXdS(sTWill try to return the option as a list separated by the delimiter. N(RtsplitRtlisttfilterR[Ri(RGRt delimiterRtoptionRRHtopt_list((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_option_as_lists 0c Cs|o t|ptSti|}|it|djodSd}t}|d9}d}xT|D]L}|ti|ti7}|o||jo t}Pn|i |qmW|o|o|}|dti jo|i ti }n|i ti i dd} |it||| ti idti i|} ti i| d|i| } |ii| |ndS( sAdd a file or glob but limit it to sizelimit megabytes. If fname is a single file the file will be tailed to meet sizelimit. If the first file in a glob is too large it will be tailed to meet the sizelimit. iNiRs.tailedRt sos_stringsi(tlenR7RtsortR[RcR$tST_SIZERt add_copy_spectseptlstriptreplaceRtadd_string_as_fileRRRRdRNReR( RGtcopyspect sizelimitttailittfilest current_sizet limit_reachedt_filet file_nametstrfiletrel_patht link_path((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytadd_copy_spec_limits6  !cCst|to |g}nxd|D]\}|o t|p|idtS|i|}|ii||id|q$WdS(szAdd a file specification (can be file, dir,or shell glob) to be copied into the sosreport by this module. sadded null or empty copy specsadded copyspec '%s'N( t isinstancet basestringRRTR7t_expand_copy_specRAtupdateRV(RGt copyspecsRRA((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyRs  i,cCst|d|d|}|ddjo|id||fn|ddjp|ddjo|id|n|S( Nttimeouttrunattstatusi|s command '%s' timed out after %dsi~is%could not run '%s': command not found(RRTRX(RGtprogRRRq((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_command_outputs "cCs|i|d|d|S(s[Execute a command independantly of the output gathering part of sosreport. RR(R(RGRRR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt call_ext_progscCs|i|ddjS(sExecute a command independently of the output gathering part of sosreport and check the return code. Return True for a return code of 0 and False otherwise. Ri(R(RGR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytcheck_ext_progsc Cst|to |g}nt|djo|p|o|idnx[|D]S}|||||f}d}|i|||ii||id|qVWdS(s:Run a program or a list of programs and collect the outputis.ambiguous filename or symlink for command lists2packed command tuple: ('%s', '%s', '%s', %s, '%s')sadded cmd output '%s'N(RRRRTRXRCRFRV( RGtcmdstsuggest_filenamet root_symlinkRRRjtcmdtt_logstr((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytadd_cmd_outputs !cCsctii|iid|i}|otii||}n|oti|n|S(s[Return a path into which this module should store collected command output t sos_commands(RcRRdRet get_tmp_dirRNtmakedirs(RGRNtmaketcmd_output_path((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_cmd_output_pathscGs t||S(sReturns lines matched in fnames, where fnames can either be pathnames to files to grep through or open file objects to grep through line by line. (R(RGRktfnames((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt file_grepscCs|ii}t||S(N(ReRR(RGR`R((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR scCstii|id|i|i|}tii|oQd}xHto<d||f}tii|p |}Pn|d7}qJWn|S(s@The internal function to build up a filename based on a command.Rais%s_%di(RcRRdR>RNRtexistsR(RGR`toutfntinctnewfn((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_make_command_filenamescCsQ|ii||fd|ididd}|id||fdS(s6Add a string to the archive as a file named `filename`s...itutf8tignoresadded string '%s' as '%s'N(RBRFt splitlinestdecodeRX(RGtcontenttfilename((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR s c CsMt}|i|d|d|}|ddjp|ddjodS|id|idt|f|o|i|}n|i|}|t|idd } |ii |d ||o|ii ||n|i i h|d 6| d 6|id i d|d|dd| tii|ii|S(s]Execute a command and save the output to a file for inclusion in the report. RRRi~iscollected output of '%s' in %siRaitoutputR`R_t xmlreporttcmdlinetexitcodetf_stdoutN(RRR[RXRRRR>ReRhRR9RFt add_commandRcRRdtget_archive_path( RGR`RRRRtstartRqRt outfn_strip((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_cmd_output_now&s$ "  cCs1ttd|dddjodStSdS(s?Return whether specified moudle as module_name is loaded or nott^t s /proc/modulesiN(RRR[R(RGt module_name((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytis_module_loadedGs$cCs|ii|dS(spAdd an alert to the collection of alerts for this plugin. These will be displayed in the report N(R:RF(RGt alertstring((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt add_alertOscCs|i|7_dS(svAppend text to the custom text that is included in the report. This is freeform and can include html. N(R;(RGttext((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytadd_custom_textUscCs ti|S(N(R(RGR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR[scCs6x/|iD]$}|id||i|q WdS(Nscollecting path '%s'(RARVR(RGR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_collect_copy_specs^s c Csxt|iD]n}|d\}}}}}|idd|d|id||i|d|d|d|d|qWdS( Nisunpacked command tuple: s('%s', '%s', '%s', %s, '%s')scollecting output of '%s'RRRR(RRCRXRVR (RGtprogsRRRRR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_collect_cmd_outputcs c Csx|iD]\}}d}||ididd7}|id||fy/|ii|tiid|i |Wq t j o }|i d||fq Xq WdS(Ns...iRRscollecting string '%s' as '%s'Rscould not add string '%s': %s( RBRRRVReRhRcRRdRNRiRX(RGtstringRRRr((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt_collect_stringsms       cCsUt}|i|i|i|it|f}|id|dS(sCollect the data for a plugin.scollected plugin '%s' in %sN(RRRRRNRX(RGR tfields((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytcollect|s     cCsTyEt|do|io|iiSt|i|iiSWndSXdS(s9 This function will return the description for the plugint__doc__sN(RxRRtsupert __class__(RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytget_descriptions csip iotitoig_ntitoig_ntdiDptfdiDStS(sThis method will be used to verify that a plugin should execute given the condition of the underlying environment. The default implementation will return True if neither class.files or class.packages is specified. If either are specified the plugin will check for the existence of any of the supplied files or packages and return True if any exist. It is encouraged to override this method if this behavior isn't applicable. css%x|]}tii|VqWdS(N(RcRR(RR((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pys s c3s"x|]}i|VqWdS(N(R](Rtpkg(RG(s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pys s (RtpackagesRRR R(RG((RGs8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt check_enableds cCstS(swThis decides whether a plugin should be automatically loaded or only if manually specified in the command line.(R(RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytdefault_enabledscCs|it|idS(sCollect the list of files declared by the plugin. This method may be overridden to add further copy_specs, forbidden_paths, and external programs if required. N(RRR(RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytsetupscCsdS(sLPerform any postprocessing. To be replaced by a plugin if required. N((RG((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytpostprocscCsd|i}|d|id}t|io}|d}xb|iD]W}|dd|d|df}|d d jo|d |d }n|d }qLW|d}nt|io|d}xx|iD]m}|doJt|do9d|idd|d}|d||df}q|d|d}qW|d}nt|io:|d}x|iD]}|d|}q|W|d}n|idjo|d}||id}n|S(sm Present all information that was gathered in an html file that allows browsing the results. s
s

Plugin s

s

Files copied:

    s
  • %ss..R~RuRRs (symlink to %s)Rs
  • s

s

Commands Executed:

    R_s../RaRs
  • %s
  • R`s
  • %s
  • s

    Alerts:

      Rs

      Additional Information:
      s

      (RNRR8R9R>R:R;(RGthtmlRRjt cmd_rel_pathtalert((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pytreports@       N((((@RKt __module__RR[RJRt requires_roottversionR RRetprofilesRIt classmethodRNRPRRRTRVRXRYR]RsRvR|R}RRRtRRRRRRRRRRRRRRRRRRRR7R RRRRRRRRRR!R"R#R$R((((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR.Dsz         '    )     0   ! $                   t RedHatPlugincBseZdZRS(sCTagging class to indicate that this plugin works with Red Hat Linux(RKR)R(((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR.st UbuntuPlugincBseZdZRS(sBTagging class to indicate that this plugin works with Ubuntu Linux(RKR)R(((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR/st DebianPlugincBseZdZRS(sBTagging class to indicate that this plugin works with Debian Linux(RKR)R(((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR0stIndependentPlugincBseZdZRS(s@Tagging class that indicates this plugin can run on any platform(RKR)R(((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyR1scCs+d|}|p tf}nt||S(sImport name as a module and return a list of all classes defined in that module. superclasses should be a tuple of valid superclasses to import, this defaults to (Plugin,). ssos.plugins.%s(R.R(RNt superclassest plugin_fqname((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyt import_plugins  (Rt __future__Rt sos.utilitiesRRRRRRcRR R$RRDRbRRR"R-tobjectR.R.R/R0R1R[R4(((s8/usr/lib/python2.6/site-packages/sos/plugins/__init__.pyts*(