Beispiel #1
0
def test_update_clean_tags_with_incoming_tags(netbox_api_base):

    vlan = NetboxVlanPre29(vid=100, site_name="HQ", remote_id=30)
    netbox_api_base.add(vlan)

    netbox_api_base.add(
        NetboxDevice(name="dev1",
                     site_name="HQ",
                     remote_id=32,
                     device_tag_id=12))
    netbox_api_base.add(
        NetboxDevice(name="dev2",
                     site_name="HQ",
                     remote_id=33,
                     device_tag_id=13))

    api = pynetbox.api(url="http://mock", token="1234567890")
    data = yaml.safe_load(open(f"{ROOT}/{FIXTURE_28}/vlan_101_tags_01.json"))
    pnb = pynetbox.core.response.Record(values=data, api=api, endpoint=1)

    params = vlan.translate_attrs_for_netbox({
        "name":
        "VOICE",
        "associated_devices": ["dev1", "dev2"]
    })
    clean_params = vlan.update_clean_tags(nb_params=params, obj=pnb)

    assert "tags" in clean_params
    assert sorted(clean_params["tags"]) == [
        "device=dev1", "device=dev2", "device=devA", "device=devB",
        "notadevice"
    ]
Beispiel #2
0
def test_vlan_create_from_pynetbox_with_tags(netbox_api_base):

    api = pynetbox.api(url="http://mock", token="1234567890")

    data = yaml.safe_load(open(f"{ROOT}/{FIXTURE_28}/vlan_101_tags_01.json"))
    pnb = pynetbox.core.response.Record(values=data, api=api, endpoint=1)

    netbox_api_base.add(
        NetboxDevice(name="devA", site_name="nyc", remote_id=30))

    item = NetboxVlanPre29.create_from_pynetbox(diffsync=netbox_api_base,
                                                obj=pnb,
                                                site_name="nyc")
    assert isinstance(item, NetboxVlanPre29) is True
    assert item.remote_id == 1
    assert item.vid == 101
    assert item.associated_devices == ["devA"]

    # Try again with one additional device in the inventory
    netbox_api_base.add(
        NetboxDevice(name="devB", site_name="nyc", remote_id=31))
    item = NetboxVlanPre29.create_from_pynetbox(diffsync=netbox_api_base,
                                                obj=pnb,
                                                site_name="nyc")
    assert isinstance(item, NetboxVlanPre29) is True
    assert item.remote_id == 1
    assert item.vid == 101
    assert item.associated_devices == ["devA", "devB"]
Beispiel #3
0
def test_translate_attrs_for_netbox_with_attrs(netbox_api_base):

    vlan = NetboxVlan(vid=100, site_name="HQ", remote_id=30)
    netbox_api_base.add(vlan)

    netbox_api_base.add(
        NetboxDevice(name="dev1",
                     site_name="HQ",
                     remote_id=32,
                     device_tag_id=12))
    netbox_api_base.add(
        NetboxDevice(name="dev2",
                     site_name="HQ",
                     remote_id=33,
                     device_tag_id=13))
    params = vlan.translate_attrs_for_netbox({
        "name":
        "VOICE",
        "associated_devices": ["dev1", "dev2"]
    })

    assert "name" in params
    assert params["name"] == "VOICE"
    assert "site" in params
    assert params["site"] == 10
    assert "tags" in params
    assert sorted(params["tags"]) == [12, 13]
def test_get_device_tag_id(netbox_api_base):

    device = NetboxDevice(name="dev1",
                          site_name="HQ",
                          remote_id=32,
                          device_tag_id=12)
    netbox_api_base.add(device)
    assert device.get_device_tag_id() == 12
def test_get_device_tag_id_get_tag(requests_mock, netbox_api_base):

    data = yaml.safe_load(
        open(f"{ROOT}/../fixtures/netbox_29/tag_01_list.json"))
    requests_mock.get("http://mock/api/extras/tags/?name=device%3Ddev1",
                      json=data,
                      status_code=200)

    device = NetboxDevice(name="dev1", site_name="HQ", remote_id=32)
    netbox_api_base.add(device)

    assert device.get_device_tag_id() == 8
def test_translate_attrs_for_netbox_device_no_remote_id(netbox_api_base):

    netbox_api_base.add(NetboxDevice(name="HQ-CORE-SW01", site_name="nyc"))
    intf = NetboxInterface(device_name="HQ-CORE-SW01", name="ge-0/0/0")
    netbox_api_base.add(intf)

    with pytest.raises(NetboxObjectNotValid):
        intf.translate_attrs_for_netbox({})
Beispiel #7
0
def netbox_api_base():
    """Provide an instance of NetBoxAPIAdapter with pynetbox initiliazed."""
    diffsync = NetBoxAPIAdapter(nornir=None, settings={})
    diffsync.netbox = pynetbox.api(url="http://mock", token="1234567890")

    diffsync.add(NetboxSite(name="HQ", remote_id=10))
    diffsync.add(
        NetboxDevice(name="HQ-CORE-SW02", site_name="HQ", remote_id=29))
    diffsync.add(
        NetboxInterface(name="TenGigabitEthernet1/0/1",
                        device_name="HQ-CORE-SW02",
                        remote_id=302))
    diffsync.add(NetboxVlan(vid=111, site_name="HQ", remote_id=23))

    return diffsync