Skip to content

Commit fb9822f

Browse files
authored
chore: use a new manifest module (#4418)
and move the default manifest to the new module Signed-off-by: Xiangce Liu <[email protected]>
1 parent cf2c47b commit fb9822f

File tree

7 files changed

+440
-419
lines changed

7 files changed

+440
-419
lines changed

docs/api_index.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ insights.specs
184184
:show-inheritance:
185185
:undoc-members:
186186

187+
insights.specs.manifests
188+
------------------------
189+
.. automodule:: insights.specs.manifests
190+
:members: manifests, content_types
191+
:show-inheritance:
192+
:undoc-members:
193+
194+
187195

188196
insights.specs.default
189197
----------------------
@@ -270,6 +278,6 @@ insights
270278
--------
271279

272280
.. automodule:: insights.collect
273-
:members: default_manifest, collect
281+
:members: collect
274282
:show-inheritance:
275283
:undoc-members:

insights/client/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import six
77
import sys
88
from six.moves import configparser as ConfigParser
9-
from insights.specs.datasources.manifests import manifests, content_types
9+
from insights.specs.manifests import manifests, content_types
1010

1111
try:
1212
from .constants import InsightsConstants as constants

insights/collect.py

Lines changed: 8 additions & 212 deletions
Original file line numberDiff line numberDiff line change
@@ -14,226 +14,22 @@
1414
import os
1515
import sys
1616
import tempfile
17-
from datetime import datetime
18-
1917
import yaml
2018

21-
from insights import apply_configs
22-
from insights import apply_default_enabled
23-
from insights import get_pool
19+
from datetime import datetime
20+
21+
from insights import apply_configs, apply_default_enabled, get_pool
2422
from insights.cleaner import Cleaner
25-
from insights.core import blacklist
26-
from insights.core import dr
27-
from insights.core import filters
23+
from insights.core import blacklist, dr, filters
2824
from insights.core.serde import Hydration
2925
from insights.core.spec_factory import SAFE_ENV
30-
from insights.util import fs
31-
from insights.util import utc
26+
from insights.specs.manifests import manifests
27+
from insights.util import fs, utc
3228
from insights.util.hostname import determine_hostname
3329
from insights.util.subproc import call
3430

3531
log = logging.getLogger(__name__)
3632

37-
default_manifest = """
38-
---
39-
# version is for the format of this file, not its contents.
40-
version: 0
41-
42-
client:
43-
context:
44-
class: insights.core.context.HostContext
45-
args:
46-
timeout: 10 # timeout in seconds for commands. Doesn't apply to files.
47-
48-
# commands and files to ignore
49-
blacklist:
50-
files: []
51-
commands: []
52-
patterns: []
53-
keywords: []
54-
55-
# Can be a list of dictionaries with name/enabled fields or a list of strings
56-
# where the string is the name and enabled is assumed to be true. Matching is
57-
# by prefix, and later entries override previous ones. Persistence for a
58-
# component is disabled by default.
59-
persist:
60-
- name: insights.specs.Specs
61-
enabled: true
62-
63-
run_strategy:
64-
name: serial
65-
args:
66-
max_workers: null
67-
68-
plugins:
69-
# disable everything by default
70-
# defaults to false if not specified.
71-
default_component_enabled: false
72-
73-
# packages and modules to load
74-
packages:
75-
- insights.specs.default
76-
- insights.specs.datasources
77-
78-
# configuration of loaded components. names are prefixes, so any component with
79-
# a fully qualified name that starts with a key will get the associated
80-
# configuration applied. Can specify timeout, which will apply to command
81-
# datasources. Can specify metadata, which must be a dictionary and will be
82-
# merged with the components' default metadata.
83-
configs:
84-
- name: insights.specs.Specs
85-
enabled: true
86-
- name: insights.specs.default.DefaultSpecs
87-
enabled: true
88-
- name: insights.specs.datasources
89-
enabled: true
90-
# needed for specs that aren't given names before used in DefaultSpecs
91-
- name: insights.core.spec_factory
92-
enabled: true
93-
94-
# needed by multiple datasource specs/components
95-
- name: insights.parsers.hostname.Hostname
96-
enabled: true
97-
- name: insights.parsers.hostname.HostnameDefault
98-
enabled: true
99-
- name: insights.combiners.hostname.Hostname
100-
enabled: true
101-
- name: insights.parsers.uname.Uname
102-
enabled: true
103-
- name: insights.parsers.redhat_release.RedhatRelease
104-
enabled: true
105-
- name: insights.combiners.redhat_release.RedHatRelease
106-
enabled: true
107-
- name: insights.parsers.ps.PsAuxcww
108-
enabled: true
109-
- name: insights.parsers.ps.PsAuxww
110-
enabled: true
111-
- name: insights.combiners.ps.Ps
112-
enabled: true
113-
- name: insights.parsers.dmidecode.DMIDecode
114-
enabled: true
115-
- name: insights.parsers.installed_rpms.InstalledRpms
116-
enabled: true
117-
- name: insights.parsers.mount.ProcMounts
118-
enabled: true
119-
120-
# needed for identifying RHEL major version
121-
- name: insights.components.rhel_version.IsRhel6
122-
enabled: true
123-
- name: insights.components.rhel_version.IsRhel7
124-
enabled: true
125-
- name: insights.components.rhel_version.IsRhel8
126-
enabled: true
127-
- name: insights.components.rhel_version.IsRhel9
128-
enabled: true
129-
130-
# needed for cloud specs
131-
- name: insights.parsers.yum.YumRepoList
132-
enabled: true
133-
- name: insights.parsers.rhsm_conf.RHSMConf
134-
enabled: true
135-
- name: insights.combiners.cloud_provider.CloudProvider
136-
enabled: true
137-
- name: insights.components.cloud_provider.IsAWS
138-
enabled: true
139-
- name: insights.components.cloud_provider.IsAzure
140-
enabled: true
141-
- name: insights.components.cloud_provider.IsGCP
142-
enabled: true
143-
144-
# needed for ceph specs
145-
- name: insights.components.ceph.IsCephMonitor
146-
enabled: true
147-
148-
# needed for pcp specs
149-
- name: insights.parsers.systemd.unitfiles.UnitFiles
150-
enabled: true
151-
- name: insights.parsers.ros_config.RosConfig
152-
enabled: true
153-
154-
# needed for 'teamdctl_config/state_dump' spec and nmcli_conn_show_uuids spec
155-
- name: insights.parsers.nmcli.NmcliConnShow
156-
enabled: true
157-
158-
# needed for mssql_tls_cert_enddate
159-
- name: insights.parsers.mssql_conf.MsSQLConf
160-
enabled: true
161-
162-
# needed for rsyslog_tls_cert_file
163-
- name: insights.parsers.rsyslog_conf.RsyslogConf
164-
enabled: true
165-
- name: insights.combiners.rsyslog_confs.RsyslogAllConf
166-
enabled: true
167-
168-
# needed for sap specs
169-
- name: insights.parsers.saphostctrl.SAPHostCtrlInstances
170-
enabled: true
171-
- name: insights.combiners.sap.Sap
172-
enabled: true
173-
174-
# needed for fw_security specs
175-
- name: insights.parsers.virt_what.VirtWhat
176-
enabled: true
177-
- name: insights.combiners.virt_what.VirtWhat
178-
enabled: true
179-
- name: insights.components.virtualization.IsBareMetal
180-
enabled: true
181-
182-
# needed for 'modinfo_filtered_modules' spec
183-
- name: insights.parsers.lsmod.LsMod
184-
enabled: true
185-
186-
# needed for satellite server specs
187-
- name: insights.combiners.satellite_version.SatelliteVersion
188-
enabled: true
189-
- name: insights.combiners.satellite_version.CapsuleVersion
190-
enabled: true
191-
- name: insights.components.satellite.IsSatellite
192-
enabled: true
193-
- name: insights.components.satellite.IsSatellite614AndLater
194-
enabled: true
195-
- name: insights.components.satellite.IsSatelliteLessThan614
196-
enabled: true
197-
- name: insights.components.satellite.IsSatellite611
198-
enabled: true
199-
- name: insights.components.satellite.IsCapsule
200-
enabled: true
201-
202-
# needed for container specs
203-
- name: insights.parsers.podman_list.PodmanListContainers
204-
enabled: true
205-
- name: insights.parsers.docker_list.DockerListContainers
206-
enabled: true
207-
208-
# needed for 'luks_data_sources' spec
209-
- name: insights.parsers.blkid.BlockIDInfo
210-
enabled: true
211-
- name: insights.components.cryptsetup.HasCryptsetupWithTokens
212-
enabled: true
213-
- name: insights.components.cryptsetup.HasCryptsetupWithoutTokens
214-
enabled: true
215-
216-
# needed for 'iris' specs
217-
- name: insights.parsers.iris.IrisList
218-
enabled: true
219-
- name: insights.parsers.iris.IrisCpf
220-
enabled: true
221-
222-
# needed for ausearch_insights
223-
- name: insights.components.rhel_version.IsGtOrRhel86
224-
enabled: true
225-
226-
# needed for sealert spec
227-
- name: insights.parsers.selinux_config.SelinuxConfig
228-
enabled: true
229-
- name: insights.components.selinux.SELinuxEnabled
230-
enabled: true
231-
232-
# needed for the 'fstab_mounted.dirs' to the 'ls_lan' spec
233-
- name: insights.parsers.fstab.FSTab
234-
enabled: true
235-
""".strip()
236-
23733
EXCEPTIONS_TO_REPORT = set([OSError])
23834
"""Exception types that should be reported on after core collection."""
23935

@@ -410,8 +206,8 @@ def collect(
410206
# Get the manifest per the following order:
411207
# 1. "client_config.manifest"
412208
# 2. "manifest" passed to the `insights.collect()`
413-
# 3. "default_manifest" defined in this module
414-
manifest = default_manifest if manifest is None else manifest
209+
# 3. "default_manifest" defined in `insights.specs.manifests`
210+
manifest = manifests['default'] if manifest is None else manifest
415211
if client_config and hasattr(client_config, 'manifest') and client_config.manifest:
416212
manifest = client_config.manifest
417213
manifest = load_manifest(manifest)

0 commit comments

Comments
 (0)