Beispiel #1
0
def _netbox_create_device(nb, nb_endpoint, data):
    if data.get("status"):
        data["status"] = DEVICE_STATUS.get(data["status"].lower(), 0)
    if data.get("face"):
        data["face"] = FACE_ID.get(data["face"].lower(), 0)
    data = find_ids(nb, data)
    return nb_endpoint.create(data)
Beispiel #2
0
def _check_and_adapt_data(nb, data):
    data = find_ids(nb, data)

    if data.get("form_factor"):
        data["form_factor"] = INTF_FORM_FACTOR.get(data["form_factor"].lower())
    if data.get("mode"):
        data["mode"] = INTF_MODE.get(data["mode"].lower())

    return data
Beispiel #3
0
def netbox_create_ip_address(nb, nb_endpoint, data):
    result = []
    if data.get('vrf'):
        norm_data = normalize_data(data)
        if norm_data.get("status"):
            norm_data["status"] = IP_ADDRESS_STATUS.get(
                norm_data["status"].lower())
        if norm_data.get("role"):
            norm_data["role"] = IP_ADDRESS_ROLE.get(norm_data["role"].lower())
        data = find_ids(nb, norm_data)
        if data.get('failed'):
            result.append(data)
            return result

        if not nb_endpoint.get(address=data["address"], vrf_id=data['vrf']):
            try:
                return nb_endpoint.create([data])
            except pynetbox.RequestError as e:
                return json.loads(e.error)
        else:
            result.append(
                {'failed': '%s already exists in Netbox' % (data["address"])})
    else:
        if not nb_endpoint.get(address=data["address"]):
            norm_data = normalize_data(data)
            if norm_data.get("status"):
                norm_data["status"] = IP_ADDRESS_STATUS.get(
                    norm_data["status"].lower())
            if norm_data.get("role"):
                norm_data["role"] = IP_ADDRESS_ROLE.get(
                    norm_data["role"].lower())
            data = find_ids(nb, norm_data)

            try:
                return nb_endpoint.create([data])
            except pynetbox.RequestError as e:
                return json.loads(e.error)
        else:
            result.append(
                {'failed': '%s already exists in Netbox' % (data["address"])})

    return result
Beispiel #4
0
def _check_and_adapt_data(nb, data):
    data = find_ids(nb, data)

    if data.get("vrf") and not isinstance(data["vrf"], int):
        raise ValueError("%s does not exist - Please create VRF" %
                         (data["vrf"]))

    if data.get("status"):
        data["status"] = PREFIX_STATUS.get(data["status"].lower())

    return data
def netbox_create_device(nb, nb_endpoint, data):
    norm_data = normalize_data(data)
    if norm_data.get("status"):
        norm_data["status"] = DEVICE_STATUS.get(norm_data["status"].lower(), 0)
    if norm_data.get("face"):
        norm_data["face"] = FACE_ID.get(norm_data["face"].lower(), 0)
    data = find_ids(nb, norm_data)
    try:
        return nb_endpoint.create([norm_data])
    except pynetbox.RequestError as e:
        return json.loads(e.error)
Beispiel #6
0
def netbox_delete_ip_address(nb, nb_endpoint, data):
    norm_data = normalize_data(data)
    result = []
    if data.get('vrf'):
        data = find_ids(nb, norm_data)
        endpoint = nb_endpoint.get(address=norm_data["address"], vrf_id=data['vrf'])
    else:
        endpoint = nb_endpoint.get(address=norm_data["address"])

    try:
        if endpoint.delete():
            result.append({'success': '%s deleted from Netbox' % (norm_data["address"])})
    except AttributeError:
        result.append({'failed': '%s not found' % (norm_data["address"])})
    return result
Beispiel #7
0
def _check_and_adapt_data(nb, data):
    data = find_ids(nb, data)

    if data.get("status"):
        data["status"] = SITE_STATUS.get(data["status"].lower())

    if "-" in data["name"]:
        site_slug = data["name"].replace(" ", "").lower()
    elif " " in data["name"]:
        site_slug = data["name"].replace(" ", "-").lower()
    else:
        site_slug = data["name"].lower()

    data["slug"] = site_slug

    return data
def _find_ids(nb, data):
    if data.get("status"):
        data["status"] = DEVICE_STATUS.get(data["status"].lower())
    if data.get("face"):
        data["face"] = FACE_ID.get(data["face"].lower())
    return find_ids(nb, data)