Skip to content

Commit c672ee7

Browse files
authored
fix: Fix Python 2.7.5 compatibility by using msg= in fail_json() calls (#154)
- Changed all module.fail_json() calls to use msg= keyword argument instead of positional arguments - Updated tests/unit/test_bootloader_settings.py: Fixed test assertions to expect msg= format This resolves TypeError: "fail_json() takes 1 positional argument but 2 were given" that occurred on older Ansible versions used with Python 2.7.5, where fail_json() requires the error message to be passed as a keyword argument rather than positional. Generated with the Curate AI assistance
1 parent 3ffc1d8 commit c672ee7

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

library/bootloader_facts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def run_module():
144144

145145
rc, kernels_info, stderr = module.run_command("grubby --info=ALL")
146146
if "Permission denied" in stderr:
147-
module.fail_json("You must run this as sudo", **result)
147+
module.fail_json(msg="You must run this as sudo", **result)
148148
rc, default_kernel, stderr = module.run_command("grubby --default-index")
149149
result["ansible_facts"]["bootloader_facts"] = get_facts(
150150
kernels_info, default_kernel

library/bootloader_settings.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def validate_kernel_initrd(module, bootloader_setting_kernel, kernel_mod_keys):
118118
and "initrd" in bootloader_setting_kernel.keys()
119119
):
120120
module.fail_json(
121-
"You can use 'initrd' as a kernel key only when you must create a kernel. To modify or remove an existing kernel, use one of %s"
121+
msg="You can use 'initrd' as a kernel key only when you must create a kernel. To modify or remove an existing kernel, use one of %s"
122122
% ", ".join(kernel_mod_keys)
123123
)
124124

@@ -165,7 +165,7 @@ def validate_default_kernel(module, bootloader_settings):
165165
kernel = bootloader_setting["kernel"]
166166
if isinstance(kernel, str):
167167
module.fail_json(
168-
"You cannot set a kernel as default when you are using a string kernel - %s"
168+
msg="You cannot set a kernel as default when you are using a string kernel - %s"
169169
% (kernel)
170170
)
171171
if isinstance(kernel, dict):
@@ -178,7 +178,7 @@ def validate_default_kernel(module, bootloader_settings):
178178
default_kernels.append(kernel_id)
179179
if default_count > 1:
180180
module.fail_json(
181-
"Only one kernel can be set as default. Found %d kernels with 'default: true' - %s"
181+
msg="Only one kernel can be set as default. Found %d kernels with 'default: true' - %s"
182182
% (default_count, ", ".join(default_kernels))
183183
)
184184

@@ -196,21 +196,21 @@ def validate_kernels(module, bootloader_setting, bootloader_facts):
196196
state = bootloader_setting.get("state", "present")
197197

198198
if "state" in bootloader_setting and bootloader_setting["state"] not in states:
199-
module.fail_json("State must be one of '%s'" % ", ".join(states))
199+
module.fail_json(msg="State must be one of '%s'" % ", ".join(states))
200200

201201
if (not isinstance(bootloader_setting["kernel"], dict)) and (
202202
not isinstance(bootloader_setting["kernel"], str)
203203
):
204204
module.fail_json(
205-
"kernel value in %s must be of type str or dict"
205+
msg="kernel value in %s must be of type str or dict"
206206
% bootloader_setting["kernel"]
207207
)
208208

209209
if (isinstance(bootloader_setting["kernel"], str)) and (
210210
bootloader_setting["kernel"] not in kernel_str_values
211211
):
212212
module.fail_json(
213-
"kernel %s is of type str, it must be one of '%s'"
213+
msg="kernel %s is of type str, it must be one of '%s'"
214214
% (
215215
bootloader_setting["kernel"],
216216
", ".join(kernel_str_values),
@@ -227,7 +227,7 @@ def validate_kernels(module, bootloader_setting, bootloader_facts):
227227
for key, value in bootloader_setting["kernel"].items():
228228
if key not in kernel_keys:
229229
module.fail_json(
230-
"kernel key in '%s: %s' must be one of '%s'"
230+
msg="kernel key in '%s: %s' must be one of '%s'"
231231
% (
232232
key,
233233
value,
@@ -236,7 +236,7 @@ def validate_kernels(module, bootloader_setting, bootloader_facts):
236236
)
237237
if (not isinstance(value, str)) and (not isinstance(value, int)):
238238
module.fail_json(
239-
"kernel value in '%s: %s' must be of type str or int" % (key, value)
239+
msg="kernel value in '%s: %s' must be of type str or int" % (key, value)
240240
)
241241

242242
# Validate with len(bootloader_setting["kernel"]) == 1
@@ -255,7 +255,7 @@ def validate_kernels(module, bootloader_setting, bootloader_facts):
255255
diff, same = compare_dicts(bootloader_setting["kernel"], fact_trunc)
256256
if diff and same:
257257
module.fail_json(
258-
"A kernel with provided %s already exists and its other fields are different %s"
258+
msg="A kernel with provided %s already exists and its other fields are different %s"
259259
% (same, diff)
260260
)
261261
elif not diff and same:
@@ -268,7 +268,7 @@ def validate_kernels(module, bootloader_setting, bootloader_facts):
268268
sorted(bootloader_setting["kernel"].keys()) != sorted(kernel_create_keys)
269269
):
270270
module.fail_json(
271-
"To create a kernel, you must provide 3 kernel keys - '%s'"
271+
msg="To create a kernel, you must provide 3 kernel keys - '%s'"
272272
% ", ".join(kernel_create_keys)
273273
)
274274
kernel_action = "create" if state == "present" else "remove"
@@ -407,7 +407,7 @@ def rm_kernel(module, result, kernel):
407407

408408
def get_default_kernel(module, type):
409409
if type not in ["kernel", "title", "index"]:
410-
module.fail_json("Type must be one of 'kernel', 'title', or 'index'")
410+
module.fail_json(msg="Type must be one of 'kernel', 'title', or 'index'")
411411
cmd = "grubby --default-" + type
412412
_unused, stdout, _unused = module.run_command(cmd)
413413
return stdout.strip()
@@ -437,7 +437,7 @@ def run_module():
437437
for bootloader_setting in module.params["bootloader_settings"]:
438438
_unused, kernels_info, stderr = module.run_command("grubby --info=ALL")
439439
if "Permission denied" in stderr:
440-
module.fail_json("You must run this as sudo")
440+
module.fail_json(msg="You must run this as sudo")
441441

442442
default_kernel_index = get_default_kernel(module, "index")
443443
bootloader_facts = get_facts(kernels_info, default_kernel_index)

tests/unit/test_bootloader_settings.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def assert_error_msg(self, err, *cmd_args):
212212
self.mock_module, *cmd_args
213213
)
214214
except SystemExit:
215-
self.mock_module.fail_json.assert_called_once_with(err)
215+
self.mock_module.fail_json.assert_called_once_with(msg=err)
216216

217217
def test_validate_kernels(self):
218218
self.reset_vars()
@@ -578,7 +578,7 @@ def test_validate_default_kernel(self):
578578
)
579579
except SystemExit:
580580
self.mock_module.fail_json.assert_called_once_with(
581-
"You cannot set a kernel as default when you are using a string kernel - ALL"
581+
msg="You cannot set a kernel as default when you are using a string kernel - ALL"
582582
)
583583
self.reset_vars()
584584

@@ -592,7 +592,7 @@ def test_validate_default_kernel(self):
592592
)
593593
except SystemExit:
594594
self.mock_module.fail_json.assert_called_once_with(
595-
"You cannot set a kernel as default when you are using a string kernel - DEFAULT"
595+
msg="You cannot set a kernel as default when you are using a string kernel - DEFAULT"
596596
)
597597
self.reset_vars()
598598

