diff --git a/sa/profiles/Huawei/MA5600T/get_capabilities.py b/sa/profiles/Huawei/MA5600T/get_capabilities.py index 37aa079f4786d7dbf1c4b7dccba9d2b1577dd4b3..5a4724dcccc006e83d09c48bba67ca1b7b9a0bbe 100644 --- a/sa/profiles/Huawei/MA5600T/get_capabilities.py +++ b/sa/profiles/Huawei/MA5600T/get_capabilities.py @@ -11,7 +11,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 @@ -22,6 +22,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): """ @@ -39,12 +41,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 d170473e2d1057b860bea3830f3da5c0cb806fe8..69549c454f6ea680c5c2acf56a20fe7c54a859df 100644 --- a/sa/profiles/Huawei/MA5600T/profile.py +++ b/sa/profiles/Huawei/MA5600T/profile.py @@ -25,6 +25,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"), @@ -62,7 +63,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)