Skip to content

Commit 93359ab

Browse files
committed
Move basic module options to utils.
1 parent dda953d commit 93359ab

File tree

17 files changed

+333
-371
lines changed

17 files changed

+333
-371
lines changed

plugins/module_utils/site.py

Lines changed: 0 additions & 263 deletions
Original file line numberDiff line numberDiff line change
@@ -122,266 +122,3 @@ def get_api_data(self, target_api):
122122

123123
if target_api in [t.LOGIN]:
124124
return self.authentication
125-
126-
127-
# Define available arguments/parameters a user can pass to the module
128-
module_args = dict(
129-
server_url=dict(type="str", required=True),
130-
site=dict(type="str", required=True),
131-
validate_certs=dict(type="bool", required=False, default=True),
132-
automation_user=dict(type="str", required=True),
133-
automation_secret=dict(type="str", required=True, no_log=True),
134-
state=dict(
135-
type="str",
136-
default="present",
137-
choices=["present", "absent", "login", "logout"],
138-
),
139-
site_id=dict(type="str", required=True),
140-
site_connection=dict(
141-
type="dict",
142-
mutually_exclusive=[
143-
("authentication", "site_config"),
144-
],
145-
options=dict(
146-
authentication=dict(
147-
type="dict",
148-
options=dict(
149-
username=dict(type="str"),
150-
password=dict(type="str", no_log=True),
151-
),
152-
),
153-
site_config=dict(
154-
type="dict",
155-
options=dict(
156-
status_connection=dict(
157-
type="dict",
158-
apply_defaults=True,
159-
options=dict(
160-
connection=dict(
161-
type="dict",
162-
apply_defaults=False,
163-
options=dict(
164-
socket_type=dict(
165-
type="str",
166-
choices=["tcp", "tcp6", "unix", "local"],
167-
),
168-
port=dict(
169-
type="int",
170-
),
171-
encrypted=dict(
172-
type="bool",
173-
),
174-
verify=dict(
175-
type="bool",
176-
),
177-
host=dict(
178-
type="str",
179-
),
180-
path=dict(
181-
type="str",
182-
),
183-
),
184-
required_if=[
185-
(
186-
"socket_type",
187-
"tcp",
188-
("port", "encrypted", "host"),
189-
),
190-
(
191-
"socket_type",
192-
"tcp6",
193-
(
194-
"port",
195-
"encrypted",
196-
"host",
197-
),
198-
),
199-
("socket_type", "unix", ("path",)),
200-
],
201-
mutually_exclusive=[
202-
("host", "path"),
203-
("port", "path"),
204-
("encrypted", "path"),
205-
("verify", "path"),
206-
],
207-
),
208-
proxy=dict(
209-
type="dict",
210-
apply_defaults=False,
211-
options=dict(
212-
use_livestatus_daemon=dict(
213-
type="str",
214-
choices=["with_proxy", "direct"],
215-
),
216-
global_settings=dict(
217-
type="bool",
218-
),
219-
tcp=dict(
220-
type="dict",
221-
options=dict(
222-
port=dict(
223-
type="int",
224-
),
225-
only_from=dict(
226-
type="list",
227-
elements="str",
228-
),
229-
tls=dict(
230-
type="bool",
231-
default=False,
232-
),
233-
),
234-
),
235-
params=dict(
236-
type="dict",
237-
apply_defaults=False,
238-
options=dict(
239-
channels=dict(
240-
type="int",
241-
default=5,
242-
),
243-
heartbeat=dict(
244-
type="dict",
245-
options=dict(
246-
interval=dict(
247-
type="int",
248-
default=5,
249-
),
250-
timeout=dict(
251-
type="int",
252-
default=2,
253-
),
254-
),
255-
),
256-
channel_timeout=dict(
257-
type="int",
258-
default=3,
259-
),
260-
query_timeout=dict(
261-
type="int",
262-
default=120,
263-
),
264-
connect_retry=dict(
265-
type="int",
266-
default=4,
267-
),
268-
cache=dict(
269-
type="bool",
270-
default=True,
271-
),
272-
),
273-
),
274-
),
275-
),
276-
connect_timeout=dict(
277-
type="int",
278-
default=2,
279-
),
280-
persistent_connection=dict(
281-
type="bool",
282-
default=False,
283-
),
284-
url_prefix=dict(
285-
type="str",
286-
),
287-
status_host=dict(
288-
type="dict",
289-
apply_defaults=True,
290-
options=dict(
291-
status_host_set=dict(
292-
type="str",
293-
default="disabled",
294-
choices=["enabled", "disabled"],
295-
),
296-
site=dict(
297-
type="str",
298-
),
299-
host=dict(
300-
type="str",
301-
),
302-
),
303-
),
304-
disable_in_status_gui=dict(
305-
type="bool",
306-
default="False",
307-
),
308-
),
309-
),
310-
configuration_connection=dict(
311-
type="dict",
312-
apply_defaults=True,
313-
options=dict(
314-
enable_replication=dict(
315-
type="bool",
316-
default=False,
317-
),
318-
url_of_remote_site=dict(
319-
type="str",
320-
default="http://localhost/nonexistant/check_mk/",
321-
),
322-
disable_remote_configuration=dict(
323-
type="bool",
324-
default=True,
325-
),
326-
ignore_tls_errors=dict(
327-
type="bool",
328-
default=False,
329-
),
330-
direct_login_to_web_gui_allowed=dict(
331-
type="bool",
332-
default=True,
333-
),
334-
user_sync=dict(
335-
type="dict",
336-
apply_defaults=True,
337-
required_if=[
338-
(
339-
"sync_with_ldap_connections",
340-
"ldap",
341-
("ldap_connections",),
342-
)
343-
],
344-
options=dict(
345-
sync_with_ldap_connections=dict(
346-
type="str",
347-
choices=["ldap", "all", "disabled"],
348-
default="all",
349-
),
350-
ldap_connections=dict(
351-
type="list",
352-
elements="str",
353-
),
354-
),
355-
),
356-
replicate_event_console=dict(
357-
type="bool",
358-
default=True,
359-
),
360-
replicate_extensions=dict(
361-
default=True,
362-
type="bool",
363-
),
364-
message_broker_port=dict(
365-
type="int",
366-
),
367-
),
368-
),
369-
basic_settings=dict(
370-
type="dict",
371-
options=dict(
372-
alias=dict(
373-
type="str",
374-
),
375-
customer=dict(
376-
type="str",
377-
),
378-
site_id=dict(
379-
type="str",
380-
),
381-
),
382-
),
383-
),
384-
),
385-
),
386-
),
387-
)

