Hackfut Security File Manager
Current Path:
/usr/lib/python2.6/site-packages/sos/plugins
usr
/
lib
/
python2.6
/
site-packages
/
sos
/
plugins
/
📁
..
📄
__init__.py
(28.84 KB)
📄
__init__.pyc
(30.24 KB)
📄
__init__.pyo
(30.24 KB)
📄
abrt.py
(1.73 KB)
📄
abrt.pyc
(1.57 KB)
📄
abrt.pyo
(1.57 KB)
📄
acpid.py
(1.18 KB)
📄
acpid.pyc
(1.39 KB)
📄
acpid.pyo
(1.39 KB)
📄
activemq.py
(2.01 KB)
📄
activemq.pyc
(2.25 KB)
📄
activemq.pyo
(2.25 KB)
📄
anaconda.py
(1.66 KB)
📄
anaconda.pyc
(1.42 KB)
📄
anaconda.pyo
(1.42 KB)
📄
anacron.py
(1.07 KB)
📄
anacron.pyc
(693 B)
📄
anacron.pyo
(693 B)
📄
apache.py
(2.34 KB)
📄
apache.pyc
(2.51 KB)
📄
apache.pyo
(2.51 KB)
📄
apparmor.py
(1.02 KB)
📄
apparmor.pyc
(789 B)
📄
apparmor.pyo
(789 B)
📄
apport.py
(1.01 KB)
📄
apport.pyc
(801 B)
📄
apport.pyo
(801 B)
📄
apt.py
(1.55 KB)
📄
apt.pyc
(1.32 KB)
📄
apt.pyo
(1.32 KB)
📄
ata.py
(1.46 KB)
📄
ata.pyc
(1.25 KB)
📄
ata.pyo
(1.25 KB)
📄
auditd.py
(1.43 KB)
📄
auditd.pyc
(1.21 KB)
📄
auditd.pyo
(1.21 KB)
📄
autofs.py
(2.25 KB)
📄
autofs.pyc
(2.73 KB)
📄
autofs.pyo
(2.73 KB)
📄
azure.py
(1.24 KB)
📄
azure.pyc
(996 B)
📄
azure.pyo
(996 B)
📄
block.py
(1.78 KB)
📄
block.pyc
(1.41 KB)
📄
block.pyo
(1.41 KB)
📄
boot.py
(1.68 KB)
📄
boot.pyc
(1.36 KB)
📄
boot.pyo
(1.36 KB)
📄
ceph.py
(1.62 KB)
📄
ceph.pyc
(1.38 KB)
📄
ceph.pyo
(1.38 KB)
📄
cgroups.py
(1.4 KB)
📄
cgroups.pyc
(1.44 KB)
📄
cgroups.pyo
(1.44 KB)
📄
cluster.py
(6.29 KB)
📄
cluster.pyc
(5.42 KB)
📄
cluster.pyo
(5.42 KB)
📄
cobbler.py
(1.44 KB)
📄
cobbler.pyc
(1.66 KB)
📄
cobbler.pyo
(1.66 KB)
📄
corosync.py
(1.92 KB)
📄
corosync.pyc
(2.35 KB)
📄
corosync.pyo
(2.35 KB)
📄
cron.py
(1.28 KB)
📄
cron.pyc
(1.06 KB)
📄
cron.pyo
(1.06 KB)
📄
cs.py
(3.55 KB)
📄
cs.pyc
(2.86 KB)
📄
cs.pyo
(2.86 KB)
📄
ctdb.py
(1.6 KB)
📄
ctdb.pyc
(1.55 KB)
📄
ctdb.pyo
(1.55 KB)
📄
cups.py
(1.7 KB)
📄
cups.pyc
(1.31 KB)
📄
cups.pyo
(1.31 KB)
📄
dbus.py
(1.03 KB)
📄
dbus.pyc
(846 B)
📄
dbus.pyo
(846 B)
📄
devicemapper.py
(1.11 KB)
📄
devicemapper.pyc
(937 B)
📄
devicemapper.pyo
(937 B)
📄
dhcp.py
(1.37 KB)
📄
dhcp.pyc
(1.63 KB)
📄
dhcp.pyo
(1.63 KB)
📄
distupgrade.py
(1.67 KB)
📄
distupgrade.pyc
(1.55 KB)
📄
distupgrade.pyo
(1.55 KB)
📄
dmraid.py
(1.54 KB)
📄
dmraid.pyc
(1.18 KB)
📄
dmraid.pyo
(1.18 KB)
📄
docker.py
(2.37 KB)
📄
docker.pyc
(2.38 KB)
📄
docker.pyo
(2.38 KB)
📄
dovecot.py
(1.43 KB)
📄
dovecot.pyc
(1.89 KB)
📄
dovecot.pyo
(1.89 KB)
📄
dpkg.py
(1.1 KB)
📄
dpkg.pyc
(902 B)
📄
dpkg.pyo
(902 B)
📄
ds.py
(2.86 KB)
📄
ds.pyc
(2.46 KB)
📄
ds.pyo
(2.46 KB)
📄
fcoe.py
(1.31 KB)
📄
fcoe.pyc
(897 B)
📄
fcoe.pyo
(897 B)
📄
filesys.py
(2.11 KB)
📄
filesys.pyc
(1.85 KB)
📄
filesys.pyo
(1.85 KB)
📄
firewalld.py
(1.44 KB)
📄
firewalld.pyc
(1.07 KB)
📄
firewalld.pyo
(1.07 KB)
📄
foreman.py
(1.15 KB)
📄
foreman.pyc
(933 B)
📄
foreman.pyo
(933 B)
📄
gdm.py
(993 B)
📄
gdm.pyc
(805 B)
📄
gdm.pyo
(805 B)
📄
general.py
(1.99 KB)
📄
general.pyc
(2.29 KB)
📄
general.pyo
(2.29 KB)
📄
gluster.py
(3.99 KB)
📄
gluster.pyc
(3.7 KB)
📄
gluster.pyo
(3.7 KB)
📄
grub.py
(1.32 KB)
📄
grub.pyc
(1.2 KB)
📄
grub.pyo
(1.2 KB)
📄
grub2.py
(2.19 KB)
📄
grub2.pyc
(1.63 KB)
📄
grub2.pyo
(1.63 KB)
📄
haproxy.py
(1.1 KB)
📄
haproxy.pyc
(887 B)
📄
haproxy.pyo
(887 B)
📄
hardware.py
(1.22 KB)
📄
hardware.pyc
(1.01 KB)
📄
hardware.pyo
(1.01 KB)
📄
hpasm.py
(1.23 KB)
📄
hpasm.pyc
(1.02 KB)
📄
hpasm.pyo
(1.02 KB)
📄
hts.py
(1.01 KB)
📄
hts.pyc
(819 B)
📄
hts.pyo
(819 B)
📄
i18n.py
(1.08 KB)
📄
i18n.pyc
(905 B)
📄
i18n.pyo
(905 B)
📄
infiniband.py
(1.33 KB)
📄
infiniband.pyc
(1.05 KB)
📄
infiniband.pyo
(1.05 KB)
📄
ipa.py
(3.7 KB)
📄
ipa.pyc
(3.26 KB)
📄
ipa.pyo
(3.26 KB)
📄
iprconfig.py
(4.56 KB)
📄
iprconfig.pyc
(2.2 KB)
📄
iprconfig.pyo
(2.2 KB)
📄
ipsec.py
(1.37 KB)
📄
ipsec.pyc
(1.61 KB)
📄
ipsec.pyo
(1.61 KB)
📄
ipvs.py
(1.1 KB)
📄
ipvs.pyc
(869 B)
📄
ipvs.pyo
(869 B)
📄
iscsi.py
(1.4 KB)
📄
iscsi.pyc
(1.27 KB)
📄
iscsi.pyo
(1.27 KB)
📄
iscsitarget.py
(1.6 KB)
📄
iscsitarget.pyc
(1.73 KB)
📄
iscsitarget.pyo
(1.73 KB)
📄
java.py
(1.18 KB)
📄
java.pyc
(1008 B)
📄
java.pyo
(1008 B)
📄
juju.py
(2.9 KB)
📄
juju.pyc
(3.01 KB)
📄
juju.pyo
(3.01 KB)
📄
kdump.py
(1.47 KB)
📄
kdump.pyc
(1.88 KB)
📄
kdump.pyo
(1.88 KB)
📄
keepalived.py
(1.14 KB)
📄
keepalived.pyc
(910 B)
📄
keepalived.pyo
(910 B)
📄
kernel.py
(2.35 KB)
📄
kernel.pyc
(1.97 KB)
📄
kernel.pyo
(1.97 KB)
📄
kernelrt.py
(1.54 KB)
📄
kernelrt.pyc
(1.19 KB)
📄
kernelrt.pyo
(1.19 KB)
📄
keyutils.py
(1.15 KB)
📄
keyutils.pyc
(943 B)
📄
keyutils.pyo
(943 B)
📄
kpatch.py
(1.33 KB)
📄
kpatch.pyc
(1.06 KB)
📄
kpatch.pyo
(1.06 KB)
📄
krb5.py
(1.15 KB)
📄
krb5.pyc
(987 B)
📄
krb5.pyo
(987 B)
📄
kvm.py
(2.03 KB)
📄
kvm.pyc
(1.91 KB)
📄
kvm.pyo
(1.91 KB)
📄
landscape.py
(1.21 KB)
📄
landscape.pyc
(1.21 KB)
📄
landscape.pyo
(1.21 KB)
📄
ldap.py
(3.4 KB)
📄
ldap.pyc
(3.79 KB)
📄
ldap.pyo
(3.79 KB)
📄
libraries.py
(1.22 KB)
📄
libraries.pyc
(1.06 KB)
📄
libraries.pyo
(1.06 KB)
📄
libvirt.py
(2.55 KB)
📄
libvirt.pyc
(2.15 KB)
📄
libvirt.pyo
(2.15 KB)
📄
lilo.py
(1.01 KB)
📄
lilo.pyc
(873 B)
📄
lilo.pyo
(873 B)
📄
logrotate.py
(1.17 KB)
📄
logrotate.pyc
(1006 B)
📄
logrotate.pyo
(1006 B)
📄
logs.py
(3.31 KB)
📄
logs.pyc
(3.09 KB)
📄
logs.pyo
(3.09 KB)
📄
lsbrelease.py
(1.16 KB)
📄
lsbrelease.pyc
(1023 B)
📄
lsbrelease.pyo
(1023 B)
📄
lvm2.py
(3.02 KB)
📄
lvm2.pyc
(2.24 KB)
📄
lvm2.pyo
(2.24 KB)
📄
maas.py
(2.35 KB)
📄
maas.pyc
(2.06 KB)
📄
maas.pyo
(2.06 KB)
📄
md.py
(1.1 KB)
📄
md.pyc
(915 B)
📄
md.pyo
(915 B)
📄
megacli.py
(1.47 KB)
📄
megacli.pyc
(1.33 KB)
📄
megacli.pyo
(1.33 KB)
📄
memory.py
(1.23 KB)
📄
memory.pyc
(1.02 KB)
📄
memory.pyo
(1.02 KB)
📄
mongodb.py
(1.5 KB)
📄
mongodb.pyc
(1.66 KB)
📄
mongodb.pyo
(1.66 KB)
📄
mrggrid.py
(1003 B)
📄
mrggrid.pyc
(796 B)
📄
mrggrid.pyo
(796 B)
📄
mrgmessg.py
(1.01 KB)
📄
mrgmessg.pyc
(825 B)
📄
mrgmessg.pyo
(825 B)
📄
multipath.py
(1.21 KB)
📄
multipath.pyc
(1.01 KB)
📄
multipath.pyo
(1.01 KB)
📄
mysql.py
(3.31 KB)
📄
mysql.pyc
(3.21 KB)
📄
mysql.pyo
(3.21 KB)
📄
named.py
(2.84 KB)
📄
named.pyc
(3.11 KB)
📄
named.pyo
(3.11 KB)
📄
navicli.py
(3.56 KB)
📄
navicli.pyc
(2.94 KB)
📄
navicli.pyo
(2.94 KB)
📄
networking.py
(9.56 KB)
📄
networking.pyc
(8.06 KB)
📄
networking.pyo
(8.06 KB)
📄
nfs.py
(1.18 KB)
📄
nfs.pyc
(980 B)
📄
nfs.pyo
(980 B)
📄
nfsserver.py
(1.79 KB)
📄
nfsserver.pyc
(1.57 KB)
📄
nfsserver.pyo
(1.57 KB)
📄
nis.py
(1.1 KB)
📄
nis.pyc
(953 B)
📄
nis.pyo
(953 B)
📄
nodejs.py
(1.44 KB)
📄
nodejs.pyc
(1.24 KB)
📄
nodejs.pyo
(1.24 KB)
📄
npm.py
(2.28 KB)
📄
npm.pyc
(1.9 KB)
📄
npm.pyo
(1.9 KB)
📄
nscd.py
(1.38 KB)
📄
nscd.pyc
(1.18 KB)
📄
nscd.pyo
(1.18 KB)
📄
ntp.py
(1.44 KB)
📄
ntp.pyc
(1.77 KB)
📄
ntp.pyo
(1.77 KB)
📄
numa.py
(1.48 KB)
📄
numa.pyc
(1.22 KB)
📄
numa.pyo
(1.22 KB)
📄
oddjob.py
(1.16 KB)
📄
oddjob.pyc
(957 B)
📄
oddjob.pyo
(957 B)
📄
openhpi.py
(1.17 KB)
📄
openhpi.pyc
(1.1 KB)
📄
openhpi.pyo
(1.1 KB)
📄
openshift.py
(6.5 KB)
📄
openshift.pyc
(4.59 KB)
📄
openshift.pyo
(4.59 KB)
📄
openssl.py
(1.83 KB)
📄
openssl.pyc
(2.17 KB)
📄
openssl.pyo
(2.17 KB)
📄
openstack_ceilometer.py
(2.07 KB)
📄
openstack_ceilometer.pyc
(2.25 KB)
📄
openstack_ceilometer.pyo
(2.25 KB)
📄
openstack_cinder.py
(2.58 KB)
📄
openstack_cinder.pyc
(2.98 KB)
📄
openstack_cinder.pyo
(2.98 KB)
📄
openstack_glance.py
(1.87 KB)
📄
openstack_glance.pyc
(1.8 KB)
📄
openstack_glance.pyo
(1.8 KB)
📄
openstack_heat.py
(1.82 KB)
📄
openstack_heat.pyc
(2.1 KB)
📄
openstack_heat.pyo
(2.1 KB)
📄
openstack_horizon.py
(2.38 KB)
📄
openstack_horizon.pyc
(2.96 KB)
📄
openstack_horizon.pyo
(2.96 KB)
📄
openstack_keystone.py
(2.61 KB)
📄
openstack_keystone.pyc
(2.53 KB)
📄
openstack_keystone.pyo
(2.53 KB)
📄
openstack_neutron.py
(6.34 KB)
📄
openstack_neutron.pyc
(5.65 KB)
📄
openstack_neutron.pyo
(5.65 KB)
📄
openstack_nova.py
(4.94 KB)
📄
openstack_nova.pyc
(5.56 KB)
📄
openstack_nova.pyo
(5.56 KB)
📄
openstack_swift.py
(1.83 KB)
📄
openstack_swift.pyc
(1.95 KB)
📄
openstack_swift.pyo
(1.95 KB)
📄
openswan.py
(1.6 KB)
📄
openswan.pyc
(1.26 KB)
📄
openswan.pyo
(1.26 KB)
📄
openvswitch.py
(1.49 KB)
📄
openvswitch.pyc
(1.37 KB)
📄
openvswitch.pyo
(1.37 KB)
📄
ovirt.py
(7.34 KB)
📄
ovirt.pyc
(6 KB)
📄
ovirt.pyo
(6 KB)
📄
ovirt_hosted_engine.py
(3.01 KB)
📄
ovirt_hosted_engine.pyc
(2.12 KB)
📄
ovirt_hosted_engine.pyo
(2.12 KB)
📄
pam.py
(1.47 KB)
📄
pam.pyc
(1.78 KB)
📄
pam.pyo
(1.78 KB)
📄
pci.py
(1.2 KB)
📄
pci.pyc
(991 B)
📄
pci.pyo
(991 B)
📄
pcp.py
(5.89 KB)
📄
pcp.pyc
(3.23 KB)
📄
pcp.pyo
(3.23 KB)
📄
postfix.py
(1.5 KB)
📄
postfix.pyc
(1.9 KB)
📄
postfix.pyo
(1.9 KB)
📄
postgresql.py
(5.23 KB)
📄
postgresql.pyc
(4.68 KB)
📄
postgresql.pyo
(4.68 KB)
📄
powerpath.py
(2.04 KB)
📄
powerpath.pyc
(1.89 KB)
📄
powerpath.pyo
(1.89 KB)
📄
powerpc.py
(3.03 KB)
📄
powerpc.pyc
(2.36 KB)
📄
powerpc.pyo
(2.36 KB)
📄
ppp.py
(1.18 KB)
📄
ppp.pyc
(961 B)
📄
ppp.pyo
(961 B)
📄
procenv.py
(1 KB)
📄
procenv.pyc
(788 B)
📄
procenv.pyo
(788 B)
📄
process.py
(1.21 KB)
📄
process.pyc
(995 B)
📄
process.pyo
(995 B)
📄
processor.py
(1.53 KB)
📄
processor.pyc
(1.35 KB)
📄
processor.pyo
(1.35 KB)
📄
psacct.py
(1.61 KB)
📄
psacct.pyc
(1.82 KB)
📄
psacct.pyo
(1.82 KB)
📄
puppet.py
(1.38 KB)
📄
puppet.pyc
(1.26 KB)
📄
puppet.pyo
(1.26 KB)
📄
pxe.py
(1.67 KB)
📄
pxe.pyc
(1.94 KB)
📄
pxe.pyo
(1.94 KB)
📄
python.py
(1.11 KB)
📄
python.pyc
(901 B)
📄
python.pyo
(901 B)
📄
qpid.py
(2.48 KB)
📄
qpid.pyc
(1.79 KB)
📄
qpid.pyo
(1.79 KB)
📄
quagga.py
(1.05 KB)
📄
quagga.pyc
(869 B)
📄
quagga.pyo
(869 B)
📄
rabbitmq.py
(1.24 KB)
📄
rabbitmq.pyc
(1.15 KB)
📄
rabbitmq.pyo
(1.15 KB)
📄
radius.py
(1.69 KB)
📄
radius.pyc
(1.99 KB)
📄
radius.pyo
(1.99 KB)
📄
rhui.py
(1.46 KB)
📄
rhui.pyc
(1.17 KB)
📄
rhui.pyo
(1.17 KB)
📄
rpm.py
(3.12 KB)
📄
rpm.pyc
(2.48 KB)
📄
rpm.pyo
(2.48 KB)
📄
s390.py
(2.32 KB)
📄
s390.pyc
(1.93 KB)
📄
s390.pyo
(1.93 KB)
📄
samba.py
(1.45 KB)
📄
samba.pyc
(1.5 KB)
📄
samba.pyo
(1.5 KB)
📄
sanlock.py
(1.32 KB)
📄
sanlock.pyc
(1.38 KB)
📄
sanlock.pyo
(1.38 KB)
📄
saphana.py
(3.15 KB)
📄
saphana.pyc
(2.01 KB)
📄
saphana.pyo
(2.01 KB)
📄
sapnw.py
(5.76 KB)
📄
sapnw.pyc
(3.89 KB)
📄
sapnw.pyo
(3.89 KB)
📄
sar.py
(2.97 KB)
📄
sar.pyc
(2.28 KB)
📄
sar.pyo
(2.28 KB)
📄
satellite.py
(3.58 KB)
📄
satellite.pyc
(2.99 KB)
📄
satellite.pyo
(2.99 KB)
📄
scsi.py
(1.28 KB)
📄
scsi.pyc
(1.04 KB)
📄
scsi.pyo
(1.04 KB)
📄
selinux.py
(1.76 KB)
📄
selinux.pyc
(1.42 KB)
📄
selinux.pyo
(1.42 KB)
📄
sendmail.py
(1.54 KB)
📄
sendmail.pyc
(1.75 KB)
📄
sendmail.pyo
(1.75 KB)
📄
smartcard.py
(1.36 KB)
📄
smartcard.pyc
(1.17 KB)
📄
smartcard.pyo
(1.17 KB)
📄
snmp.py
(1.31 KB)
📄
snmp.pyc
(1.69 KB)
📄
snmp.pyo
(1.69 KB)
📄
soundcard.py
(1.43 KB)
📄
soundcard.pyc
(1.75 KB)
📄
soundcard.pyo
(1.75 KB)
📄
squid.py
(2.01 KB)
📄
squid.pyc
(2.05 KB)
📄
squid.pyo
(2.05 KB)
📄
ssh.py
(1.12 KB)
📄
ssh.pyc
(885 B)
📄
ssh.pyo
(885 B)
📄
ssmtp.py
(1.27 KB)
📄
ssmtp.pyc
(1.1 KB)
📄
ssmtp.pyo
(1.1 KB)
📄
sssd.py
(1.56 KB)
📄
sssd.pyc
(1.92 KB)
📄
sssd.pyo
(1.92 KB)
📄
startup.py
(1.8 KB)
📄
startup.pyc
(2.08 KB)
📄
startup.pyo
(2.08 KB)
📄
sunrpc.py
(1.61 KB)
📄
sunrpc.pyc
(1.32 KB)
📄
sunrpc.pyo
(1.32 KB)
📄
symcli.py
(3.74 KB)
📄
symcli.pyc
(3.52 KB)
📄
symcli.pyo
(3.52 KB)
📄
system.py
(1.16 KB)
📄
system.pyc
(983 B)
📄
system.pyo
(983 B)
📄
systemd.py
(1.87 KB)
📄
systemd.pyc
(1.56 KB)
📄
systemd.pyo
(1.56 KB)
📄
systemtap.py
(1.21 KB)
📄
systemtap.pyc
(1 KB)
📄
systemtap.pyo
(1 KB)
📄
sysvipc.py
(1.18 KB)
📄
sysvipc.pyc
(944 B)
📄
sysvipc.pyo
(944 B)
📄
teamd.py
(1.88 KB)
📄
teamd.pyc
(1.63 KB)
📄
teamd.pyo
(1.63 KB)
📄
tftpserver.py
(1.06 KB)
📄
tftpserver.pyc
(921 B)
📄
tftpserver.pyo
(921 B)
📄
tomcat.py
(2.23 KB)
📄
tomcat.pyc
(1.88 KB)
📄
tomcat.pyo
(1.88 KB)
📄
tuned.py
(1.37 KB)
📄
tuned.pyc
(1.03 KB)
📄
tuned.pyo
(1.03 KB)
📄
ubuntu.py
(1.22 KB)
📄
ubuntu.pyc
(1.07 KB)
📄
ubuntu.pyo
(1.07 KB)
📄
udev.py
(1.1 KB)
📄
udev.pyc
(926 B)
📄
udev.pyo
(926 B)
📄
upstart.py
(1.72 KB)
📄
upstart.pyc
(1.28 KB)
📄
upstart.pyo
(1.28 KB)
📄
usb.py
(1.07 KB)
📄
usb.pyc
(883 B)
📄
usb.pyo
(883 B)
📄
veritas.py
(1.61 KB)
📄
veritas.pyc
(1.53 KB)
📄
veritas.pyo
(1.53 KB)
📄
vhostmd.py
(2.13 KB)
📄
vhostmd.pyc
(1.53 KB)
📄
vhostmd.pyo
(1.53 KB)
📄
vmware.py
(1.11 KB)
📄
vmware.pyc
(961 B)
📄
vmware.pyo
(961 B)
📄
vsftpd.py
(1.02 KB)
📄
vsftpd.pyc
(862 B)
📄
vsftpd.pyo
(862 B)
📄
x11.py
(1.2 KB)
📄
x11.pyc
(1 KB)
📄
x11.pyo
(1 KB)
📄
xen.py
(3.85 KB)
📄
xen.pyc
(2.85 KB)
📄
xen.pyo
(2.85 KB)
📄
xfs.py
(1.52 KB)
📄
xfs.pyc
(1.29 KB)
📄
xfs.pyo
(1.29 KB)
📄
xinetd.py
(1.17 KB)
📄
xinetd.pyc
(979 B)
📄
xinetd.pyo
(979 B)
📄
yum.py
(2.75 KB)
📄
yum.pyc
(2.01 KB)
📄
yum.pyo
(2.01 KB)
Editing: ovirt.py
# Copyright (C) 2014 Red Hat, Inc., Sandro Bonazzola <sbonazzo@redhat.com> # Copyright (C) 2014 Red Hat, Inc., Bryn M. Reeves <bmr@redhat.com> # Copyright (C) 2010 Red Hat, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import re import signal from sos.plugins import Plugin, RedHatPlugin # Class name must be the same as file name and method names must not change class Ovirt(Plugin, RedHatPlugin): """oVirt Engine""" plugin_name = "ovirt" profiles = ('virt',) packages = ( 'ovirt-engine', 'ovirt-engine-dwh', 'ovirt-engine-reports', 'ovirt-scheduler-proxy', 'rhevm', 'rhevm-dwh', 'rhevm-reports' ) DB_PASS_FILES = re.compile( flags=re.VERBOSE, pattern=r""" ^ /etc/ (rhevm|ovirt-engine|ovirt-engine-dwh)/ (engine.conf|ovirt-engine-dwhd.conf) (\.d/.+.conf)? $ """ ) DEFAULT_SENSITIVE_KEYS = ( 'ENGINE_DB_PASSWORD:ENGINE_PKI_TRUST_STORE_PASSWORD:' 'ENGINE_PKI_ENGINE_STORE_PASSWORD:DWH_DB_PASSWORD' ) option_list = [ ('jbosstrace', 'Enable oVirt Engine JBoss stack trace collection', '', True), ('sensitive_keys', 'Sensitive keys to be masked', '', DEFAULT_SENSITIVE_KEYS) ] def setup(self): if self.get_option('jbosstrace'): engine_pattern = "^ovirt-engine\ -server.*jboss-modules.jar" pgrep = "pgrep -f '%s'" % engine_pattern lines = self.call_ext_prog(pgrep)['output'].splitlines() engine_pids = [int(x) for x in lines] if not engine_pids: self.soslog.error('Unable to get ovirt-engine pid') self.add_alert('Unable to get ovirt-engine pid') for pid in engine_pids: try: # backtrace written to '/var/log/ovirt-engine/console.log os.kill(pid, signal.SIGQUIT) except OSError as e: self.soslog.error('Unable to send signal to %d' % pid, e) self.add_forbidden_path('/etc/ovirt-engine/.pgpass') self.add_forbidden_path('/etc/rhevm/.pgpass') # Copy all engine tunables and domain information self.add_cmd_output("engine-config --all") self.add_cmd_output("engine-manage-domains list") # Copy engine config files. self.add_copy_spec([ "/etc/ovirt-engine", "/etc/rhevm/", "/etc/ovirt-engine-dwh", "/etc/ovirt-engine-reports", "/var/log/ovirt-engine", "/var/log/ovirt-engine-dwh", "/var/log/ovirt-engine-reports", "/var/log/ovirt-scheduler-proxy", "/var/log/rhevm", "/etc/sysconfig/ovirt-engine", "/usr/share/ovirt-engine/conf", "/var/log/ovirt-guest-agent", "/var/lib/ovirt-engine/setup-history.txt", "/var/lib/ovirt-engine/setup/answers", "/var/lib/ovirt-engine/external_truststore", "/var/tmp/ovirt-engine/config", "/var/lib/ovirt-engine/jboss_runtime/config", "/var/lib/ovirt-engine-reports/jboss_runtime/config" ]) def postproc(self): """ Obfuscate sensitive keys. """ self.do_file_sub( "/etc/ovirt-engine/engine-config/engine-config.properties", r"Password.type=(.*)", r"Password.type=********" ) self.do_file_sub( "/etc/rhevm/rhevm-config/rhevm-config.properties", r"Password.type=(.*)", r"Password.type=********" ) engine_files = ( 'ovirt-engine.xml', 'ovirt-engine_history/current/ovirt-engine.v1.xml', 'ovirt-engine_history/ovirt-engine.boot.xml', 'ovirt-engine_history/ovirt-engine.initial.xml', 'ovirt-engine_history/ovirt-engine.last.xml', ) for filename in engine_files: self.do_file_sub( "/var/tmp/ovirt-engine/config/%s" % filename, r"<password>(.*)</password>", r"<password>********</password>" ) self.do_file_sub( "/etc/ovirt-engine/redhatsupportplugin.conf", r"proxyPassword=(.*)", r"proxyPassword=********" ) passwd_files = [ "logcollector.conf", "imageuploader.conf", "isouploader.conf" ] for conf_file in passwd_files: conf_path = os.path.join("/etc/ovirt-engine", conf_file) self.do_file_sub( conf_path, r"passwd=(.*)", r"passwd=********" ) self.do_file_sub( conf_path, r"pg-pass=(.*)", r"pg-pass=********" ) sensitive_keys = self.DEFAULT_SENSITIVE_KEYS # Handle --alloptions case which set this to True. keys_opt = self.get_option('sensitive_keys') if keys_opt and keys_opt is not True: sensitive_keys = keys_opt key_list = [x for x in sensitive_keys.split(':') if x] for key in key_list: self.do_path_regex_sub( self.DB_PASS_FILES, r'{key}=(.*)'.format(key=key), r'{key}=********'.format(key=key) ) # Answer files contain passwords for key in ( 'OVESETUP_CONFIG/adminPassword', 'OVESETUP_CONFIG/remoteEngineHostRootPassword', 'OVESETUP_DWH_DB/password', 'OVESETUP_DB/password', 'OVESETUP_REPORTS_CONFIG/adminPassword', 'OVESETUP_REPORTS_DB/password', ): self.do_path_regex_sub( r'/var/lib/ovirt-engine/setup/answers/.*', r'{key}=(.*)'.format(key=key), r'{key}=********'.format(key=key) ) # Answer files contain passwords for key in ( 'OVESETUP_CONFIG/adminPassword', 'OVESETUP_CONFIG/remoteEngineHostRootPassword', ): self.do_path_regex_sub( r'/var/lib/ovirt-engine/setup/answers/.*', r'{key}=(.*)'.format(key=key), r'{key}=********'.format(key=key) ) # aaa profiles contain passwords protect_keys = [ "vars.password", "pool.default.auth.simple.password", "pool.default.ssl.truststore.password", "config.datasource.dbpassword" ] regexp = r"((?m)^\s*#*(%s)\s*=\s*)(.*)" % "|".join(protect_keys) self.do_path_regex_sub("/etc/ovirt-engine/aaa/.*\.properties", regexp, r"\1*********") # vim: expandtab tabstop=4 shiftwidth=4
Upload File
Create Folder