__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Copyright (C) 2014 Adam Stokes <adam.stokes@ubuntu.com>
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.
from os import environ
import re
from sos.report.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin
class OpenVSwitch(Plugin):
short_desc = 'OpenVSwitch networking'
plugin_name = "openvswitch"
profiles = ('network', 'virt')
actl = "ovs-appctl"
vctl = "ovs-vsctl"
ofctl = "ovs-ofctl"
dpctl = "ovs-dpctl"
check_dpdk = False
check_6wind = False
def setup(self):
all_logs = self.get_option("all_logs")
log_dirs = [
'/var/log/openvswitch/',
'/usr/local/var/log/openvswitch/',
]
dpdk_enabled = self.collect_cmd_output(
f"{self.vctl} -t 5 get Open_vSwitch . other_config:dpdk-init")
self.check_dpdk = (dpdk_enabled["status"] == 0 and
dpdk_enabled["output"].startswith('"true"'))
self.check_6wind = any(self.is_installed(p) for p in
['6windgate-fp', 'nuage-openvswitch'])
if environ.get('OVS_LOGDIR'):
log_dirs.append(environ.get('OVS_LOGDIR'))
if not all_logs:
self.add_copy_spec([
self.path_join(ld, '*.log') for ld in log_dirs
])
else:
self.add_copy_spec(log_dirs)
self.add_copy_spec([
"/run/openvswitch/ovsdb-server.pid",
"/run/openvswitch/ovs-vswitchd.pid",
"/run/openvswitch/ovs-monitor-ipsec.pid"
])
self.add_copy_spec([
self.path_join('/usr/local/etc/openvswitch', 'conf.db'),
self.path_join('/etc/openvswitch', 'conf.db'),
self.path_join('/var/lib/openvswitch', 'conf.db'),
])
ovs_dbdir = environ.get('OVS_DBDIR')
if ovs_dbdir:
self.add_copy_spec(self.path_join(ovs_dbdir, 'conf.db'))
self.add_file_tags({
"/var/log/openvswitch/ovs-vswitchd.log":
"openvswitch_daemon_log",
"/var/log/openvswitch/ovsdb-server.log":
"openvswitch_server_log"
})
self.add_dir_listing([
'/run/openvswitch',
'/dev/hugepages/',
'/dev/vfio',
'/var/lib/vhost_sockets',
])
self.add_cmd_output([
# List devices and their drivers
"dpdk_nic_bind --status",
"dpdk-devbind.py --status",
"driverctl list-devices",
"driverctl -v list-devices",
"driverctl list-overrides",
"driverctl -v list-overrides",
"driverctl list-persisted",
# Capture a list of all bond devices
f"{self.actl} bond/list",
# Capture more details from bond devices
f"{self.actl} bond/show",
# Capture LACP details
f"{self.actl} lacp/show",
f"{self.actl} lacp/show-stats",
# Capture coverage stats"
f"{self.actl} coverage/show",
# Capture cached routes
f"{self.actl} ovs/route/show",
# Capture tnl arp table"
f"{self.actl} tnl/arp/show",
# Capture a list of listening ports"
f"{self.actl} tnl/ports/show -v",
# Capture upcall information
f"{self.actl} upcall/show",
# Capture OVS list
f"{self.vctl} -t 5 list Open_vSwitch",
# Capture OVS manager
f"{self.vctl} -t 5 list manager",
# Capture OVS interface list
f"{self.vctl} -t 5 list interface",
# Capture OVS detailed information from all the bridges
f"{self.vctl} -t 5 list bridge",
# Capture OVS datapath list
f"{self.vctl} -t 5 list datapath",
# Capture DPDK queue to pmd mapping
f"{self.actl} dpif-netdev/pmd-rxq-show -secs 5",
f"{self.actl} dpif-netdev/pmd-rxq-show -secs 30",
f"{self.actl} dpif-netdev/pmd-rxq-show",
# Capture DPDK pmd stats
f"{self.actl} dpif-netdev/pmd-stats-show",
# Capture DPDK pmd performance counters
f"{self.actl} dpif-netdev/pmd-perf-show",
# Capture ofproto tunnel configs
f"{self.actl} ofproto/list-tunnels",
# Capture ipsec tunnel information
f"{self.actl} -t ovs-monitor-ipsec tunnels/show",
f"{self.actl} -t ovs-monitor-ipsec xfrm/state",
f"{self.actl} -t ovs-monitor-ipsec xfrm/policies",
# Capture OVS offload enabled flows
f"{self.dpctl} dump-flows --name -m type=offloaded",
# Capture OVS slowdatapth flows
f"{self.dpctl} dump-flows --name -m type=ovs",
# Capture dpcls implementations
f"{self.actl} dpif-netdev/subtable-lookup-prio-get",
# Capture dpif implementations
f"{self.actl} dpif-netdev/dpif-impl-get",
# Capture miniflow extract implementations
f"{self.actl} dpif-netdev/miniflow-parser-get",
# Capture DPDK pmd sleep config
f"{self.actl} dpif-netdev/pmd-sleep-show",
# Capture additional DPDK info
f"{self.actl} dpdk/lcore-list",
f"{self.actl} dpdk/log-list",
f"{self.actl} dpdk/get-malloc-stats",
# Capture dpdk mempool info
f"{self.actl} netdev-dpdk/get-mempool-info"
])
# Capture DPDK and other parameters
self.add_cmd_output(
f"{self.vctl} -t 5 get Open_vSwitch . other_config",
tags="openvswitch_other_config")
# The '-t 5' adds an upper bound on how long to wait to connect
# to the Open vSwitch server, avoiding hangs when running sos.
self.add_cmd_output(f"{self.vctl} -t 5 show",
tags="ovs_vsctl_show")
# Gather systemd services logs
self.add_journal(units="openvswitch")
self.add_journal(units="openvswitch-nonetwork")
self.add_journal(units="ovs-vswitchd")
self.add_journal(units="ovsdb-server")
self.add_journal(units="ovs-configuration")
self.add_journal(units="openvswitch-ipsec")
self.collect_ovs_info()
self.collect_datapath()
self.collect_ovs_bridge_info()
def collect_ovs_info(self):
""" Collect output of OVS commands """
files_6wind = [
"/etc/systemd/system/multi-user.target.wants/openvswitch.service",
"/etc/sysctl.d/60-6wind-system-auto-reboot.conf",
"/etc/openvswitch/system-id.conf",
"/etc/openvswitch/*.db",
"/etc/ld.so.conf.d/linux-fp-sync-fptun.conf",
"/etc/NetworkManager/conf.d/fpn0.conf",
"/etc/default/openvswitch",
"/etc/logrotate.d/openvswitch",
"/etc/linux-fp-sync.env",
"/etc/fp-daemons.env",
"/etc/fp-vdev.ini",
"/etc/fpm.env",
"/etc/6WINDGate/fp.config",
"/etc/6WINDGate/fpnsdk.config",
"/etc/dms.d/fp-dms.conf",
"/etc/dms.d/fpmd-dms.conf",
"/etc/dms.d/fpsd-dms.conf",
"/etc/fast-path.env",
"/etc/fps-fp.env",
]
if self.check_6wind:
self.add_copy_spec(files_6wind)
self.add_cmd_output([
# Various fast-path stats
"fp-cli fp-vswitch-stats",
"fp-cli dpdk-core-port-mapping",
"fp-cpu-usage",
"fp-cli fp-vswitch-masks",
"fp-cli fp-vswitch-flows",
"fp-shmem-dpvi",
"fp-cli stats non-zero",
"fp-cli stats",
"fp-cli dpdk-cp-filter-budget",
f"{self.actl} vm/port-detailed-show",
f"{self.actl} upcall/show",
"fp-cli nfct4",
f"{self.actl} vm/port-vip-list-show",
"fp-shmem-ports -s",
f"{self.dpctl} show -s",
"fpcmd fp-vswitch-flows",
"fp-cli fp-vswitch-ports percore",
"fp-cli dpdk-debug-pool",
"fp-cli dump-size",
"fp-cli conf runtime",
"fp-cli conf compiled",
"fp-cli iface",
f"{self.actl} memory/show",
])
self.add_journal(units="virtual-accelerator")
for table in ['filter', 'mangle', 'raw', 'nat']:
self.add_cmd_output([f"fpcmd nf4-rules {table}"])
# 6wind doesn't care on which bridge the ports are, there's only
# one bridge and it's alubr0
port_list = self.collect_cmd_output("fp-cli fp-vswitch-ports")
if port_list['status'] == 0:
for port in port_list['output'].splitlines():
mport = re.match(r'^([\d]+):[\s]+([^\s]+)', port)
if mport:
port_name = mport.group(2)
self.add_cmd_output([
f"fp-cli dpdk-cp-filter-budget {port_name}",
])
def collect_datapath(self):
""" Gather the datapath information for each datapath """
dp_list_result = self.collect_cmd_output(f'{self.actl} dpctl/dump-dps')
if dp_list_result['status'] == 0:
for dps in dp_list_result['output'].splitlines():
self.add_cmd_output([
f"{self.actl} dpctl/show -s {dps}",
f"{self.actl} dpctl/dump-flows -m {dps}",
f"{self.actl} dpctl/dump-conntrack -m {dps}",
f"{self.actl} dpctl/ct-stats-show -m {dps}",
f"{self.actl} dpctl/ipf-get-status {dps}",
])
def collect_ovs_bridge_info(self):
""" Gather additional output for each OVS bridge on the host. """
br_list_result = self.collect_cmd_output(f"{self.vctl} -t 5 list-br")
if br_list_result['status'] != 0:
return
for bri in br_list_result['output'].splitlines():
self.add_cmd_output([
f"{self.actl} bridge/dump-flows --offload-stats {bri}",
f"{self.actl} dpif/show-dp-features {bri}",
f"{self.actl} fdb/show {bri}",
f"{self.actl} fdb/stats-show {bri}",
f"{self.actl} mdb/show {bri}",
f"{self.ofctl} dump-flows {bri}",
f"{self.ofctl} dump-ports-desc {bri}",
f"{self.ofctl} dump-ports {bri}",
f"{self.ofctl} queue-get-config {bri}",
f"{self.ofctl} queue-stats {bri}",
f"{self.ofctl} show {bri}",
f"{self.ofctl} dump-groups {bri}",
])
self.get_flow_versions(bri)
self.get_port_list(bri)
if self.check_dpdk:
iface_list_result = self.exec_cmd(
f"{self.vctl} -t 5 list-ifaces {bri}"
)
if iface_list_result['status'] == 0:
for iface in iface_list_result['output'].splitlines():
self.add_cmd_output(
f"{self.actl} netdev-dpdk/get-mempool-info {iface}"
)
if self.check_6wind:
self.add_cmd_output([
f"{self.actl} evpn/vip-list-show {bri}",
f"{self.actl} bridge/dump-conntracks-summary {bri}",
f"{self.actl} bridge/acl-table ingress/egress {bri}",
f"{self.actl} bridge/acl-table {bri}",
f"{self.actl} ofproto/show {bri}",
])
vrf_list = self.collect_cmd_output(
f"{self.actl} vrf/list {bri}")
if vrf_list['status'] == 0:
vrfs = vrf_list['output'].split()[1:]
for vrf in vrfs:
self.add_cmd_output([
f"{self.actl} vrf/route-table {vrf}",
])
evpn_list = self.collect_cmd_output(
f"{self.actl} evpn/list {bri}")
if evpn_list['status'] == 0:
evpns = evpn_list['output'].split()[1:]
for evpn in evpns:
self.add_cmd_output([
f"{self.actl} evpn/mac-table {evpn}",
f"{self.actl} evpn/arp-table {evpn}",
f"{self.actl} evpn/dump-flows {bri} {evpn}",
f"{self.actl} evpn/dhcp-pool-show {bri} {evpn}",
f"{self.actl} evpn/dhcp-relay-show {bri} {evpn}",
f"{self.actl} evpn/dhcp-static-show {bri} {evpn}",
f"{self.actl} evpn/dhcp-table-show {bri} {evpn}",
f"{self.actl} evpn/proxy-arp-filter-list "
f"{bri} {evpn}",
f"{self.actl} evpn/show {bri} {evpn}",
f"{self.actl} port/dscp-table {bri} {evpn}",
])
def get_flow_versions(self, bridge):
""" Collect flow version of the given bridge """
# Flow protocols currently supported
flow_versions = [
"OpenFlow10",
"OpenFlow11",
"OpenFlow12",
"OpenFlow13",
"OpenFlow14",
"OpenFlow15"
]
# Flow protocol hex identifiers
ofp_versions = {
0x01: "OpenFlow10",
0x02: "OpenFlow11",
0x03: "OpenFlow12",
0x04: "OpenFlow13",
0x05: "OpenFlow14",
0x06: "OpenFlow15",
}
ofp_ver_result = self.collect_cmd_output(f"{self.vctl} -t 5 --version")
# List protocols currently in use, if any
br_info = self.collect_cmd_output(
f"{self.vctl} -t 5 list bridge {bridge}")
br_protos = []
for line in br_info['output'].splitlines():
if "protocols" in line:
br_protos_ln = line[line.find("[")+1:line.find("]")]
br_protos = br_protos_ln.replace('"', '').split(", ")
# If 'list bridge' yeilded no protocols, use the range of
# protocols enabled by default on this version of ovs.
if br_protos == [''] and ofp_ver_result['output']:
ofp_version_range = ofp_ver_result['output'].splitlines()
ver_range = []
for line in ofp_version_range:
if "OpenFlow versions" in line:
ver_sp = line.split("OpenFlow versions ")
ver = ver_sp[1].split(":")
ver_range = range(int(ver[0], 16),
int(ver[1], 16)+1)
for protocol in ver_range:
if protocol in ofp_versions:
br_protos.append(ofp_versions[protocol])
# Collect flow information for relevant protocol versions only
for flow in flow_versions:
if flow in br_protos:
self.add_cmd_output([
f"{self.ofctl} -O {flow} show {bridge}",
f"{self.ofctl} -O {flow} dump-groups {bridge}",
f"{self.ofctl} -O {flow} dump-group-stats {bridge}",
f"{self.ofctl} -O {flow} dump-flows {bridge}",
f"{self.ofctl} -O {flow} dump-tlv-map {bridge}",
f"{self.ofctl} -O {flow} dump-ports-desc {bridge}",
f"{self.ofctl} -O {flow} dump-meters {bridge}",
f"{self.ofctl} -O {flow} meter-stats {bridge}",
])
def get_port_list(self, bridge):
""" Collect port list of the given bridge """
port_list_result = self.exec_cmd(
f"{self.vctl} -t 5 list-ports {bridge}")
if port_list_result['status'] == 0:
for port in port_list_result['output'].splitlines():
self.add_cmd_output([
f"{self.actl} cfm/show {port}",
f"{self.actl} qos/show {port}",
# Not all ports are "bond"s, but all "bond"s are
# a single port
f"{self.actl} bond/show {port}",
# In the case of IPSec, we should pull the config
f"{self.actl} get Interface {port} options",
])
if self.check_dpdk:
self.add_cmd_output(
f"{self.actl} netdev-dpdk/get-mempool-info {port}")
class RedHatOpenVSwitch(OpenVSwitch, RedHatPlugin):
packages = ('openvswitch', 'openvswitch[2-9].*',
'openvswitch-dpdk', 'nuage-openvswitch'
'6windgate-fp')
class DebianOpenVSwitch(OpenVSwitch, DebianPlugin, UbuntuPlugin):
packages = ('openvswitch-switch', 'nuage-openvswitch')
files = (
'/var/snap/openstack-hypervisor/common/etc/openvswitch/system-id.conf',
)
def setup(self):
if self.is_installed('openstack-hypervisor'):
self.ovs_cmd_pre = "openstack-hypervisor."
self.actl = f"{self.ovs_cmd_pre}{self.actl}"
self.vctl = f"{self.ovs_cmd_pre}{self.vctl}"
self.ofctl = f"{self.ovs_cmd_pre}{self.ofctl}"
self.dpctl = f"{self.ovs_cmd_pre}{self.dpctl}"
super().setup()
# vim: set et ts=4 sw=4 :
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 138.51 KB | 0644 |
|
| aap_containerized.py | File | 5.04 KB | 0644 |
|
| aap_controller.py | File | 3.15 KB | 0644 |
|
| aap_eda.py | File | 2.16 KB | 0644 |
|
| aap_gateway.py | File | 1.71 KB | 0644 |
|
| aap_hub.py | File | 1.31 KB | 0644 |
|
| aap_receptor.py | File | 1.85 KB | 0644 |
|
| abrt.py | File | 1.51 KB | 0644 |
|
| acpid.py | File | 917 B | 0644 |
|
| activemq.py | File | 1.65 KB | 0644 |
|
| aide.py | File | 1.41 KB | 0644 |
|
| alternatives.py | File | 2.27 KB | 0644 |
|
| anaconda.py | File | 1.46 KB | 0644 |
|
| anacron.py | File | 782 B | 0644 |
|
| ansible.py | File | 1.08 KB | 0644 |
|
| apache.py | File | 6 KB | 0644 |
|
| apparmor.py | File | 1.05 KB | 0644 |
|
| apport.py | File | 1.37 KB | 0644 |
|
| apt.py | File | 1.73 KB | 0644 |
|
| arcconf.py | File | 2.17 KB | 0644 |
|
| ata.py | File | 1016 B | 0644 |
|
| auditd.py | File | 1.83 KB | 0644 |
|
| authd.py | File | 2.2 KB | 0644 |
|
| autofs.py | File | 2.77 KB | 0644 |
|
| azure.py | File | 2.37 KB | 0644 |
|
| bcache.py | File | 2.2 KB | 0644 |
|
| bird.py | File | 2.41 KB | 0644 |
|
| block.py | File | 2.44 KB | 0644 |
|
| boom.py | File | 1.05 KB | 0644 |
|
| boot.py | File | 1.99 KB | 0644 |
|
| bootc.py | File | 940 B | 0644 |
|
| btrfs.py | File | 739 B | 0644 |
|
| buildah.py | File | 1.82 KB | 0644 |
|
| candlepin.py | File | 5.84 KB | 0644 |
|
| canonical_livepatch.py | File | 1.04 KB | 0644 |
|
| canonical_livepatch_onprem.py | File | 1.22 KB | 0644 |
|
| ceph_ansible.py | File | 956 B | 0644 |
|
| ceph_common.py | File | 6.83 KB | 0644 |
|
| ceph_iscsi.py | File | 1.55 KB | 0644 |
|
| ceph_mds.py | File | 4.15 KB | 0644 |
|
| ceph_mgr.py | File | 5.92 KB | 0644 |
|
| ceph_mon.py | File | 9.82 KB | 0644 |
|
| ceph_osd.py | File | 5.27 KB | 0644 |
|
| ceph_rgw.py | File | 4.51 KB | 0644 |
|
| cgroups.py | File | 1.39 KB | 0644 |
|
| charmed_mysql.py | File | 5.23 KB | 0644 |
|
| charmed_postgresql.py | File | 6.05 KB | 0644 |
|
| chrony.py | File | 1.84 KB | 0644 |
|
| cifs.py | File | 962 B | 0644 |
|
| clear_containers.py | File | 2.58 KB | 0644 |
|
| cloud_init.py | File | 1.07 KB | 0644 |
|
| cman.py | File | 1.78 KB | 0644 |
|
| cobbler.py | File | 1.29 KB | 0644 |
|
| cockpit.py | File | 968 B | 0644 |
|
| collectd.py | File | 2.24 KB | 0644 |
|
| collectl.py | File | 752 B | 0644 |
|
| composer.py | File | 2.11 KB | 0644 |
|
| conntrack.py | File | 2.37 KB | 0644 |
|
| console.py | File | 869 B | 0644 |
|
| container_log.py | File | 1.54 KB | 0644 |
|
| containerd.py | File | 1.37 KB | 0644 |
|
| containers_common.py | File | 2.64 KB | 0644 |
|
| convert2rhel.py | File | 1.04 KB | 0644 |
|
| coredump.py | File | 5.13 KB | 0644 |
|
| corosync.py | File | 2.41 KB | 0644 |
|
| crio.py | File | 3.38 KB | 0644 |
|
| cron.py | File | 1.01 KB | 0644 |
|
| crypto.py | File | 1.38 KB | 0644 |
|
| cs.py | File | 4.5 KB | 0644 |
|
| ctdb.py | File | 1.42 KB | 0644 |
|
| cups.py | File | 3.08 KB | 0644 |
|
| curtin.py | File | 1.74 KB | 0644 |
|
| cxl.py | File | 1.32 KB | 0644 |
|
| date.py | File | 867 B | 0644 |
|
| dbus.py | File | 877 B | 0644 |
|
| dellrac.py | File | 1.69 KB | 0644 |
|
| devicemapper.py | File | 1.13 KB | 0644 |
|
| devices.py | File | 740 B | 0644 |
|
| dhcp.py | File | 1.03 KB | 0644 |
|
| discovery.py | File | 1.15 KB | 0644 |
|
| distupgrade.py | File | 1.51 KB | 0644 |
|
| dlm.py | File | 1.52 KB | 0644 |
|
| dmraid.py | File | 1.29 KB | 0644 |
|
| dnf.py | File | 5.42 KB | 0644 |
|
| docker.py | File | 5.08 KB | 0644 |
|
| docker_distribution.py | File | 1.3 KB | 0644 |
|
| dovecot.py | File | 1007 B | 0644 |
|
| dpkg.py | File | 1.16 KB | 0644 |
|
| dracut.py | File | 942 B | 0644 |
|
| drbd.py | File | 955 B | 0644 |
|
| ds.py | File | 3.6 KB | 0644 |
|
| ebpf.py | File | 3.11 KB | 0644 |
|
| elastic.py | File | 2.5 KB | 0644 |
|
| etcd.py | File | 2.14 KB | 0644 |
|
| fail2ban.py | File | 830 B | 0644 |
|
| fapolicyd.py | File | 1.34 KB | 0644 |
|
| fcoe.py | File | 1018 B | 0644 |
|
| fibrechannel.py | File | 1.77 KB | 0644 |
|
| filesys.py | File | 3.81 KB | 0644 |
|
| firewall_tables.py | File | 5.07 KB | 0644 |
|
| firewalld.py | File | 1.95 KB | 0644 |
|
| flatpak.py | File | 1.29 KB | 0644 |
|
| foreman.py | File | 15.24 KB | 0644 |
|
| foreman_installer.py | File | 3.86 KB | 0644 |
|
| foreman_openscap.py | File | 830 B | 0644 |
|
| foreman_proxy.py | File | 2.19 KB | 0644 |
|
| freeipmi.py | File | 896 B | 0644 |
|
| frr.py | File | 1.79 KB | 0644 |
|
| fwupd.py | File | 1.41 KB | 0644 |
|
| gcp.py | File | 5.38 KB | 0644 |
|
| gdm.py | File | 735 B | 0644 |
|
| gfs2.py | File | 1.36 KB | 0644 |
|
| gluster.py | File | 4.34 KB | 0644 |
|
| gluster_block.py | File | 1.07 KB | 0644 |
|
| grafana.py | File | 2.01 KB | 0644 |
|
| greenboot.py | File | 905 B | 0644 |
|
| grub.py | File | 988 B | 0644 |
|
| grub2.py | File | 2.81 KB | 0644 |
|
| gssproxy.py | File | 823 B | 0644 |
|
| haproxy.py | File | 2.41 KB | 0644 |
|
| hardware.py | File | 1.13 KB | 0644 |
|
| helm.py | File | 1.14 KB | 0644 |
|
| host.py | File | 1.74 KB | 0644 |
|
| hpasm.py | File | 898 B | 0644 |
|
| hpssm.py | File | 2.65 KB | 0644 |
|
| hts.py | File | 700 B | 0644 |
|
| hyperv.py | File | 886 B | 0644 |
|
| i18n.py | File | 774 B | 0644 |
|
| infiniband.py | File | 2.66 KB | 0644 |
|
| infinidat.py | File | 1.38 KB | 0644 |
|
| insights.py | File | 2.49 KB | 0644 |
|
| instructlab.py | File | 5.45 KB | 0644 |
|
| ipa.py | File | 7.36 KB | 0644 |
|
| ipmitool.py | File | 1.53 KB | 0644 |
|
| iprconfig.py | File | 4.53 KB | 0644 |
|
| ipvs.py | File | 1.04 KB | 0644 |
|
| iscsi.py | File | 2.15 KB | 0644 |
|
| iscsitarget.py | File | 1.25 KB | 0644 |
|
| jars.py | File | 5.39 KB | 0644 |
|
| java.py | File | 978 B | 0644 |
|
| juju.py | File | 8.03 KB | 0644 |
|
| kafka.py | File | 2.07 KB | 0644 |
|
| kata_containers.py | File | 1.34 KB | 0644 |
|
| kdump.py | File | 5.63 KB | 0644 |
|
| kea.py | File | 1.37 KB | 0644 |
|
| keepalived.py | File | 855 B | 0644 |
|
| kernel.py | File | 5.85 KB | 0644 |
|
| kernelrt.py | File | 1.66 KB | 0644 |
|
| keyutils.py | File | 894 B | 0644 |
|
| kimchi.py | File | 1009 B | 0644 |
|
| kpatch.py | File | 1.02 KB | 0644 |
|
| krb5.py | File | 2.88 KB | 0644 |
|
| kubernetes.py | File | 12.45 KB | 0644 |
|
| kvm.py | File | 954 B | 0644 |
|
| landscape.py | File | 3.17 KB | 0644 |
|
| ldap.py | File | 2.99 KB | 0644 |
|
| leapp.py | File | 1.49 KB | 0644 |
|
| libraries.py | File | 1.56 KB | 0644 |
|
| libreswan.py | File | 2.47 KB | 0644 |
|
| libvirt.py | File | 3.76 KB | 0644 |
|
| lightdm.py | File | 1.11 KB | 0644 |
|
| lilo.py | File | 716 B | 0644 |
|
| login.py | File | 1.06 KB | 0644 |
|
| logrotate.py | File | 1.24 KB | 0644 |
|
| logs.py | File | 3.92 KB | 0644 |
|
| lstopo.py | File | 1.2 KB | 0644 |
|
| lustre.py | File | 2.86 KB | 0644 |
|
| lvm2.py | File | 4.6 KB | 0644 |
|
| lxd.py | File | 4.31 KB | 0644 |
|
| maas.py | File | 5.07 KB | 0644 |
|
| manageiq.py | File | 2.86 KB | 0644 |
|
| md.py | File | 1.22 KB | 0644 |
|
| megacli.py | File | 1.01 KB | 0644 |
|
| mellanox_firmware.py | File | 4.7 KB | 0644 |
|
| memcached.py | File | 1.58 KB | 0644 |
|
| memory.py | File | 1.44 KB | 0644 |
|
| microcloud.py | File | 2.72 KB | 0644 |
|
| microk8s.py | File | 4.38 KB | 0644 |
|
| microovn.py | File | 3.23 KB | 0644 |
|
| microshift.py | File | 6.96 KB | 0644 |
|
| microshift_ovn.py | File | 1.69 KB | 0644 |
|
| migration_results.py | File | 637 B | 0644 |
|
| mongodb.py | File | 4.03 KB | 0644 |
|
| monit.py | File | 1.68 KB | 0644 |
|
| mpt.py | File | 732 B | 0644 |
|
| mssql.py | File | 3.29 KB | 0644 |
|
| multipath.py | File | 1011 B | 0644 |
|
| mvcli.py | File | 1003 B | 0644 |
|
| mysql.py | File | 4.44 KB | 0644 |
|
| named.py | File | 2.5 KB | 0644 |
|
| navicli.py | File | 2.47 KB | 0644 |
|
| networking.py | File | 14.36 KB | 0644 |
|
| networkmanager.py | File | 5.04 KB | 0644 |
|
| nfs.py | File | 1.32 KB | 0644 |
|
| nfsganesha.py | File | 1.2 KB | 0644 |
|
| nginx.py | File | 1.53 KB | 0644 |
|
| nis.py | File | 812 B | 0644 |
|
| nodejs.py | File | 1.18 KB | 0644 |
|
| npm.py | File | 2.06 KB | 0644 |
|
| nscd.py | File | 989 B | 0644 |
|
| nss.py | File | 885 B | 0644 |
|
| ntb.py | File | 937 B | 0644 |
|
| ntp.py | File | 1.41 KB | 0644 |
|
| numa.py | File | 1.46 KB | 0644 |
|
| nvidia.py | File | 1.82 KB | 0644 |
|
| nvme.py | File | 1.71 KB | 0644 |
|
| nvmetcli.py | File | 977 B | 0644 |
|
| oddjob.py | File | 871 B | 0644 |
|
| omnipath_client.py | File | 1.92 KB | 0644 |
|
| omnipath_manager.py | File | 2.38 KB | 0644 |
|
| omsa.py | File | 1.64 KB | 0644 |
|
| opencl.py | File | 692 B | 0644 |
|
| opencontrail.py | File | 1.35 KB | 0644 |
|
| opendaylight.py | File | 1.38 KB | 0644 |
|
| opengl.py | File | 694 B | 0644 |
|
| openhpi.py | File | 878 B | 0644 |
|
| openshift.py | File | 16.88 KB | 0644 |
|
| openshift_ovn.py | File | 2.61 KB | 0644 |
|
| openssl.py | File | 1.4 KB | 0644 |
|
| openstack_ansible.py | File | 1.31 KB | 0644 |
|
| openstack_aodh.py | File | 3.93 KB | 0644 |
|
| openstack_barbican.py | File | 1.76 KB | 0644 |
|
| openstack_ceilometer.py | File | 3.24 KB | 0644 |
|
| openstack_cinder.py | File | 6.84 KB | 0644 |
|
| openstack_database.py | File | 2.47 KB | 0644 |
|
| openstack_designate.py | File | 3.58 KB | 0644 |
|
| openstack_edpm.py | File | 1.45 KB | 0644 |
|
| openstack_glance.py | File | 4.67 KB | 0644 |
|
| openstack_gnocchi.py | File | 4.27 KB | 0644 |
|
| openstack_heat.py | File | 5.34 KB | 0644 |
|
| openstack_horizon.py | File | 3.37 KB | 0644 |
|
| openstack_instack.py | File | 5.98 KB | 0644 |
|
| openstack_ironic.py | File | 8.28 KB | 0644 |
|
| openstack_keystone.py | File | 4.9 KB | 0644 |
|
| openstack_manila.py | File | 3.68 KB | 0644 |
|
| openstack_masakari.py | File | 2.08 KB | 0644 |
|
| openstack_masakarimonitors.py | File | 1.5 KB | 0644 |
|
| openstack_mistral.py | File | 1.6 KB | 0644 |
|
| openstack_neutron.py | File | 6.29 KB | 0644 |
|
| openstack_nova.py | File | 8.75 KB | 0644 |
|
| openstack_novajoin.py | File | 1.15 KB | 0644 |
|
| openstack_octavia.py | File | 5.16 KB | 0644 |
|
| openstack_placement.py | File | 5.01 KB | 0644 |
|
| openstack_sahara.py | File | 2.67 KB | 0644 |
|
| openstack_swift.py | File | 2.95 KB | 0644 |
|
| openstack_tripleo.py | File | 1.62 KB | 0644 |
|
| openstack_trove.py | File | 2.26 KB | 0644 |
|
| opensvc.py | File | 3.39 KB | 0644 |
|
| openvswitch.py | File | 17.47 KB | 0644 |
|
| oratab.py | File | 1.92 KB | 0644 |
|
| origin.py | File | 8.57 KB | 0644 |
|
| os_net_config.py | File | 800 B | 0644 |
|
| ostree.py | File | 1.05 KB | 0644 |
|
| ovirt.py | File | 9.44 KB | 0644 |
|
| ovirt_engine_backup.py | File | 1.72 KB | 0644 |
|
| ovirt_hosted_engine.py | File | 2.16 KB | 0644 |
|
| ovirt_imageio.py | File | 1.56 KB | 0644 |
|
| ovirt_node.py | File | 1.62 KB | 0644 |
|
| ovirt_provider_ovn.py | File | 1.16 KB | 0644 |
|
| ovn_central.py | File | 9.86 KB | 0644 |
|
| ovn_host.py | File | 3.32 KB | 0644 |
|
| pacemaker.py | File | 5.81 KB | 0644 |
|
| pam.py | File | 1.37 KB | 0644 |
|
| pci.py | File | 1.35 KB | 0644 |
|
| pcp.py | File | 6.05 KB | 0644 |
|
| perccli.py | File | 1.81 KB | 0644 |
|
| perccli2.py | File | 1.82 KB | 0644 |
|
| peripety.py | File | 1.19 KB | 0644 |
|
| perl.py | File | 662 B | 0644 |
|
| pmem.py | File | 3.34 KB | 0644 |
|
| podman.py | File | 5.49 KB | 0644 |
|
| postfix.py | File | 4.32 KB | 0644 |
|
| postgresql.py | File | 4.36 KB | 0644 |
|
| powerpath.py | File | 1.82 KB | 0644 |
|
| powerpc.py | File | 4.22 KB | 0644 |
|
| ppp.py | File | 848 B | 0644 |
|
| procenv.py | File | 710 B | 0644 |
|
| process.py | File | 4.29 KB | 0644 |
|
| processor.py | File | 2.56 KB | 0644 |
|
| proxmox.py | File | 2.98 KB | 0644 |
|
| psacct.py | File | 1.29 KB | 0644 |
|
| ptp.py | File | 892 B | 0644 |
|
| pulp.py | File | 7.66 KB | 0644 |
|
| pulpcore.py | File | 7.8 KB | 0644 |
|
| pulseaudio.py | File | 1.56 KB | 0644 |
|
| puppet.py | File | 2.26 KB | 0644 |
|
| pxe.py | File | 1.39 KB | 0644 |
|
| python.py | File | 3.79 KB | 0644 |
|
| qaucli.py | File | 1.35 KB | 0644 |
|
| qpid.py | File | 3.53 KB | 0644 |
|
| qpid_dispatch.py | File | 2.19 KB | 0644 |
|
| qt.py | File | 809 B | 0644 |
|
| quagga.py | File | 755 B | 0644 |
|
| rabbitmq.py | File | 2.73 KB | 0644 |
|
| radius.py | File | 1.34 KB | 0644 |
|
| rasdaemon.py | File | 994 B | 0644 |
|
| rear.py | File | 1.31 KB | 0644 |
|
| redis.py | File | 1.6 KB | 0644 |
|
| release.py | File | 1.2 KB | 0644 |
|
| rhc.py | File | 2.02 KB | 0644 |
|
| rhcos.py | File | 1.36 KB | 0644 |
|
| rhui.py | File | 2.27 KB | 0644 |
|
| rhv_analyzer.py | File | 941 B | 0644 |
|
| rpm.py | File | 2.34 KB | 0644 |
|
| rpmostree.py | File | 1.12 KB | 0644 |
|
| ruby.py | File | 813 B | 0644 |
|
| s390.py | File | 2.38 KB | 0644 |
|
| salt.py | File | 2.14 KB | 0644 |
|
| saltmaster.py | File | 2.26 KB | 0644 |
|
| samba.py | File | 1.79 KB | 0644 |
|
| sanlock.py | File | 1000 B | 0644 |
|
| saphana.py | File | 2.52 KB | 0644 |
|
| sapnw.py | File | 5.03 KB | 0644 |
|
| sar.py | File | 3.95 KB | 0644 |
|
| sas3ircu.py | File | 1.3 KB | 0644 |
|
| scsi.py | File | 2.4 KB | 0644 |
|
| seagate_ses.py | File | 2.1 KB | 0644 |
|
| sedutil.py | File | 1.7 KB | 0644 |
|
| selinux.py | File | 2.02 KB | 0644 |
|
| sendmail.py | File | 1.18 KB | 0644 |
|
| services.py | File | 1.43 KB | 0644 |
|
| shmcli.py | File | 4.21 KB | 0644 |
|
| skydive.py | File | 2.28 KB | 0644 |
|
| slurm.py | File | 3.75 KB | 0644 |
|
| smartcard.py | File | 1.49 KB | 0644 |
|
| smclient.py | File | 1.89 KB | 0644 |
|
| snap.py | File | 2.99 KB | 0644 |
|
| snapper.py | File | 741 B | 0644 |
|
| snmp.py | File | 903 B | 0644 |
|
| sos_extras.py | File | 3.74 KB | 0644 |
|
| soundcard.py | File | 980 B | 0644 |
|
| squid.py | File | 1.25 KB | 0644 |
|
| ssh.py | File | 3.73 KB | 0644 |
|
| ssmtp.py | File | 976 B | 0644 |
|
| sssd.py | File | 2.33 KB | 0644 |
|
| storageconsole.py | File | 1.66 KB | 0644 |
|
| storcli.py | File | 1.8 KB | 0644 |
|
| stratis.py | File | 1.12 KB | 0644 |
|
| subscription_manager.py | File | 5.55 KB | 0644 |
|
| sudo.py | File | 1.48 KB | 0644 |
|
| sunbeam.py | File | 6.89 KB | 0644 |
|
| sunbeam_hypervisor.py | File | 3.73 KB | 0644 |
|
| sunrpc.py | File | 818 B | 0644 |
|
| symcli.py | File | 3.46 KB | 0644 |
|
| system.py | File | 1.67 KB | 0644 |
|
| systemd.py | File | 3.68 KB | 0644 |
|
| systemtap.py | File | 881 B | 0644 |
|
| sysvipc.py | File | 886 B | 0644 |
|
| targetcli.py | File | 1.12 KB | 0644 |
|
| teamd.py | File | 1.24 KB | 0644 |
|
| telegraf.py | File | 1.68 KB | 0644 |
|
| tftpserver.py | File | 879 B | 0644 |
|
| tigervnc.py | File | 1.67 KB | 0644 |
|
| tomcat.py | File | 2.08 KB | 0644 |
|
| tpm2.py | File | 989 B | 0644 |
|
| tuned.py | File | 1.17 KB | 0644 |
|
| ubuntu.py | File | 2.23 KB | 0644 |
|
| udev.py | File | 900 B | 0644 |
|
| udisks.py | File | 804 B | 0644 |
|
| ufw.py | File | 987 B | 0644 |
|
| ultrapath.py | File | 1.3 KB | 0644 |
|
| unbound.py | File | 899 B | 0644 |
|
| unity.py | File | 703 B | 0644 |
|
| unpackaged.py | File | 3.48 KB | 0644 |
|
| usb.py | File | 731 B | 0644 |
|
| usbguard.py | File | 813 B | 0644 |
|
| validation_framework.py | File | 1.5 KB | 0644 |
|
| valkey.py | File | 1.72 KB | 0644 |
|
| vault.py | File | 1.74 KB | 0644 |
|
| vdo.py | File | 2.27 KB | 0644 |
|
| vdsm.py | File | 5.05 KB | 0644 |
|
| vectordev.py | File | 1.2 KB | 0644 |
|
| veritas.py | File | 1.33 KB | 0644 |
|
| vhostmd.py | File | 1.71 KB | 0644 |
|
| virsh.py | File | 4.42 KB | 0644 |
|
| virtwho.py | File | 985 B | 0644 |
|
| vmware.py | File | 1.74 KB | 0644 |
|
| vsftpd.py | File | 724 B | 0644 |
|
| vulkan.py | File | 700 B | 0644 |
|
| watchdog.py | File | 2.89 KB | 0644 |
|
| wireless.py | File | 886 B | 0644 |
|
| x11.py | File | 1.38 KB | 0644 |
|
| xdp.py | File | 659 B | 0644 |
|
| xen.py | File | 3.32 KB | 0644 |
|
| xfs.py | File | 1.34 KB | 0644 |
|
| xinetd.py | File | 837 B | 0644 |
|
| zfs.py | File | 1.91 KB | 0644 |
|
| zvm.py | File | 2.76 KB | 0644 |
|