Browse Source

make huawei ports toggleable

devel
Dmitry Novikov 7 years ago
parent
commit
d5499cefc4
  1. 5
      devapp/base_intr.py
  2. 17
      devapp/dev_types.py
  3. 4
      devapp/templates/devapp/custom_dev_page/generic_switch.html

5
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

17
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

4
devapp/templates/devapp/custom_dev_page/generic_switch.html

@ -42,11 +42,11 @@
</a>
{% if port.writable %}
{% if port.st %}
<a href="{% url 'devapp:port_toggle' dev.group.pk|default:0 dev.id port.num 0 %}" class="btn btn-xs btn-danger" title="{% trans 'Disable port' %}">
<a href="{% url 'devapp:port_toggle' dev.group.pk|default:0 dev.id port.snmp_num 0 %}" class="btn btn-xs btn-danger" title="{% trans 'Disable port' %}">
<span class="glyphicon glyphicon-off"></span>
</a>
{% else %}
<a href="{% url 'devapp:port_toggle' dev.group.pk|default:0 dev.id port.num 1 %}" class="btn btn-xs btn-success" title="{% trans 'Enable port' %}">
<a href="{% url 'devapp:port_toggle' dev.group.pk|default:0 dev.id port.snmp_num 1 %}" class="btn btn-xs btn-success" title="{% trans 'Enable port' %}">
<span class="glyphicon glyphicon-ok"></span>
</a>
{% endif %}

Loading…
Cancel
Save