Esempio n. 1
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = deepcopy(NETBOX_ARG_SPEC)
    argument_spec.update(
        dict(data=dict(
            type="dict",
            required=True,
            options=dict(
                name=dict(required=True, type="str"),
                tenant=dict(required=False, type="raw"),
                description=dict(required=False, type="str"),
                tags=dict(required=False, type="list"),
                custom_fields=dict(required=False, type="dict"),
            ),
        ), ))

    module = NetboxAnsibleModule(argument_spec=argument_spec,
                                 supports_check_mode=True)

    netbox_route_target = NetboxIpamModule(module, NB_ROUTE_TARGETS)
    netbox_route_target.run()
def main():
    """
    Main entry point for module execution
    """
    argument_spec = deepcopy(NETBOX_ARG_SPEC)
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    site=dict(required=False, type="raw"),
                    vlan_group=dict(required=False, type="raw"),
                    vid=dict(required=False, type="int"),
                    name=dict(required=True, type="str"),
                    tenant=dict(required=False, type="raw"),
                    status=dict(required=False, type="raw"),
                    vlan_role=dict(required=False, type="raw"),
                    description=dict(required=False, type="str"),
                    tags=dict(required=False, type="list", elements="raw"),
                    custom_fields=dict(required=False, type="dict"),
                ),
            ),
        )
    )
    required_if = [
        ("state", "present", ["name"]),
        ("state", "absent", ["name"]),
    ]

    module = NetboxAnsibleModule(
        argument_spec=argument_spec, supports_check_mode=True, required_if=required_if
    )

    netbox_vlan = NetboxIpamModule(module, NB_VLANS)
    netbox_vlan.run()
Esempio n. 3
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = deepcopy(NETBOX_ARG_SPEC)
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    device=dict(required=False, type="raw"),
                    virtual_machine=dict(required=False, type="raw"),
                    name=dict(required=True, type="str"),
                    port=dict(required=False, type="int"),
                    ports=dict(required=False, type="list", elements="int"),
                    protocol=dict(required=True, type="raw"),
                    ipaddresses=dict(required=False, type="raw"),
                    description=dict(required=False, type="str"),
                    tags=dict(required=False, type="list"),
                    custom_fields=dict(required=False, type="dict"),
                ),
            ),
        )
    )

    required_if = [
        ("state", "present", ["name"]),
        ("state", "absent", ["name"]),
    ]
    mutually_exclusive = [("port", "ports")]
    required_one_of = [["device", "virtual_machine"], ["port", "ports"]]

    module = NetboxAnsibleModule(
        argument_spec=argument_spec,
        supports_check_mode=True,
        required_if=required_if,
        required_one_of=required_one_of,
        mutually_exclusive=mutually_exclusive,
    )

    netbox_service = NetboxIpamModule(module, NB_SERVICES)

    # Change port to ports for 2.10+ and convert to a list with the single integer
    if netbox_service.data.get("port") and netbox_service._version_check_greater(
        netbox_service.version, "2.10", greater_or_equal=True
    ):
        netbox_service.data["ports"] = [netbox_service.data.pop("port")]

    # Run the normal run() method
    netbox_service.run()
Esempio n. 4
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = deepcopy(NETBOX_ARG_SPEC)
    # state choices present, absent, new
    argument_spec["state"] = dict(required=False,
                                  default="present",
                                  choices=["present", "absent", "new"])
    argument_spec.update(
        dict(data=dict(
            type="dict",
            required=True,
            options=dict(
                family=dict(
                    required=False,
                    type="int",
                    choices=[4, 6],
                    removed_in_version="0.3.0",
                ),
                address=dict(required=False, type="str"),
                prefix=dict(required=False, type="raw"),
                vrf=dict(required=False, type="raw"),
                tenant=dict(required=False, type="raw"),
                status=dict(required=False, type="raw"),
                role=dict(
                    required=False,
                    type="str",
                    choices=[
                        "Loopback",
                        "Secondary",
                        "Anycast",
                        "VIP",
                        "VRRP",
                        "HSRP",
                        "GLBP",
                        "CARP",
                    ],
                ),
                interface=dict(required=False, type="raw"),
                description=dict(required=False, type="str"),
                nat_inside=dict(required=False, type="raw"),
                dns_name=dict(required=False, type="str"),
                assigned_object=dict(
                    required=False,
                    type="dict",
                    options=dict(
                        name=dict(required=False, type="str"),
                        device=dict(required=False, type="str"),
                        virtual_machine=dict(required=False, type="str"),
                    ),
                ),
                tags=dict(required=False, type="list"),
                custom_fields=dict(required=False, type="dict"),
            ),
        ), ))

    required_if = [
        ("state", "present", ["address", "prefix"], True),
        ("state", "absent", ["address"]),
        ("state", "new", ["address", "prefix"], True),
    ]
    mutually_exclusive = [["interface", "assigned_object"],
                          ["address", "prefix"]]

    module = NetboxAnsibleModule(
        argument_spec=argument_spec,
        supports_check_mode=True,
        required_if=required_if,
        mutually_exclusive=mutually_exclusive,
    )

    netbox_ip_address = NetboxIpamModule(module, NB_IP_ADDRESSES)
    netbox_ip_address.run()
Esempio n. 5
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    # state choices present, absent, new
    argument_spec["state"] = dict(required=False,
                                  default="present",
                                  choices=["present", "absent", "new"])
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    family=dict(required=False, type="int"),
                    address=dict(required=False, type="str"),
                    prefix=dict(required=False, type="raw"),
                    vrf=dict(required=False, type="raw"),
                    tenant=dict(required=False, type="raw"),
                    # Will uncomment other status dict once slugs are the only option (Netbox 2.8)
                    status=dict(required=False, type="raw"),
                    # status=dict(
                    #    required=False,
                    #    type="str",
                    #    choices=["Active", "Reserved", "Deprecated", "DHCP"],
                    # ),
                    role=dict(
                        required=False,
                        type="str",
                        choices=[
                            "Loopback",
                            "Secondary",
                            "Anycast",
                            "VIP",
                            "VRRP",
                            "HSRP",
                            "GLBP",
                            "CARP",
                        ],
                    ),
                    interface=dict(required=False, type="raw"),
                    description=dict(required=False, type="str"),
                    nat_inside=dict(required=False, type="raw"),
                    dns_name=dict(required=False, type="str"),
                    tags=dict(required=False, type=list),
                    custom_fields=dict(required=False, type=dict),
                ),
            ), ))

    required_if = [
        ("state", "present", ["address", "prefix"], True),
        ("state", "absent", ["address"]),
        ("state", "new", ["address", "prefix"], True),
    ]

    module = NetboxAnsibleModule(argument_spec=argument_spec,
                                 supports_check_mode=True,
                                 required_if=required_if)

    netbox_ip_address = NetboxIpamModule(module, NB_IP_ADDRESSES)
    netbox_ip_address.run()