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()
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()
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()
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()