blob: e683218f8b42325a6f689411b0f77ad20a4711b9 [file] [log] [blame]
Scott Bakerc41914d2017-06-26 14:00:52 -07001#!/usr/bin/python
2
3import json
4import os
5import requests
6import sys
7import traceback
8
9from ansible.module_utils.basic import AnsibleModule
10from auraclienttools import LCDNAPI, LCDNFault
11
12def main():
13 module = AnsibleModule(
14 argument_spec = dict(
15 name = dict(required=True, type='str'),
16 account = dict(required=True, type='str'),
17 enabled = dict(required=True, type="bool"),
18
19 state = dict(required=True, type='str', choices=["present", "absent"]),
20 force = dict(default=False, type="bool"),
21 username = dict(required=True, type='str'),
22 password = dict(required=True, type='str'),
23 hostname = dict(required=True, type='str'),
24 plc_name = dict(required=True, type='str'),
25 )
26 )
27
28 credentials = {"username": module.params["username"],
29 "password": module.params["password"],
30 "hostname": module.params["hostname"],
31 "plc_name": module.params["plc_name"]}
32
33 state = module.params["state"]
34 sp_name = module.params["name"]
35 force = module.params["force"]
36
37 api = LCDNAPI(credentials, experimental=True)
38
39 sps = api.onevapi.ListAll("ServiceProvider", {"name": sp_name})
40
41 if (sps or force) and (state=="absent"):
42 api.Delete("ServiceProvider", sps[0].id)
43 module.exit_json(changed=True, msg="sp deleted")
44 elif ((not sps) or force) and (state=="present"):
45 if sps:
46 # must have been called with force=True, so delete the node so we can re-create it
47 api.onevapi.Delete("ServiceProvider", sps[0]["service_provider_id"])
48
49 sp = {"account": module.params["account"],
50 "name": sp_name,
51 "enabled": module.params["enabled"]}
52 ret = api.onevapi.Create("ServiceProvider", sp)
53
54 module.exit_json(changed=True, msg="sp created")
55 else:
56 module.exit_json(changed=False)
57
58if __name__ == '__main__':
59 main()