blob: 4fdf224529831c117ef420ef0b6354b69472e639 [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 url = dict(required=True, type='str'),
16 service_type = dict(default="HyperCache", type="str"),
17 content_provider = dict(required=True, type="str"),
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 origin_url = module.params["url"]
35 force = module.params["force"]
36
37 api = LCDNAPI(credentials, experimental=True)
38
39 content_providers = api.onevapi.ListAll("ContentProvider", {"name": module.params["content_provider"]})
40 if not content_providers:
41 raise Exception("Unable to find %s" % module.params["content_provider"])
42 content_provider = content_providers[0]
43
44 origins = api.onevapi.ListAll("OriginServer", {"url": origin_url})
45
46 if (origins or force) and (state=="absent"):
47 api.Delete("OriginServer", origins[0]["origin_servier_id"])
48 module.exit_json(changed=True, msg="origin server deleted")
49 elif ((not origins) or force) and (state=="present"):
50 if origins:
51 # must have been called with force=True, so delete the node so we can re-create it
52 api.onevapi.Delete("OriginServer", origins[0]["origin_server_id"])
53
54 origin = {"url": origin_url,
55 "service_type": module.params["service_type"],
56 "content_provider_id": content_provider["content_provider_id"]}
57 ret = api.onevapi.Create("OriginServer", origin)
58
59 module.exit_json(changed=True, msg="origin server created")
60 else:
61 module.exit_json(changed=False)
62
63if __name__ == '__main__':
64 main()