diff --git a/devapp/base_intr.py b/devapp/base_intr.py
index c867cfa..085383d 100644
--- a/devapp/base_intr.py
+++ b/devapp/base_intr.py
@@ -89,8 +89,11 @@ class DevBase(object, metaclass=ABCMeta):
class BasePort(object, metaclass=ABCMeta):
- def __init__(self, num, name, status, mac, speed, writable=False):
+ __slots__ = 'num', 'snmp_num', 'nm', 'st', '_mac', 'sp', 'writable'
+
+ def __init__(self, num, name, status, mac, speed, snmp_num=None, writable=False):
self.num = int(num)
+ self.snmp_num = int(num) if snmp_num is None else int(snmp_num)
self.nm = name
self.st = status
self._mac = mac
diff --git a/devapp/dev_types.py b/devapp/dev_types.py
index 7eaeafa..f2f8fdc 100644
--- a/devapp/dev_types.py
+++ b/devapp/dev_types.py
@@ -43,8 +43,8 @@ def plain_ip_device_mon_template(device) -> Optional[AnyStr]:
class DLinkPort(BasePort):
- def __init__(self, num, name, status, mac, speed, snmp_worker):
- BasePort.__init__(self, num, name, status, mac, speed, writable=True)
+ def __init__(self, snmp_worker, *args, **kwargs):
+ BasePort.__init__(self, writable=True, *args, **kwargs)
if not issubclass(snmp_worker.__class__, SNMPBaseWorker):
raise TypeError
self.snmp_worker = snmp_worker
@@ -117,8 +117,8 @@ class DLinkDevice(DevBase, SNMPBaseWorker):
class ONUdev(BasePort):
- def __init__(self, num, name, status, mac, speed, signal, snmp_worker):
- super(ONUdev, self).__init__(num, name, status, mac, speed)
+ def __init__(self, signal, snmp_worker, *args, **kwargs):
+ super(ONUdev, self).__init__(*args, **kwargs)
if not issubclass(snmp_worker.__class__, SNMPBaseWorker):
raise TypeError
self.snmp_worker = snmp_worker
@@ -565,15 +565,18 @@ class HuaweiSwitch(EltexSwitch):
for i, n in enumerate(interfaces_ids):
n = int(n)
speed = self.get_item('.1.3.6.1.2.1.2.2.1.5.%d' % n)
- # oper_status = safe_int(self.get_item('.1.3.6.1.2.1.2.2.1.7.%d' % n))
- oper_status = True # if oper_status == 1 else False
+ oper_status = safe_int(self.get_item('.1.3.6.1.2.1.2.2.1.7.%d' % n))
+ oper_status = True if oper_status == 1 else False
link_status = safe_int(self.get_item('.1.3.6.1.2.1.2.2.1.8.%d' % n))
link_status = True if link_status == 1 else False
- yield EltexPort(
+ ep = EltexPort(
self,
num=i+1,
+ snmp_num=n,
name=self.get_item('.1.3.6.1.2.1.2.2.1.2.%d' % n), # name
status=oper_status, # status
mac='', # self.get_item('.1.3.6.1.2.1.2.2.1.6.%d' % n), # mac
speed=0 if not link_status else safe_int(speed) # speed
)
+ ep.writable = True
+ yield ep
diff --git a/devapp/templates/devapp/custom_dev_page/generic_switch.html b/devapp/templates/devapp/custom_dev_page/generic_switch.html
index f8d1765..918ae7c 100644
--- a/devapp/templates/devapp/custom_dev_page/generic_switch.html
+++ b/devapp/templates/devapp/custom_dev_page/generic_switch.html
@@ -42,11 +42,11 @@
{% if port.writable %}
{% if port.st %}
-
+
{% else %}
-
+
{% endif %}