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_type=dict(required=True, type="raw"),
                name=dict(required=True, type="str"),
            ),
        ), ))

    required_if = [
        ("state", "present", ["name", "device_type"]),
        ("state", "absent", ["name", "device_type"]),
    ]

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

    netbox_device_bay_template = NetboxDcimModule(module,
                                                  NB_DEVICE_BAY_TEMPLATES)
    netbox_device_bay_template.run()
Пример #2
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"),
                    name=dict(required=True, type="str"),
                    description=dict(required=False, type="str"),
                    installed_device=dict(required=False, type="raw"),
                    tags=dict(required=False, type="list", elements="raw"),
                ),
            ),
        )
    )

    required_if = [("state", "present", ["name"]), ("state", "absent", ["name"])]

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

    netbox_device_bay = NetboxDcimModule(module, NB_DEVICE_BAYS)
    netbox_device_bay.run()
Пример #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(
                name=dict(required=True, type="str"),
                slug=dict(required=False, type="str"),
                parent_region=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_region = NetboxDcimModule(module, NB_REGIONS)
    netbox_region.run()
Пример #4
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=False, type="str"),
                    master=dict(required=False, type="raw"),
                    domain=dict(required=False, type="str"),
                    tags=dict(required=False, type="list", elements="raw"),
                ),
            ),
        )
    )

    # required_if = [
    #    ("state", "present", ["master"]),
    #    ("state", "absent", ["master"]),
    # ]
    required_one_of = [["name", "master"]]

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

    netbox_virtual_chassis = NetboxDcimModule(module, NB_VIRTUAL_CHASSIS)
    netbox_virtual_chassis.run()
Пример #5
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(
                site=dict(required=True, type="raw"),
                rack_group=dict(
                    required=False,
                    type="raw",
                    removed_in_version="5.0.0",
                    removed_from_collection="netbox.netbox",
                ),
                location=dict(required=False, type="raw"),
                name=dict(required=True, type="str"),
            ),
        ), ))

    required_if = [
        ("state", "present", ["site", "name"]),
        ("state", "absent", ["site", "name"]),
    ]

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

    netbox_power_panel = NetboxDcimModule(module, NB_POWER_PANELS)
    netbox_power_panel.run()
Пример #6
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    name=dict(required=True, type="str"),
                    device_type=dict(required=False, type="raw"),
                    device_role=dict(required=False, type="raw"),
                    tenant=dict(required=False, type="raw"),
                    platform=dict(required=False, type="raw"),
                    serial=dict(required=False, type="str"),
                    asset_tag=dict(required=False, type="str"),
                    site=dict(required=False, type="raw"),
                    rack=dict(required=False, type="raw"),
                    position=dict(required=False, type="int"),
                    face=dict(
                        required=False,
                        type="str",
                        choices=["Front", "front", "Rear", "rear"],
                    ),
                    # Will uncomment other status dict once slugs are the only option (Netbox 2.8)
                    status=dict(required=False, type="raw"),
                    # status=dict(
                    #    required=False,
                    #    choices=[
                    #        "Active",
                    #        "Offline",
                    #        "Planned",
                    #        "Staged",
                    #        "Failed",
                    #        "Inventory",
                    #    ],
                    # ),
                    primary_ip4=dict(required=False, type="raw"),
                    primary_ip6=dict(required=False, type="raw"),
                    cluster=dict(required=False, type="raw"),
                    comments=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"])]

    module = NetboxAnsibleModule(
        argument_spec=argument_spec, supports_check_mode=True, required_if=required_if
    )
    if module.params["data"]["name"] == "":
        module.params["data"]["name"] = str(uuid.uuid4())

    netbox_device = NetboxDcimModule(module, NB_DEVICES)
    netbox_device.run()
Пример #7
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"),
                slug=dict(required=False, type="str"),
                description=dict(required=False, type="str"),
            ),
        ), ))

    required_if = [("state", "present", ["name"]),
                   ("state", "absent", ["name"])]

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

    netbox_manufacturer = NetboxDcimModule(module, NB_MANUFACTURERS)
    netbox_manufacturer.run()