plugins/module_utils/utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@
1313
from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT
1414

1515

16+
def base_argument_spec():
17+
return dict(
18+
server_url=dict(type="str", required=True),
19+
site=dict(type="str", required=True),
20+
validate_certs=dict(type="bool", required=False, default=True),
21+
automation_user=dict(type="str", required=True),
22+
automation_secret=dict(type="str", required=True, no_log=True),
23+
)
24+
25+
1626
def result_as_dict(result):
1727
return {
1828
"changed": result.changed,

plugins/modules/activation.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
102102
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
103103
result_as_dict,
104+
base_argument_spec,
104105
)
105106

106107
HTTP_CODES = {
@@ -136,18 +137,14 @@ def post(self):
136137

137138

138139
def run_module():
139-
# define available arguments/parameters a user can pass to the module
140-
module_args = dict(
141-
server_url=dict(type="str", required=True),
142-
site=dict(type="str", required=True),
143-
validate_certs=dict(type="bool", required=False, default=True),
144-
automation_user=dict(type="str", required=True),
145-
automation_secret=dict(type="str", required=True, no_log=True),
140+
argument_spec = base_argument_spec()
141+
argument_spec.update(
146142
sites=dict(type="raw", default=[]),
147143
force_foreign_changes=dict(type="bool", default=False),
148144
redirect=dict(type="bool", default=False),
149145
)
150-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=False)
146+
147+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
151148

152149
activation = ActivationAPI(module)
153150
activation.headers["If-Match"] = "*"

plugins/modules/bakery.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
9494
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
9595
result_as_dict,
96+
base_argument_spec,
9697
)
9798

9899

@@ -121,12 +122,8 @@ def post(self):
121122

122123

123124
def run_module():
124-
module_args = dict(
125-
server_url=dict(type="str", required=True),
126-
site=dict(type="str", required=True),
127-
validate_certs=dict(type="bool", required=False, default=True),
128-
automation_user=dict(type="str", required=True),
129-
automation_secret=dict(type="str", required=True, no_log=True),
125+
argument_spec = base_argument_spec()
126+
argument_spec.update(
130127
signature_key_id=dict(type="int", required=False),
131128
signature_key_passphrase=dict(type="str", required=False, no_log=True),
132129
state=dict(
@@ -135,7 +132,8 @@ def run_module():
135132
required=True,
136133
),
137134
)
138-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=False)
135+
136+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
139137

140138
bakery = BakeryAPI(module)
141139
result = bakery.post()

plugins/modules/contact_group.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
from ansible.module_utils.basic import AnsibleModule
137137
from ansible.module_utils.urls import fetch_url
138138
from ansible_collections.checkmk.general.plugins.module_utils.logger import Logger
139+
from ansible_collections.checkmk.general.plugins.module_utils.utils import base_argument_spec
139140

140141
logger = Logger()
141142

@@ -396,12 +397,8 @@ def delete_contact_groups(module, base_url, groups, headers):
396397

397398

398399
def run_module():
399-
module_args = dict(
400-
server_url=dict(type="str", required=True),
401-
site=dict(type="str", required=True),
402-
validate_certs=dict(type="bool", required=False, default=True),
403-
automation_user=dict(type="str", required=True),
404-
automation_secret=dict(type="str", required=True, no_log=True),
400+
argument_spec = base_argument_spec()
401+
argument_spec.update(
405402
name=dict(type="str", required=False),
406403
title=dict(type="str", required=False),
407404
customer=dict(type="str", required=False),
@@ -410,7 +407,7 @@ def run_module():
410407
)
411408

412409
module = AnsibleModule(
413-
argument_spec=module_args,
410+
argument_spec=argument_spec,
414411
mutually_exclusive=[
415412
("groups", "name"),
416413
],

0 commit comments

Comments
 (0)