From ddfbd1efc0d4d6b97a7b150df2dcf63139698c61 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 14 May 2020 14:18:43 +0500 Subject: [PATCH 1/2] Huawei.MA5600T. Add get_lldp_neighbors script. --- .../Huawei/MA5600T/get_capabilities.py | 14 ++++++++-- .../Huawei/MA5600T/get_lldp_neighbors.py | 26 +++++++++++++++++++ sa/profiles/Huawei/MA5600T/profile.py | 4 ++- 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py diff --git a/sa/profiles/Huawei/MA5600T/get_capabilities.py b/sa/profiles/Huawei/MA5600T/get_capabilities.py index ea9818d2e5..c07c1d944d 100644 --- a/sa/profiles/Huawei/MA5600T/get_capabilities.py +++ b/sa/profiles/Huawei/MA5600T/get_capabilities.py @@ -10,7 +10,7 @@ import re # NOC modules from noc.sa.profiles.Generic.get_capabilities import Script as BaseScript -from noc.sa.profiles.Generic.get_capabilities import false_on_cli_error +from noc.sa.profiles.Generic.get_capabilities import false_on_cli_error, false_on_snmp_error from noc.core.mib import mib @@ -21,6 +21,8 @@ class Script(BaseScript): rx_lacp_id = re.compile(r"^\s+(?P\d+)\s+\d+", re.MULTILINE) + rx_lldp_enable = re.compile(r"LLDP\sstatus\s+:\s*enabled") + @false_on_cli_error def has_stp_cli(self): """ @@ -38,12 +40,20 @@ class Script(BaseScript): cmd = self.cli("display lacp link-aggregation summary") return self.rx_lacp_id.search(cmd) is not None + @false_on_cli_error + def has_lacp_cli(self): + """ + Check box has LACP enabled + """ + cmd = self.cli("display lldp local") + return self.rx_lldp_enable.search(cmd) is not None + @false_on_cli_error def has_olt_cli(self): cmd = self.cli("display ont global-config") return bool(cmd) - @false_on_cli_error + @false_on_snmp_error def has_olt_snmp(self): cmd = self.snmp.get(mib["HUAWEI-XPON-MIB::hwGponDeviceDbaAssignmentMode", 0]) return bool(cmd) diff --git a/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py b/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py new file mode 100644 index 0000000000..559fe24558 --- /dev/null +++ b/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py @@ -0,0 +1,26 @@ +# --------------------------------------------------------------------- +# Huawei.MA5600T.get_lldp_neighbors +# --------------------------------------------------------------------- +# Copyright (C) 2007-2019 The NOC Project +# See LICENSE for details +# --------------------------------------------------------------------- + +# Python modules +import re + +# NOC modules +from noc.sa.profiles.Generic.get_lldp_neighbors import Script as BaseScript +from noc.sa.interfaces.igetlldpneighbors import IGetLLDPNeighbors + + +class Script(BaseScript): + name = "Huawei.MA5600T.get_lldp_neighbors" + interface = IGetLLDPNeighbors + + always_prefer = "S" + + rx_iface_sep = re.compile(r"^(\S+)\s+has\s+\d+\s+neighbors?", re.MULTILINE) + + def execute_cli(self, **kwargs): + v = self.cli("display lldp neighbor") + diff --git a/sa/profiles/Huawei/MA5600T/profile.py b/sa/profiles/Huawei/MA5600T/profile.py index 13bc44f991..b415950931 100644 --- a/sa/profiles/Huawei/MA5600T/profile.py +++ b/sa/profiles/Huawei/MA5600T/profile.py @@ -24,6 +24,7 @@ class Profile(BaseProfile): (r"\[to\]\:", "\n"), (r"\{ \\|vpi\ \}\:", "\n"), (r"\{ \\|ont\ \}\:", "\n"), + (r"\{ \|port\ \}:", "\n"), (r"Are you sure to modify system time?", "n\n"), (r"Are you sure to log out?", "y\n"), (r"\{ \|configuration\|data \}", "\n"), @@ -61,7 +62,8 @@ class Profile(BaseProfile): matchers = { "is_gpon_uplink": {"platform": {"$in": ["MA5626G"]}}, "is_dslam": {"platform": {"$in": ["MA5600"]}}, - "is_ua5k": {"platform": {"$in": ["UA5000"]}}, + "is_ua5k": {"platform": {"$in": ["UA5000", "UA5000IPMB", "UA5000PVM"]}}, + "is_lldp_support": {"version": {"$gte": "V800R018C10"}}, } rx_slots = re.compile(r"^\s*\d+", re.MULTILINE) -- GitLab From 82c96ea6cd9c4f0418dbbcc3d34a7bb68c47a019 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 14 May 2020 14:26:00 +0500 Subject: [PATCH 2/2] Fix flake. --- sa/profiles/Huawei/MA5600T/get_capabilities.py | 4 ++-- sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/sa/profiles/Huawei/MA5600T/get_capabilities.py b/sa/profiles/Huawei/MA5600T/get_capabilities.py index c07c1d944d..b4dda58fc8 100644 --- a/sa/profiles/Huawei/MA5600T/get_capabilities.py +++ b/sa/profiles/Huawei/MA5600T/get_capabilities.py @@ -41,9 +41,9 @@ class Script(BaseScript): return self.rx_lacp_id.search(cmd) is not None @false_on_cli_error - def has_lacp_cli(self): + def has_lldp_cli(self): """ - Check box has LACP enabled + Check box has LLDP enabled """ cmd = self.cli("display lldp local") return self.rx_lldp_enable.search(cmd) is not None diff --git a/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py b/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py index 559fe24558..385044cab7 100644 --- a/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py +++ b/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py @@ -21,6 +21,5 @@ class Script(BaseScript): rx_iface_sep = re.compile(r"^(\S+)\s+has\s+\d+\s+neighbors?", re.MULTILINE) - def execute_cli(self, **kwargs): - v = self.cli("display lldp neighbor") - + # def execute_cli(self, **kwargs): + # v = self.cli("display lldp neighbor") -- GitLab