Пример #8
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    device=dict(required=False, type="raw"),
                    name=dict(required=True, type="str"),
                    manufacturer=dict(required=False, type="raw"),
                    part_id=dict(required=False, type="str"),
                    serial=dict(required=False, type="str"),
                    asset_tag=dict(required=False, type="str"),
                    description=dict(required=False, type="str"),
                    tags=dict(required=False, type=list),
                ),
            ),
        )
    )

    required_if = [
        ("state", "present", ["device", "name"]),
        ("state", "absent", ["device", "name"]),
    ]

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

    netbox_inventory_item = NetboxDcimModule(module, NB_INVENTORY_ITEMS)
    netbox_inventory_item.run()
Пример #9
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"),
                slug=dict(required=False, type="str"),
                manufacturer=dict(required=False, type="raw"),
                napalm_driver=dict(required=False, type="str"),
                napalm_args=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_platform = NetboxDcimModule(module, NB_PLATFORMS)
    netbox_platform.run()
Пример #10
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"),
                slug=dict(required=False, type="str"),
                color=dict(required=False, type="str"),
            ),
        ), ))

    required_if = [("state", "present", ["name"]),
                   ("state", "absent", ["name"])]

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

    netbox_rack_role = NetboxDcimModule(module, NB_RACK_ROLES)
    netbox_rack_role.run()
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(data=dict(
            type="dict",
            required=True,
            options=dict(
                manufacturer=dict(required=False, type="raw"),
                model=dict(required=True, type="raw"),
                slug=dict(required=False, type="str"),
                part_number=dict(required=False, type="str"),
                u_height=dict(required=False, type="int"),
                is_full_depth=dict(required=False, type="bool"),
                subdevice_role=dict(
                    required=False,
                    choices=["Parent", "parent", "Child", "child"]),
                comments=dict(required=False, type="str"),
                tags=dict(required=False, type=list),
                custom_fields=dict(required=False, type=dict),
            ),
        ), ))

    required_if = [("state", "present", ["model"]),
                   ("state", "absent", ["model"])]

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

    netbox_device_type = NetboxDcimModule(module, NB_DEVICE_TYPES)
    netbox_device_type.run()
Пример #12
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"),
                    facility_id=dict(required=False, type="str"),
                    site=dict(required=False, type="raw"),
                    rack_group=dict(required=False, type="raw"),
                    tenant=dict(required=False, type="raw"),
                    status=dict(required=False, type="raw"),
                    rack_role=dict(required=False, type="raw"),
                    serial=dict(required=False, type="str"),
                    asset_tag=dict(required=False, type="str"),
                    type=dict(
                        required=False,
                        type="str",
                        choices=[
                            "2-post frame",
                            "4-post frame",
                            "4-post cabinet",
                            "Wall-mounted frame",
                            "Wall-mounted cabinet",
                        ],
                    ),
                    width=dict(required=False, type="int", choices=[10, 19, 21, 23,],),
                    u_height=dict(required=False, type="int"),
                    desc_units=dict(required=False, type="bool"),
                    outer_width=dict(required=False, type="int"),
                    outer_depth=dict(required=False, type="int"),
                    outer_unit=dict(
                        required=False, type="str", choices=["Millimeters", "Inches",],
                    ),
                    comments=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"])]

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

    netbox_rack = NetboxDcimModule(module, NB_RACKS)
    netbox_rack.run()
Пример #13
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=True, type="raw"),
                    name=dict(required=True, type="str"),
                    type=dict(
                        required=True,
                        choices=[
                            "8p8c",
                            "110-punch",
                            "bnc",
                            "mrj21",
                            "fc",
                            "lc",
                            "lc-apc",
                            "lsh",
                            "lsh-apc",
                            "mpo",
                            "mtrj",
                            "sc",
                            "sc-apc",
                            "st",
                        ],
                        type="str",
                    ),
                    rear_port=dict(required=True, type="raw"),
                    rear_port_position=dict(required=False, type="int"),
                    description=dict(required=False, type="str"),
                    tags=dict(required=False, type="list"),
                ),
            ),
        )
    )

    required_if = [
        ("state", "present", ["device", "name", "type", "rear_port"]),
        ("state", "absent", ["device", "name", "type", "rear_port"]),
    ]

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

    netbox_front_port = NetboxDcimModule(module, NB_FRONT_PORTS)
    netbox_front_port.run()
