|
31 | 31 | TLCONFIG = "/opt/thinlinc/bin/tl-config" |
32 | 32 |
|
33 | 33 | def getvalue(param): |
34 | | - tlproc = subprocess.Popen([TLCONFIG, "%s" % param], stdout=subprocess.PIPE,universal_newlines=True) |
35 | | - stdout, _ = tlproc.communicate() |
36 | | - return stdout.rstrip() |
| 34 | + tlproc = subprocess.run([TLCONFIG, "%s" % param], stdout=subprocess.PIPE, universal_newlines=True) |
| 35 | + return tlproc.stdout.strip("\n") |
37 | 36 |
|
38 | | -def setvalue(param, value): |
39 | | - tlproc = subprocess.Popen([TLCONFIG, "%s=%s" % (param, value)]) |
40 | | - return tlproc.wait() |
41 | 37 |
|
42 | | -def main(): |
43 | | - changed = False |
| 38 | +def setvalue(param, value, check_mode): |
| 39 | + if not check_mode: |
| 40 | + tlproc = subprocess.run([TLCONFIG, "%s=%s" % (param, value)]) |
| 41 | + return tlproc.returncode |
| 42 | + else: |
| 43 | + return 0 |
44 | 44 |
|
| 45 | +def main(): |
45 | 46 | module = AnsibleModule(argument_spec=dict(param=dict(required=True, type='str'), |
46 | 47 | value=dict(required=True)), |
47 | 48 | supports_check_mode=True) |
48 | 49 |
|
49 | | - if module.check_mode: |
50 | | - module.exit_json(changed=module.params['value'] != getvalue(module.params['param'])) |
| 50 | + result = { |
| 51 | + "changed": False, |
| 52 | + "param": module.params['param'], |
| 53 | + "value": module.params['value'] |
| 54 | + } |
51 | 55 |
|
52 | 56 | if len(module.params['param']) == 0: |
53 | 57 | module.fail_json(msg="Param can't be empty") |
54 | 58 |
|
55 | 59 | if len(module.params['value']) == 0: |
56 | 60 | module.fail_json(msg="Value can't be empty") |
57 | 61 |
|
58 | | - if getvalue(module.params['param']) != module.params['value']: |
59 | | - ret = setvalue(module.params['param'], module.params['value']) |
| 62 | + current = getvalue(module.params['param']) |
| 63 | + new = module.params['value'] |
60 | 64 |
|
61 | | - if ret is not 0: |
| 65 | + if current != new: |
| 66 | + ret = setvalue(module.params['param'], module.params['value'], module.check_mode) |
| 67 | + |
| 68 | + if ret != 0: |
62 | 69 | msg = "Failed setting %s: tl-config returned %d" % (module.params['param'], ret) |
63 | 70 | module.fail_json(msg=msg) |
64 | | - changed = True |
| 71 | + result['changed'] = True |
| 72 | + |
| 73 | + if module._diff: |
| 74 | + result['diff'] = { |
| 75 | + "before": current, |
| 76 | + "after": new |
| 77 | + } |
65 | 78 |
|
66 | | - module.exit_json(changed=changed, |
67 | | - param=module.params['param'], |
68 | | - value=module.params['value']) |
| 79 | + module.exit_json(**result) |
69 | 80 |
|
70 | 81 | if __name__ == '__main__': |
71 | 82 | main() |
0 commit comments