Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

# 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.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.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, 

NetworkCollector, 

AIXNetworkCollector, 

DarwinNetworkCollector, 

DragonFlyNetworkCollector, 

FreeBSDNetworkCollector, 

HPUXNetworkCollector, 

HurdNetworkCollector, 

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