def main():
    """
    Main entry point for module execution
    """
    argument_spec = deepcopy(NETBOX_ARG_SPEC)
    argument_spec.update(
        dict(
            update_vc_child=dict(type="bool", required=False, default=False),
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    device=dict(required=False, type="raw"),
                    name=dict(required=True, type="str"),
                    form_factor=dict(
                        required=False,
                        type="raw",
                        removed_in_version="4.0.0",
                        removed_from_collection="netbox.netbox",
                    ),
                    label=dict(required=False, type="str"),
                    type=dict(required=False, type="str"),
                    enabled=dict(required=False, type="bool"),
                    lag=dict(required=False, type="raw"),
                    bridge=dict(required=False, type="raw"),
                    mtu=dict(required=False, type="int"),
                    mac_address=dict(required=False, type="str"),
                    mgmt_only=dict(required=False, type="bool"),
                    description=dict(required=False, type="str"),
                    mode=dict(required=False, type="raw"),
                    parent_interface=dict(required=False, type="raw"),
                    untagged_vlan=dict(required=False, type="raw"),
                    tagged_vlans=dict(required=False, type="raw"),
                    tags=dict(required=False, type="list", elements="raw"),
                    mark_connected=dict(required=False, type="bool"),
                    custom_fields=dict(required=False, type="dict"),
                ),
            ),
        ))

    required_if = [
        ("state", "present", ["device", "name"]),
        ("state", "absent", ["device", "name"]),
        ("update_vc_child", True, ["device"]),
    ]

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

    netbox_device_interface = NetboxDcimModule(module, NB_INTERFACES)
    netbox_device_interface.run()
Пример #15
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"),
                device_type=dict(required=False, type="raw"),
                device_role=dict(required=False, type="raw"),
                tenant=dict(required=False, type="raw"),
                platform=dict(required=False, type="raw"),
                serial=dict(required=False, type="str"),
                asset_tag=dict(required=False, type="str"),
                site=dict(required=False, type="raw"),
                location=dict(required=False, type="raw"),
                rack=dict(required=False, type="raw"),
                position=dict(required=False, type="int"),
                face=dict(
                    required=False,
                    type="str",
                    choices=["Front", "front", "Rear", "rear"],
                ),
                status=dict(required=False, type="raw"),
                primary_ip4=dict(required=False, type="raw"),
                primary_ip6=dict(required=False, type="raw"),
                cluster=dict(required=False, type="raw"),
                virtual_chassis=dict(required=False, type="raw"),
                vc_position=dict(required=False, type="int"),
                vc_priority=dict(required=False, type="int"),
                comments=dict(required=False, type="str"),
                tags=dict(required=False, type="list", elements="raw"),
                local_context_data=dict(required=False, type="dict"),
                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)
    if module.params["data"]["name"] == "":
        module.params["data"]["name"] = str(uuid.uuid4())

    netbox_device = NetboxDcimModule(module, NB_DEVICES)
    netbox_device.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_type=dict(required=True, type="raw"),
                    name=dict(required=True, type="str"),
                    type=dict(
                        required=False,
                        choices=[
                            "de-9",
                            "db-25",
                            "rj-11",
                            "rj-12",
                            "rj-45",
                            "usb-a",
                            "usb-b",
                            "usb-c",
                            "usb-mini-a",
                            "usb-mini-b",
                            "usb-micro-a",
                            "usb-micro-b",
                            "other",
                        ],
                        type="str",
                    ),
                ),
            ),
        )
    )

    required_if = [
        ("state", "present", ["device_type", "name"]),
        ("state", "absent", ["device_type", "name"]),
    ]

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

    netbox_console_server_port_template = NetboxDcimModule(
        module, NB_CONSOLE_SERVER_PORT_TEMPLATES
    )
    netbox_console_server_port_template.run()
