|
|
|
@ -1,7 +1,6 @@ |
|
|
|
import os |
|
|
|
import re |
|
|
|
from typing import AnyStr, Iterable, Optional, Dict |
|
|
|
from datetime import timedelta |
|
|
|
from easysnmp import EasySNMPTimeoutError |
|
|
|
from pexpect import TIMEOUT |
|
|
|
from transliterate import translit |
|
|
|
@ -106,20 +105,22 @@ class DLinkDevice(DevBase, SNMPBaseWorker): |
|
|
|
)), None |
|
|
|
|
|
|
|
def get_ports(self) -> ListOrError: |
|
|
|
interfaces_count = safe_int(self.get_item('.1.3.6.1.2.1.2.1.0')) |
|
|
|
nams = tuple(self.get_list('.1.3.6.1.4.1.171.10.134.2.1.1.100.2.1.3')) |
|
|
|
stats = tuple(self.get_list('.1.3.6.1.2.1.2.2.1.7')) |
|
|
|
macs = tuple(self.get_list('.1.3.6.1.2.1.2.2.1.6')) |
|
|
|
speeds = tuple(self.get_list('.1.3.6.1.2.1.2.2.1.5')) |
|
|
|
ints = self.get_list('.1.3.6.1.2.1.10.7.2.1.1') |
|
|
|
nams = self.get_list('.1.3.6.1.2.1.2.2.1.2') |
|
|
|
stats = self.get_list('.1.3.6.1.2.1.2.2.1.7') |
|
|
|
macs = self.get_list('.1.3.6.1.2.1.2.2.1.6') |
|
|
|
speeds = self.get_list('.1.3.6.1.2.1.2.2.1.5') |
|
|
|
uptimes = self.get_list('.1.3.6.1.2.1.2.2.1.9') |
|
|
|
try: |
|
|
|
for n in range(interfaces_count): |
|
|
|
status = True if int(stats[n]) == 1 else False |
|
|
|
for num in ints: |
|
|
|
status = True if int(next(stats)) == 1 else False |
|
|
|
yield DLinkPort( |
|
|
|
num=n + 1, |
|
|
|
name=nams[n] if len(nams) > 0 else '', |
|
|
|
num=num, |
|
|
|
name=next(nams), |
|
|
|
status=status, |
|
|
|
mac=macs[n] if len(macs) > 0 else _('does not fetch the mac'), |
|
|
|
speed=int(speeds[n]) if len(speeds) > 0 else 0, |
|
|
|
mac=next(macs), |
|
|
|
speed=int(next(speeds)), |
|
|
|
uptime=next(uptimes), |
|
|
|
snmp_worker=self) |
|
|
|
except IndexError: |
|
|
|
return DeviceImplementationError('Dlink port index error') |
|
|
|
@ -127,9 +128,9 @@ class DLinkDevice(DevBase, SNMPBaseWorker): |
|
|
|
def get_device_name(self): |
|
|
|
return self.get_item('.1.3.6.1.2.1.1.1.0') |
|
|
|
|
|
|
|
def uptime(self) -> timedelta: |
|
|
|
def uptime(self): |
|
|
|
uptimestamp = safe_int(self.get_item('.1.3.6.1.2.1.1.8.0')) |
|
|
|
tm = RuTimedelta(timedelta(seconds=uptimestamp / 100)) or RuTimedelta(timedelta()) |
|
|
|
tm = RuTimedelta(seconds=uptimestamp / 100) |
|
|
|
return tm |
|
|
|
|
|
|
|
def get_template_name(self): |
|
|
|
@ -203,7 +204,7 @@ class OLTDevice(DevBase, SNMPBaseWorker): |
|
|
|
|
|
|
|
def uptime(self): |
|
|
|
up_timestamp = safe_int(self.get_item('.1.3.6.1.2.1.1.9.1.4.1')) |
|
|
|
tm = RuTimedelta(timedelta(seconds=up_timestamp / 100)) or RuTimedelta(timedelta()) |
|
|
|
tm = RuTimedelta(seconds=up_timestamp / 100) |
|
|
|
return tm |
|
|
|
|
|
|
|
def get_template_name(self): |
|
|
|
@ -358,7 +359,7 @@ class EltexSwitch(DLinkDevice): |
|
|
|
|
|
|
|
def uptime(self): |
|
|
|
uptimestamp = safe_int(self.get_item('.1.3.6.1.2.1.1.3.0')) |
|
|
|
tm = RuTimedelta(timedelta(seconds=uptimestamp / 100)) or RuTimedelta(timedelta()) |
|
|
|
tm = RuTimedelta(seconds=uptimestamp / 100) |
|
|
|
return tm |
|
|
|
|
|
|
|
def monitoring_template(self, *args, **kwargs) -> Optional[str]: |
|
|
|
@ -429,7 +430,7 @@ class Olt_ZTE_C320(OLTDevice): |
|
|
|
|
|
|
|
def uptime(self): |
|
|
|
up_timestamp = safe_int(self.get_item('.1.3.6.1.2.1.1.3.0')) |
|
|
|
tm = RuTimedelta(timedelta(seconds=up_timestamp / 100)) or RuTimedelta(timedelta()) |
|
|
|
tm = RuTimedelta(seconds=up_timestamp / 100) |
|
|
|
return tm |
|
|
|
|
|
|
|
def get_long_description(self): |
|
|
|
|