@@ -650,7 +650,7 @@ def test_validate_default_kernel(self):
650650
)
651651
except SystemExit:
652652
self.mock_module.fail_json.assert_called_once_with(
653-
"Only one kernel can be set as default. Found 2 kernels with 'default: true' - /boot/vmlinuz-test1, /boot/vmlinuz-test2"
653+
msg="Only one kernel can be set as default. Found 2 kernels with 'default: true' - /boot/vmlinuz-test1, /boot/vmlinuz-test2"
654654
)
655655
self.reset_vars()
656656

@@ -665,7 +665,7 @@ def test_validate_default_kernel(self):
665665
)
666666
except SystemExit:
667667
self.mock_module.fail_json.assert_called_once_with(
668-
"Only one kernel can be set as default. Found 2 kernels with 'default: true' - Test Kernel, 2"
668+
msg="Only one kernel can be set as default. Found 2 kernels with 'default: true' - Test Kernel, 2"
669669
)
670670
self.reset_vars()
671671

@@ -787,6 +787,6 @@ def test_mod_default_kernel(self):
787787
bootloader_settings.get_default_kernel(self.mock_module, "invalid")
788788
except SystemExit:
789789
self.mock_module.fail_json.assert_called_once_with(
790-
"Type must be one of 'kernel', 'title', or 'index'"
790+
msg="Type must be one of 'kernel', 'title', or 'index'"
791791
)
792792
self.reset_vars()

0 commit comments

Comments
 (0)