Пример #17
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(
                    power_panel=dict(required=True, type="raw"),
                    rack=dict(required=False, type="raw"),
                    name=dict(required=True, type="str"),
                    status=dict(
                        required=False,
                        choices=["offline", "active", "planned", "failed"],
                        type="str",
                    ),
                    type=dict(
                        required=False, choices=["primary", "redundant"], type="str"
                    ),
                    supply=dict(required=False, choices=["ac", "dc"], type="str"),
                    phase=dict(
                        required=False,
                        choices=["single-phase", "three-phase"],
                        type="str",
                    ),
                    voltage=dict(required=False, type="int"),
                    amperage=dict(required=False, type="int"),
                    max_utilization=dict(required=False, type="int"),
                    comments=dict(required=False, type="str"),
                    tags=dict(required=False, type="list", elements="raw"),
                    custom_fields=dict(required=False, type="dict"),
                ),
            ),
        )
    )

    required_if = [
        ("state", "present", ["power_panel", "name"]),
        ("state", "absent", ["power_panel", "name"]),
    ]

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

    netbox_power_feed = NetboxDcimModule(module, NB_POWER_FEEDS)
    netbox_power_feed.run()
Пример #18
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    name=dict(required=True, type="str"),
                    # Will uncomment other status dict once slugs are the only option (Netbox 2.8)
                    status=dict(required=False, type="raw"),
                    # status=dict(
                    #    required=False, choices=["Active", "Planned", "Retired"],
                    # ),
                    region=dict(required=False, type="raw"),
                    tenant=dict(required=False, type="raw"),
                    vlan_role=dict(required=False, type="raw"),
                    facility=dict(required=False, type="str"),
                    asn=dict(required=False, type="int"),
                    time_zone=dict(required=False, type="str"),
                    description=dict(required=False, type="str"),
                    physical_address=dict(required=False, type="str"),
                    shipping_address=dict(required=False, type="str"),
                    latitude=dict(required=False, type="float"),
                    longitude=dict(required=False, type="float"),
                    contact_name=dict(required=False, type="str"),
                    contact_phone=dict(required=False, type="str"),
                    contact_email=dict(required=False, type="str"),
                    comments=dict(required=False, type="str"),
                    tags=dict(required=False, type=list),
                    custom_fields=dict(required=False, type=dict),
                    slug=dict(required=False, type="str"),
                ),
            ),
        )
    )

    required_if = [("state", "present", ["name"]), ("state", "absent", ["name"])]

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

    netbox_site = NetboxDcimModule(module, NB_SITES)
    netbox_site.run()
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(
            update_vc_child=dict(type="bool", required=False, default=False),
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    device=dict(required=False, type="raw"),
                    name=dict(required=True, type="str"),
                    form_factor=dict(required=False, type="raw"),
                    enabled=dict(required=False, type="bool"),
                    lag=dict(required=False, type="raw"),
                    mtu=dict(required=False, type="int"),
                    mac_address=dict(required=False, type="str"),
                    mgmt_only=dict(required=False, type="bool"),
                    description=dict(required=False, type="str"),
                    mode=dict(
                        required=False,
                        choices=["Access", "Tagged", "Tagged All"],
                    ),
                    untagged_vlan=dict(required=False, type="raw"),
                    tagged_vlans=dict(required=False, type="raw"),
                    tags=dict(required=False, type="list"),
                ),
            ),
        ))

    required_if = [
        ("state", "present", ["device", "name"]),
        ("state", "absent", ["device", "name"]),
        ("update_vc_child", True, ["device"]),
    ]

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

    netbox_device_interface = NetboxDcimModule(module, NB_INTERFACES)
    netbox_device_interface.run()
Пример #20
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"),
                    status=dict(required=False, type="raw"),
                    region=dict(required=False, type="raw"),
                    tenant=dict(required=False, type="raw"),
                    facility=dict(required=False, type="str"),
                    asn=dict(required=False, type="int"),
                    time_zone=dict(required=False, type="str"),
                    description=dict(required=False, type="str"),
                    physical_address=dict(required=False, type="str"),
                    shipping_address=dict(required=False, type="str"),
                    latitude=dict(required=False, type="float"),
                    longitude=dict(required=False, type="float"),
                    contact_name=dict(required=False, type="str"),
                    contact_phone=dict(required=False, type="str"),
                    contact_email=dict(required=False, type="str"),
                    comments=dict(required=False, type="str"),
                    slug=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"])]

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

    netbox_site = NetboxDcimModule(module, NB_SITES)
    netbox_site.run()
