Skip to content

Commit 224a8e9

Browse files
Merge pull request #766 from Checkmk/feature-move-args-to-utils
Move module args to utils
2 parents 27a0cc9 + 11c14ad commit 224a8e9

File tree

18 files changed

+92
-115
lines changed

18 files changed

+92
-115
lines changed

changelogs/fragments/utils.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
minor_changes:
2+
- All modules - Move basic module parameters to utils. No functional changes.

plugins/module_utils/site.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,7 @@ def get_api_data(self, target_api):
124124
return self.authentication
125125

126126

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),
127+
site_argument_spec = dict(
134128
state=dict(
135129
type="str",
136130
default="present",

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
@@ -100,6 +100,7 @@
100100
from ansible.module_utils.basic import AnsibleModule
101101
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
102102
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
103+
base_argument_spec,
103104
result_as_dict,
104105
)
105106

@@ -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
@@ -92,6 +92,7 @@
9292
from ansible.module_utils.basic import AnsibleModule
9393
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
9494
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
95+
base_argument_spec,
9596
result_as_dict,
9697
)
9798

@@ -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: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@
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 (
140+
base_argument_spec,
141+
)
139142

140143
logger = Logger()
141144

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

397400

398401
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),
402+
argument_spec = base_argument_spec()
403+
argument_spec.update(
405404
name=dict(type="str", required=False),
406405
title=dict(type="str", required=False),
407406
customer=dict(type="str", required=False),
@@ -410,7 +409,7 @@ def run_module():
410409
)
411410

412411
module = AnsibleModule(
413-
argument_spec=module_args,
412+
argument_spec=argument_spec,
414413
mutually_exclusive=[
415414
("groups", "name"),
416415
],

plugins/modules/discovery.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,10 @@
166166
from ansible_collections.checkmk.general.plugins.module_utils.types import (
167167
generate_result,
168168
)
169-
from ansible_collections.checkmk.general.plugins.module_utils.utils import exit_module
169+
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
170+
base_argument_spec,
171+
exit_module,
172+
)
170173

171174
logger = Logger()
172175

@@ -181,12 +184,8 @@
181184

182185

