Ejemplo n.º 1
0
def main():
    module = AnsibleModule(argument_spec=dict(
        name=dict(required=True, type='str'),
        state=dict(required=True, type='str', choices=["present", "absent"]),
        username=dict(required=True, type='str'),
        password=dict(required=True, type='str'),
        hostname=dict(required=True, type='str'),
        plc_name=dict(required=True, type='str'),
    ))

    credentials = {
        "username": module.params["username"],
        "password": module.params["password"],
        "hostname": module.params["hostname"],
        "plc_name": module.params["plc_name"]
    }

    state = module.params["state"]
    siteName = module.params["name"]

    api = LCDNAPI(credentials)

    sites = api.ListAll("Site", {"name": siteName})

    if sites and (state == "absent"):
        api.deleteSite(siteName)
        module.exit_json(changed=True, msg="site deleted")
    elif (not sites) and (state == "present"):
        api.createSite(siteName)
        module.exit_json(changed=True, msg="site created")
    else:
        module.exit_json(changed=False)
Ejemplo n.º 2
0
def main():
    module = AnsibleModule(argument_spec=dict(
        name=dict(required=True, type='str'),
        site=dict(required=True, type='str'),
        dns=dict(required=True, type='list'),
        interfaces=dict(required=True, type='list'),
        license=dict(required=True, type='str'),
        state=dict(required=True, type='str', choices=["present", "absent"]),
        force=dict(default=False, type="bool"),
        username=dict(required=True, type='str'),
        password=dict(required=True, type='str'),
        hostname=dict(required=True, type='str'),
        plc_name=dict(required=True, type='str'),
        remote_hostname=dict(default=None, type="str"),
    ))

    credentials = {
        "username": module.params["username"],
        "password": module.params["password"],
        "hostname": module.params["hostname"],
        "plc_name": module.params["plc_name"]
    }

    state = module.params["state"]
    node_hostname = module.params["name"]
    eorce = module.params["force"]

    api = LCDNAPI(credentials)

    nodes = api.ListAll("Node", {"hostname": node_hostname})

    if (nodes or force) and (state == "absent"):
        api.deleteCache(node_hostname)
        module.exit_json(changed=True, msg="cachenode deleted")
    elif ((not nodes) or force) and (state == "present"):
        if nodes:
            # must have been called with force=True, so delete the node so we can re-create it
            api.deleteCache(node_hostname)

        hpc = {
            "hostname": node_hostname,
            "site": module.params["site"],
            "dns": module.params["dns"],
            "Interfaces": module.params["interfaces"],
            "license": module.params["license"]
        }
        ret = api.createCache(**hpc)
        setupscript = ret["setupscript"]

        if module.params["remote_hostname"]:
            setupscript = setupscript.replace(module.params["hostname"],
                                              module.params["remote_hostname"])

        module.exit_json(changed=True,
                         msg="cachenode created",
                         setupscript=setupscript)
    else:
        module.exit_json(changed=False)