Пример #21
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_type=dict(required=True, type="raw"),
                name=dict(required=True, type="str"),
                type=dict(
                    required=False,
                    choices=[
                        "iec-60320-c6",
                        "iec-60320-c8",
                        "iec-60320-c14",
                        "iec-60320-c16",
                        "iec-60320-c20",
                        "iec-60309-p-n-e-4h",
                        "iec-60309-p-n-e-6h",
                        "iec-60309-p-n-e-9h",
                        "iec-60309-2p-e-4h",
                        "iec-60309-2p-e-6h",
                        "iec-60309-2p-e-9h",
                        "iec-60309-3p-e-4h",
                        "iec-60309-3p-e-6h",
                        "iec-60309-3p-e-9h",
                        "iec-60309-3p-n-e-4h",
                        "iec-60309-3p-n-e-6h",
                        "iec-60309-3p-n-e-9h",
                        "nema-5-15p",
                        "nema-5-20p",
                        "nema-5-30p",
                        "nema-5-50p",
                        "nema-6-15p",
                        "nema-6-20p",
                        "nema-6-30p",
                        "nema-6-50p",
                        "nema-l5-15p",
                        "nema-l5-20p",
                        "nema-l5-30p",
                        "nema-l5-50p",
                        "nema-l6-20p",
                        "nema-l6-30p",
                        "nema-l6-50p",
                        "nema-l14-20p",
                        "nema-l14-30p",
                        "nema-l21-20p",
                        "nema-l21-30p",
                        "cs6361c",
                        "cs6365c",
                        "cs8165c",
                        "cs8265c",
                        "cs8365c",
                        "cs8465c",
                        "ita-e",
                        "ita-f",
                        "ita-ef",
                        "ita-g",
                        "ita-h",
                        "ita-i",
                        "ita-j",
                        "ita-k",
                        "ita-l",
                        "ita-m",
                        "ita-n",
                        "ita-o",
                    ],
                    type="str",
                ),
                allocated_draw=dict(required=False, type="int"),
                maximum_draw=dict(required=False, type="int"),
            ),
        ), ))

    required_if = [
        ("state", "present", ["device_type", "name"]),
        ("state", "absent", ["device_type", "name"]),
    ]

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

    netbox_power_port_template = NetboxDcimModule(module,
                                                  NB_POWER_PORT_TEMPLATES)
    netbox_power_port_template.run()
