173 lines
7.6 KiB
Python
173 lines
7.6 KiB
Python
# This code is part of Ansible, but is an independent component.
|
|
# This particular file snippet, and this file snippet only, is BSD licensed.
|
|
# Modules you write using this snippet, which is embedded dynamically by Ansible
|
|
# still belong to the author of the module, and may assign their own license
|
|
# to the complete work.
|
|
#
|
|
# (c) 2017 Red Hat Inc.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without modification,
|
|
# are permitted provided that the following conditions are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
# and/or other materials provided with the distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
|
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
from __future__ import (absolute_import, division, print_function)
|
|
__metaclass__ = type
|
|
|
|
|
|
from ansible.module_utils.facts.other.facter import FacterFactCollector
|
|
from ansible.module_utils.facts.other.ohai import OhaiFactCollector
|
|
|
|
from ansible.module_utils.facts.system.apparmor import ApparmorFactCollector
|
|
from ansible.module_utils.facts.system.caps import SystemCapabilitiesFactCollector
|
|
from ansible.module_utils.facts.system.chroot import ChrootFactCollector
|
|
from ansible.module_utils.facts.system.cmdline import CmdLineFactCollector
|
|
from ansible.module_utils.facts.system.distribution import DistributionFactCollector
|
|
from ansible.module_utils.facts.system.date_time import DateTimeFactCollector
|
|
from ansible.module_utils.facts.system.env import EnvFactCollector
|
|
from ansible.module_utils.facts.system.dns import DnsFactCollector
|
|
from ansible.module_utils.facts.system.fips import FipsFactCollector
|
|
from ansible.module_utils.facts.system.local import LocalFactCollector
|
|
from ansible.module_utils.facts.system.lsb import LSBFactCollector
|
|
from ansible.module_utils.facts.system.pkg_mgr import PkgMgrFactCollector
|
|
from ansible.module_utils.facts.system.pkg_mgr import OpenBSDPkgMgrFactCollector
|
|
from ansible.module_utils.facts.system.platform import PlatformFactCollector
|
|
from ansible.module_utils.facts.system.python import PythonFactCollector
|
|
from ansible.module_utils.facts.system.selinux import SelinuxFactCollector
|
|
from ansible.module_utils.facts.system.service_mgr import ServiceMgrFactCollector
|
|
from ansible.module_utils.facts.system.ssh_pub_keys import SshPubKeyFactCollector
|
|
from ansible.module_utils.facts.system.user import UserFactCollector
|
|
|
|
from ansible.module_utils.facts.hardware.base import HardwareCollector
|
|
from ansible.module_utils.facts.hardware.aix import AIXHardwareCollector
|
|
from ansible.module_utils.facts.hardware.darwin import DarwinHardwareCollector
|
|
from ansible.module_utils.facts.hardware.dragonfly import DragonFlyHardwareCollector
|
|
from ansible.module_utils.facts.hardware.freebsd import FreeBSDHardwareCollector
|
|
from ansible.module_utils.facts.hardware.hpux import HPUXHardwareCollector
|
|
from ansible.module_utils.facts.hardware.hurd import HurdHardwareCollector
|
|
from ansible.module_utils.facts.hardware.linux import LinuxHardwareCollector
|
|
from ansible.module_utils.facts.hardware.netbsd import NetBSDHardwareCollector
|
|
from ansible.module_utils.facts.hardware.openbsd import OpenBSDHardwareCollector
|
|
from ansible.module_utils.facts.hardware.sunos import SunOSHardwareCollector
|
|
|
|
from ansible.module_utils.facts.network.base import NetworkCollector
|
|
from ansible.module_utils.facts.network.aix import AIXNetworkCollector
|
|
from ansible.module_utils.facts.network.darwin import DarwinNetworkCollector
|
|
from ansible.module_utils.facts.network.dragonfly import DragonFlyNetworkCollector
|
|
from ansible.module_utils.facts.network.fc_wwn import FcWwnInitiatorFactCollector
|
|
from ansible.module_utils.facts.network.freebsd import FreeBSDNetworkCollector
|
|
from ansible.module_utils.facts.network.hpux import HPUXNetworkCollector
|
|
from ansible.module_utils.facts.network.hurd import HurdNetworkCollector
|
|
from ansible.module_utils.facts.network.linux import LinuxNetworkCollector
|
|
from ansible.module_utils.facts.network.iscsi import IscsiInitiatorNetworkCollector
|
|
from ansible.module_utils.facts.network.nvme import NvmeInitiatorNetworkCollector
|
|
from ansible.module_utils.facts.network.netbsd import NetBSDNetworkCollector
|
|
from ansible.module_utils.facts.network.openbsd import OpenBSDNetworkCollector
|
|
from ansible.module_utils.facts.network.sunos import SunOSNetworkCollector
|
|
|
|
from ansible.module_utils.facts.virtual.base import VirtualCollector
|
|
from ansible.module_utils.facts.virtual.dragonfly import DragonFlyVirtualCollector
|
|
from ansible.module_utils.facts.virtual.freebsd import FreeBSDVirtualCollector
|
|
from ansible.module_utils.facts.virtual.hpux import HPUXVirtualCollector
|
|
from ansible.module_utils.facts.virtual.linux import LinuxVirtualCollector
|
|
from ansible.module_utils.facts.virtual.netbsd import NetBSDVirtualCollector
|
|
from ansible.module_utils.facts.virtual.openbsd import OpenBSDVirtualCollector
|
|
from ansible.module_utils.facts.virtual.sunos import SunOSVirtualCollector
|
|
|
|
# these should always be first due to most other facts depending on them
|
|
_base = [
|
|
PlatformFactCollector,
|
|
DistributionFactCollector,
|
|
LSBFactCollector
|
|
]
|
|
|
|
# These restrict what is possible in others
|
|
_restrictive = [
|
|
SelinuxFactCollector,
|
|
ApparmorFactCollector,
|
|
ChrootFactCollector,
|
|
FipsFactCollector
|
|
]
|
|
|
|
# general info, not required but probably useful for other facts
|
|
_general = [
|
|
PythonFactCollector,
|
|
SystemCapabilitiesFactCollector,
|
|
PkgMgrFactCollector,
|
|
OpenBSDPkgMgrFactCollector,
|
|
ServiceMgrFactCollector,
|
|
CmdLineFactCollector,
|
|
DateTimeFactCollector,
|
|
EnvFactCollector,
|
|
SshPubKeyFactCollector,
|
|
UserFactCollector
|
|
]
|
|
|
|
# virtual, this might also limit hardware/networking
|
|
_virtual = [
|
|
VirtualCollector,
|
|
DragonFlyVirtualCollector,
|
|
FreeBSDVirtualCollector,
|
|
LinuxVirtualCollector,
|
|
OpenBSDVirtualCollector,
|
|
NetBSDVirtualCollector,
|
|
SunOSVirtualCollector,
|
|
HPUXVirtualCollector
|
|
]
|
|
|
|
_hardware = [
|
|
HardwareCollector,
|
|
AIXHardwareCollector,
|
|
DarwinHardwareCollector,
|
|
DragonFlyHardwareCollector,
|
|
FreeBSDHardwareCollector,
|
|
HPUXHardwareCollector,
|
|
HurdHardwareCollector,
|
|
LinuxHardwareCollector,
|
|
NetBSDHardwareCollector,
|
|
OpenBSDHardwareCollector,
|
|
SunOSHardwareCollector
|
|
]
|
|
|
|
_network = [
|
|
DnsFactCollector,
|
|
FcWwnInitiatorFactCollector,
|
|
NetworkCollector,
|
|
AIXNetworkCollector,
|
|
DarwinNetworkCollector,
|
|
DragonFlyNetworkCollector,
|
|
FreeBSDNetworkCollector,
|
|
HPUXNetworkCollector,
|
|
HurdNetworkCollector,
|
|
IscsiInitiatorNetworkCollector,
|
|
NvmeInitiatorNetworkCollector,
|
|
LinuxNetworkCollector,
|
|
NetBSDNetworkCollector,
|
|
OpenBSDNetworkCollector,
|
|
SunOSNetworkCollector
|
|
]
|
|
|
|
# other fact sources
|
|
_extra_facts = [
|
|
LocalFactCollector,
|
|
FacterFactCollector,
|
|
OhaiFactCollector
|
|
]
|
|
|
|
# TODO: make config driven
|
|
collectors = _base + _restrictive + _general + _virtual + _hardware + _network + _extra_facts
|