diff --git a/sa/profiles/Huawei/MA5600T/get_capabilities.py b/sa/profiles/Huawei/MA5600T/get_capabilities.py index ea9818d2e54bb94c025df16cf53a7668d604a95d..b4dda58fc8679a7d683edda833a441eaa39bd824 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_lldp_cli(self): + """ + Check box has LLDP 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 0000000000000000000000000000000000000000..385044cab79fda6c1415758a486425e5935001d2 --- /dev/null +++ b/sa/profiles/Huawei/MA5600T/get_lldp_neighbors.py @@ -0,0 +1,25 @@ +# --------------------------------------------------------------------- +# 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 13bc44f9917e8dcaf9709c8a6a94d8aba03bbc6a..b41595093189c8e696e84b399c3bb9433c3b6342 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)