Пример #22
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(
                termination_a_type=dict(
                    required=True,
                    choices=[
                        "circuits.circuittermination",
                        "dcim.consoleport",
                        "dcim.consoleserverport",
                        "dcim.frontport",
                        "dcim.interface",
                        "dcim.powerfeed",
                        "dcim.poweroutlet",
                        "dcim.powerport",
                        "dcim.rearport",
                    ],
                    type="str",
                ),
                termination_a=dict(required=True, type="raw"),
                termination_b_type=dict(
                    required=True,
                    choices=[
                        "circuits.circuittermination",
                        "dcim.consoleport",
                        "dcim.consoleserverport",
                        "dcim.frontport",
                        "dcim.interface",
                        "dcim.powerfeed",
                        "dcim.poweroutlet",
                        "dcim.powerport",
                        "dcim.rearport",
                    ],
                    type="str",
                ),
                termination_b=dict(required=True, type="raw"),
                type=dict(
                    required=False,
                    choices=[
                        "cat3",
                        "cat5",
                        "cat5e",
                        "cat6",
                        "cat6a",
                        "cat7",
                        "dac-active",
                        "dac-passive",
                        "mrj21-trunk",
                        "coaxial",
                        "mmf",
                        "mmf-om1",
                        "mmf-om2",
                        "mmf-om3",
                        "mmf-om4",
                        "smf",
                        "smf-os1",
                        "smf-os2",
                        "aoc",
                        "power",
                    ],
                    type="str",
                ),
                status=dict(
                    required=False,
                    choices=["connected", "planned", "decommissioning"],
                    type="str",
                ),
                label=dict(required=False, type="str"),
                color=dict(required=False, type="str"),
                length=dict(required=False, type="int"),
                length_unit=dict(required=False,
                                 choices=["m", "cm", "ft", "in"],
                                 type="str"),
                tags=dict(required=False, type="list", elements="str"),
            ),
        ), ))

    required_if = [
        (
            "state",
            "present",
            [
                "termination_a_type",
                "termination_a",
                "termination_b_type",
                "termination_b",
            ],
        ),
        (
            "state",
            "absent",
            [
                "termination_a_type",
                "termination_a",
                "termination_b_type",
                "termination_b",
            ],
        ),
    ]

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

    netbox_cable = NetboxDcimModule(module, NB_CABLES)
    netbox_cable.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=True, type="raw"),
                name=dict(required=True, type="str"),
                type=dict(
                    required=False,
                    choices=[
                        "iec-60320-c5",
                        "iec-60320-c7",
                        "iec-60320-c13",
                        "iec-60320-c15",
                        "iec-60320-c19",
                        "iec-60309-p-n-e-4h",
                        "iec-60309-p-n-e-6h",
                        "iec-60309-p-n-e-9h",
                        "iec-60309-2p-e-4h",
                        "iec-60309-2p-e-6h",
                        "iec-60309-2p-e-9h",
                        "iec-60309-3p-e-4h",
                        "iec-60309-3p-e-6h",
                        "iec-60309-3p-e-9h",
                        "iec-60309-3p-n-e-4h",
                        "iec-60309-3p-n-e-6h",
                        "iec-60309-3p-n-e-9h",
                        "nema-5-15r",
                        "nema-5-20r",
                        "nema-5-30r",
                        "nema-5-50r",
                        "nema-6-15r",
                        "nema-6-20r",
                        "nema-6-30r",
                        "nema-6-50r",
                        "nema-l5-15r",
                        "nema-l5-20r",
                        "nema-l5-30r",
                        "nema-l5-50r",
                        "nema-l6-20r",
                        "nema-l6-30r",
                        "nema-l6-50r",
                        "nema-l14-20r",
                        "nema-l14-30r",
                        "nema-l21-20r",
                        "nema-l21-30r",
                        "CS6360C",
                        "CS6364C",
                        "CS8164C",
                        "CS8264C",
                        "CS8364C",
                        "CS8464C",
                        "ita-e",
                        "ita-f",
                        "ita-g",
                        "ita-h",
                        "ita-i",
                        "ita-j",
                        "ita-k",
                        "ita-l",
                        "ita-m",
                        "ita-n",
                        "ita-o",
                        "hdot-cx",
                    ],
                    type="str",
                ),
                power_port=dict(required=False, type="raw"),
                feed_leg=dict(required=False,
                              choices=["A", "B", "C"],
                              type="str"),
                description=dict(required=False, type="str"),
                tags=dict(required=False, type="list", elements="raw"),
            ),
        ), ))

    required_if = [
        ("state", "present", ["device", "name"]),
        ("state", "absent", ["device", "name"]),
    ]

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

    netbox_power_outlet = NetboxDcimModule(module, NB_POWER_OUTLETS)
    netbox_power_outlet.run()
Пример #24
0
def main():
    """
    Main entry point for module execution
    """
    argument_spec = NETBOX_ARG_SPEC
    argument_spec.update(
        dict(
            data=dict(
                type="dict",
                required=True,
                options=dict(
                    name=dict(required=True, type="str"),
                    facility_id=dict(required=False, type="str"),
                    site=dict(required=False, type="raw"),
                    rack_group=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",
                    #        "Planned",
                    #        "Reserved",
                    #        "Available",
                    #        "Deprecated",
                    #    ],
                    # ),
                    rack_role=dict(required=False, type="raw"),
                    serial=dict(required=False, type="str"),
                    asset_tag=dict(required=False, type="str"),
                    type=dict(
                        required=False,
                        type="str",
                        choices=[
                            "2-post frame",
                            "4-post frame",
                            "4-post cabinet",
                            "Wall-mounted frame",
                            "Wall-mounted cabinet",
                        ],
                    ),
                    width=dict(
                        required=False,
                        type="int",
                        choices=[
                            10,
                            19,
                            21,
                            23,
                        ],
                    ),
                    u_height=dict(required=False, type="int"),
                    desc_units=dict(required=False, type="bool"),
                    outer_width=dict(required=False, type="int"),
                    outer_depth=dict(required=False, type="int"),
                    outer_unit=dict(
                        required=False,
                        type="str",
                        choices=[
                            "Millimeters",
                            "Inches",
                        ],
                    ),
                    comments=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"])]

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

    netbox_rack = NetboxDcimModule(module, NB_RACKS)
    netbox_rack.run()