blob: 465c760dbcba2dade6a040ec588bfe495007f921 [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 service_provider = dict(required=True, type="str"),
19
20 state = dict(required=True, type='str', choices=["present", "absent"]),
21 force = dict(default=False, type="bool"),
22 username = dict(required=True, type='str'),
23 password = dict(required=True, type='str'),
24 hostname = dict(required=True, type='str'),
25 plc_name = dict(required=True, type='str'),
26 )
27 )
28
29 credentials = {"username": module.params["username"],
30 "password": module.params["password"],
31 "hostname": module.params["hostname"],
32 "plc_name": module.params["plc_name"]}
33
34 state = module.params["state"]
35 cp_name = module.params["name"]
36 force = module.params["force"]
37
38 api = LCDNAPI(credentials, experimental=True)
39
40 service_providers = api.onevapi.ListAll("ServiceProvider", {"name": module.params["service_provider"]})
41 if not service_providers:
42 raise Exception("Unable to find %s" % module.params["service_provider"])
43 service_provider = service_providers[0]
44
45 cps = api.onevapi.ListAll("ContentProvider", {"name": cp_name})
46
47 if (cps or force) and (state=="absent"):
48 api.Delete("ContentProvider", cps[0].id)
49 module.exit_json(changed=True, msg="cp deleted")
50 elif ((not cps) or force) and (state=="present"):
51 if cps:
52 # must have been called with force=True, so delete the node so we can re-create it
53 api.onevapi.Delete("ContentProvider", cps[0]["content_provider_id"])
54
55 sp = {"account": module.params["account"],
56 "name": cp_name,
57 "enabled": module.params["enabled"],
58 "service_provider_id": service_provider["service_provider_id"]}
59 ret = api.onevapi.Create("ContentProvider", sp)
60
61 module.exit_json(changed=True, msg="cp created")
62 else:
63 module.exit_json(changed=False)
64
65if __name__ == '__main__':
66 main()