From 01a2d0fdddf500f2578e955b81cceea7d2ead2a1 Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Tue, 3 Sep 2019 14:10:25 +0000 Subject: [PATCH] populated other_end_interfacec_name if it's empty; updated tests inline with other update --- inventory_provider/db/opsdb.py | 14 ++++++++++++++ test/test_opsdb.py | 32 +++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/inventory_provider/db/opsdb.py b/inventory_provider/db/opsdb.py index a8a094c5..ee0aabc8 100644 --- a/inventory_provider/db/opsdb.py +++ b/inventory_provider/db/opsdb.py @@ -176,6 +176,20 @@ def _juniper_field_update(record): record["interface_name"] += separator + str(record["port"]) if record["logical_unit"] is not None and record["logical_unit"] != "": record["interface_name"] += "." + str(record["logical_unit"]) + + if not record["other_end_interface_name"]: + record["other_end_interface_name"] = record["other_end_card_id"] + if record["other_end_port"] is not None \ + and record["other_end_port"] != "": + separator = "" + if "-" in record["other_end_interface_name"]: + separator = "/" + record["other_end_interface_name"] += \ + separator + str(record["other_end_port"]) + if record["other_end_logical_unit"] is not None \ + and record["other_end_logical_unit"] != "": + record["other_end_interface_name"] += \ + "." + str(record["other_end_logical_unit"]) return record diff --git a/test/test_opsdb.py b/test/test_opsdb.py index 2b0a299b..cf46fd99 100644 --- a/test/test_opsdb.py +++ b/test/test_opsdb.py @@ -52,53 +52,83 @@ def test_infinera_field_update(): def test_juniper_field_update(): i = { "interface_name": "xe-1/2", - "logical_unit": None + "logical_unit": None, + "other_end_interface_name": "xe-3/2", + "other_end_logical_unit": None } r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2" + assert r["other_end_interface_name"] == "xe-3/2" i["interface_name"] = "xe-1/2" i["logical_unit"] = 101 + i["other_end_interface_name"] = "xe-3/2" + i["other_end_logical_unit"] = 301 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2.101" + assert r["other_end_interface_name"] == "xe-3/2.301" i["interface_name"] = "xe-1/2" i["logical_unit"] = 0 + i["other_end_interface_name"] = "xe-3/2" + i["other_end_logical_unit"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2.0" + assert r["other_end_interface_name"] == "xe-3/2.0" i["interface_name"] = "xe-1/2" i["logical_unit"] = None i["port"] = 0 + i["other_end_interface_name"] = "xe-3/2" + i["other_end_logical_unit"] = None + i["other_end_port"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-1/2" + assert r["other_end_interface_name"] == "xe-3/2" i["interface_name"] = None i["card_id"] = "xe-2/0" i["logical_unit"] = None i["port"] = None + i["other_end_interface_name"] = None + i["other_end_card_id"] = "xe-3/0" + i["other_end_logical_unit"] = None + i["other_end_port"] = None r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0" + assert r["other_end_interface_name"] == "xe-3/0" i["interface_name"] = None i["port"] = "0" + i["other_end_interface_name"] = None + i["other_end_port"] = "0" r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0" + assert r["other_end_interface_name"] == "xe-3/0/0" i["interface_name"] = None i["port"] = 0 + i["other_end_interface_name"] = None + i["other_end_port"] = 0 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0" + assert r["other_end_interface_name"] == "xe-3/0/0" i["interface_name"] = None i["logical_unit"] = "123" + i["other_end_interface_name"] = None + i["other_end_logical_unit"] = "323" r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0.123" + assert r["other_end_interface_name"] == "xe-3/0/0.323" i["interface_name"] = None i["logical_unit"] = 123 + i["other_end_interface_name"] = None + i["other_end_logical_unit"] = 323 r = inventory_provider.db.opsdb._juniper_field_update(i) assert r["interface_name"] == "xe-2/0/0.123" + assert r["other_end_interface_name"] == "xe-3/0/0.323" def test_coriant_update_fields(): -- GitLab