183186
def run_module():
184-
module_args = dict(
185-
server_url=dict(type="str", required=True),
186-
site=dict(type="str", required=True),
187-
validate_certs=dict(type="bool", required=False, default=True),
188-
automation_user=dict(type="str", required=True),
189-
automation_secret=dict(type="str", required=True, no_log=True),
187+
argument_spec = base_argument_spec()
188+
argument_spec.update(
190189
host_name=dict(type="str", required=False),
191190
hosts=dict(type="list", elements="str", required=False, default=[]),
192191
state=dict(
@@ -210,8 +209,9 @@ def run_module():
210209
wait_for_previous=dict(type="bool", default=True),
211210
wait_timeout=dict(type="int", default=-1),
212211
)
212+
213213
module = AnsibleModule(
214-
argument_spec=module_args,
214+
argument_spec=argument_spec,
215215
mutually_exclusive=[
216216
("host_name", "hosts"),
217217
],

plugins/modules/downtime.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@
146146

147147
from ansible.module_utils.basic import AnsibleModule
148148
from ansible.module_utils.urls import fetch_url
149+
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
150+
base_argument_spec,
151+
)
149152

150153
try:
151154
from urllib import urlencode
@@ -403,13 +406,8 @@ def remove_downtime(module, base_url, headers):
403406

404407

405408
def run_module():
406-
# define available arguments/parameters a user can pass to the module
407-
module_args = dict(
408-
server_url=dict(type="str", required=True),
409-
site=dict(type="str", required=True),
410-
validate_certs=dict(type="bool", required=False, default=True),
411-
automation_user=dict(type="str", required=True),
412-
automation_secret=dict(type="str", required=True, no_log=True),
409+
argument_spec = base_argument_spec()
410+
argument_spec.update(
413411
host_name=dict(type="str", required=True),
414412
comment=dict(type="str", default="Created by Ansible"),
415413
duration=dict(type="int", default=0),
@@ -422,7 +420,7 @@ def run_module():
422420
state=dict(type="str", default="present", choices=["present", "absent"]),
423421
)
424422

425-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=False)
423+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
426424

427425
# Use the parameters to initialize some common variables
428426
headers = {

plugins/modules/folder.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
160160
from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT
161161
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
162+
base_argument_spec,
162163
result_as_dict,
163164
)
164165
from ansible_collections.checkmk.general.plugins.module_utils.version import (
@@ -474,13 +475,8 @@ def _exit_if_missing_pathlib(module):
474475

475476

476477
def run_module():
477-
# define available arguments/parameters a user can pass to the module
478-
module_args = dict(
479-
server_url=dict(type="str", required=True),
480-
site=dict(type="str", required=True),
481-
validate_certs=dict(type="bool", required=False, default=True),
482-
automation_user=dict(type="str", required=True),
483-
automation_secret=dict(type="str", required=True, no_log=True),
478+
argument_spec = base_argument_spec()
479+
argument_spec.update(
484480
path=dict(type="str", required=True),
485481
name=dict(
486482
type="str",
@@ -496,7 +492,7 @@ def run_module():
496492
extended_functionality=dict(type="bool", required=False, default=True),
497493
)
498494

499-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)
495+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
500496

501497
_exit_if_missing_pathlib(module)
502498

plugins/modules/host.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@
242242
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
243243
from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT
244244
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
245+
base_argument_spec,
245246
result_as_dict,
246247
)
247248
from ansible_collections.checkmk.general.plugins.module_utils.version import (
@@ -819,13 +820,8 @@ def delete(self):
819820

820821

821822
def run_module():
822-
# define available arguments/parameters a user can pass to the module
823-
module_args = dict(
824-
server_url=dict(type="str", required=True),
825-
site=dict(type="str", required=True),
826-
validate_certs=dict(type="bool", required=False, default=True),
827-
automation_user=dict(type="str", required=True),
828-
automation_secret=dict(type="str", required=True, no_log=True),
823+
argument_spec = base_argument_spec()
824+
argument_spec.update(
829825
name=dict(
830826
type="str",
831827
required=True,
@@ -843,7 +839,7 @@ def run_module():
843839
)
844840

845841
module = AnsibleModule(
846-
argument_spec=module_args,
842+
argument_spec=argument_spec,
847843
mutually_exclusive=[
848844
("nodes", "add_nodes"),
849845
("nodes", "remove_nodes"),

plugins/modules/host_group.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@
132132
from ansible.module_utils.basic import AnsibleModule
133133
from ansible.module_utils.urls import fetch_url
134134
from ansible_collections.checkmk.general.plugins.module_utils.logger import Logger
135+
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
136+
base_argument_spec,
137+
)
135138

136139
logger = Logger()
137140

@@ -392,12 +395,8 @@ def delete_host_groups(module, base_url, groups, headers):
392395

393396

394397
def run_module():
395-
module_args = dict(
396-
server_url=dict(type="str", required=True),
397-
site=dict(type="str", required=True),
398-
validate_certs=dict(type="bool", required=False, default=True),
399-
automation_user=dict(type="str", required=True),
400-
automation_secret=dict(type="str", required=True, no_log=True),
398+
argument_spec = base_argument_spec()
399+
argument_spec.update(
401400
name=dict(
402401
type="str",
403402
required=False,
@@ -413,7 +412,7 @@ def run_module():
413412
)
414413

415414
module = AnsibleModule(
416-
argument_spec=module_args,
415+
argument_spec=argument_spec,
417416
mutually_exclusive=[
418417
("groups", "name"),
419418
],

plugins/modules/password.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@
123123
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
124124
from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT
125125
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
126+
base_argument_spec,
126127
result_as_dict,
127128
)
128129
from ansible_collections.checkmk.general.plugins.module_utils.version import (
@@ -211,12 +212,8 @@ def get(self):
211212

212213

213214
def run_module():
214-
module_args = dict(
215-
server_url=dict(type="str", required=True),
216-
site=dict(type="str", required=True),
217-
validate_certs=dict(type="bool", required=False, default=True),
218-
automation_user=dict(type="str", required=True),
219-
automation_secret=dict(type="str", required=True, no_log=True),
215+
argument_spec = base_argument_spec()
216+
argument_spec.update(
220217
name=dict(type="str", required=True),
221218
title=dict(type="str", required=False),
222219
customer=dict(type="str", required=False),
@@ -231,7 +228,8 @@ def run_module():
231228
required=True,
232229
),
233230
)
234-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=False)
231+
232+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
235233

236234
result = RESULT(
237235
http_code=0,

plugins/modules/rule.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,9 @@
334334
from ansible.module_utils.common.validation import safe_eval
335335
from ansible_collections.checkmk.general.plugins.module_utils.api import CheckmkAPI
336336
from ansible_collections.checkmk.general.plugins.module_utils.types import RESULT
337+
from ansible_collections.checkmk.general.plugins.module_utils.utils import (
338+
base_argument_spec,
339+
)
337340
from ansible_collections.checkmk.general.plugins.module_utils.version import (
338341
CheckmkVersion,
339342
)
@@ -886,13 +889,8 @@ def delete(self):
886889

887890

888891
def run_module():
889-
# define available arguments/parameters a user can pass to the module
890-
module_args = dict(
891-
server_url=dict(type="str", required=True),
892-
site=dict(type="str", required=True),
893-
validate_certs=dict(type="bool", required=False, default=True),
894-
automation_user=dict(type="str", required=True),
895-
automation_secret=dict(type="str", required=True, no_log=True),
892+
argument_spec = base_argument_spec()
893+
argument_spec.update(
896894
ruleset=dict(type="str", required=True),
897895
rule=dict(
898896
type="dict",
@@ -931,7 +929,7 @@ def run_module():
931929
state=dict(type="str", default="present", choices=["present", "absent"]),
932930
)
933931

934-
module = AnsibleModule(argument_spec=module_args, supports_check_mode=True)
932+
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=False)
935933

936934
# Create an API object that contains the current and desired state
937935
current_rule = RuleAPI(module)

0 commit comments

Comments
 (0)