Skip to content

Commit

Permalink
Merge pull request #1 from netty-community/feat-vendors
Browse files Browse the repository at this point in the history
feat: support more vendors
  • Loading branch information
wangxin688 authored Aug 6, 2024
2 parents 067a267 + e07eaad commit a431ac8
Show file tree
Hide file tree
Showing 5 changed files with 536 additions and 14 deletions.
57 changes: 43 additions & 14 deletions netty_snmp/device_type/device_types.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,46 @@
from enum import StrEnum

from netty_snmp._types import DeviceType
from netty_snmp.device_type.manufactures.a10 import A10_DEVICE_TYPES
from netty_snmp.device_type.manufactures.arista import ARISTA_DEVICE_TYPES
from netty_snmp.device_type.manufactures.aruba import ARUBA_DEVICE_TYPES
from netty_snmp.device_type.manufactures.cisco import CISCO_DEVICE_TYPES
from netty_snmp.device_type.manufactures.extreme import EXTREME_DEVICE_TYPES
from netty_snmp.device_type.manufactures.fortinet import FORTINET_DEVICE_TYPES
from netty_snmp.device_type.manufactures.h3c import H3C_DEVICE_TYPES
from netty_snmp.device_type.manufactures.huawei import HUAWEI_DEVICE_TYPES
from netty_snmp.device_type.manufactures.juniper import JUNIPER_DEVICE_TYPES
from netty_snmp.device_type.manufactures.mikrotik import MIKROTIK_DEVICE_TYPES
from netty_snmp.device_type.manufactures.netgear import NETGEAR_DEVICE_TYPES
from netty_snmp.device_type.manufactures.paloalto import PALOALTO_DEVICE_TYPES
from netty_snmp.device_type.manufactures.ruckus import RUCKUS_DEVICE_TYPES
from netty_snmp.device_type.manufactures.ruijie import RUIJIE_DEVICE_TYPES
from netty_snmp.device_type.manufactures.tp_link import TP_LINK_DEVICE_TYPES
from netty_snmp.device_type.manufactures.zte import ZTE_DEVICE_TYPES
from netty_snmp.factory.consts import UNKNOWN_MODEL, UNKNOWN_PLATFORM


class Manufacturer(StrEnum):
Cisco = "Cisco"
Huawei = "Huawei"
Aruba = "Aruba"
Arista = "Arista"
RuiJie = "Ruijie"
H3C = "H3C"
PaloAlto = "Palo Alto"
FortiNet = "FortiNet"
Juniper = "Juniper"
"""default use iana registered enterprise organization name"""

Cisco = "ciscoSystems"
Huawei = "HUAWEI Technology Co.,Ltd"
Aruba = "Aruba, a Hewlett Packard Enterprise company"
Arista = "Arista Networks"
RuiJie = "Ruijie Networks"
H3C = "New H3C Technologies Co., Ltd"
PaloAlto = "PALO ALTO NETWORKS"
FortiNet = "Fortinet, Inc."
Juniper = "Juniper Networks, Inc."
Netgear = "Netgear"
TPLink = "TP-Link"
Ruckus = "Ruckus"
CheckPoint = "CheckPoint"
Sangfor = "Sangfor"
TPLink = "TP-Link Corporation Limited."
Ruckus = "Ruckus Wireless, Inc."
CheckPoint = "Check Point Software Technologies Ltd"
Sangfor = "Sangfor Technologies Co.,Ltd."
ZTE = "Zhongxing Telecom Co.,ltd. (abbr. ZTE)"
A10 = "A10 Networks"
Extreme = "Extreme Networks"
MikroTik = "MikroTik"


class Platform(StrEnum):
Expand All @@ -50,6 +63,11 @@ class Platform(StrEnum):
TPLink = "tplink_jetstream"
Ruckus = "ruckus_fastiron"
Sangfor = "Unknown"
ZTE = "zte_zxros"
A10 = "a10"
Extreme = "extreme"
MikroTikRouterOS = "mikrotik_routers"
MikroTikSwitchOS = "mikrotik_switchos"


EnterpriseIdManufacturer: dict[str, Manufacturer] = {
Expand All @@ -67,6 +85,10 @@ class Platform(StrEnum):
"25053": Manufacturer.Ruckus,
"2620": Manufacturer.CheckPoint,
"30547": Manufacturer.Sangfor,
"3902": Manufacturer.ZTE,
"22610": Manufacturer.A10,
"1916": Manufacturer.Extreme,
"14988": Manufacturer.MikroTik,
}


Expand All @@ -80,6 +102,13 @@ class Platform(StrEnum):
Manufacturer.PaloAlto: PALOALTO_DEVICE_TYPES,
Manufacturer.FortiNet: FORTINET_DEVICE_TYPES,
Manufacturer.Juniper: JUNIPER_DEVICE_TYPES,
Manufacturer.A10: A10_DEVICE_TYPES,
Manufacturer.Ruckus: RUCKUS_DEVICE_TYPES,
Manufacturer.TPLink: TP_LINK_DEVICE_TYPES,
Manufacturer.Netgear: NETGEAR_DEVICE_TYPES,
Manufacturer.ZTE: ZTE_DEVICE_TYPES,
Manufacturer.MikroTik: MIKROTIK_DEVICE_TYPES,
Manufacturer.Extreme: EXTREME_DEVICE_TYPES,
}

ManufacturerDefaultPlatform = {
Expand Down Expand Up @@ -143,7 +172,7 @@ def get_device_type(sys_object_id: str) -> DeviceType | None:


def strings_to_dict(strings: str, manufacturer: Manufacturer, platform: Platform) -> dict:
# basic sysbojectids data source:
# basic sysObjectIds data source:
# 1. https://bestmonitoringtools.com/identify-devices-with-snmp-system-oid-sysobjectid-database/
# 2.
result = {}
Expand Down
42 changes: 42 additions & 0 deletions netty_snmp/device_type/manufactures/a10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from netty_snmp._types import DeviceType

A10_DEVICE_TYPES: dict[str, "DeviceType"] = {
"1.3.6.1.4.1.22610.1.3.1": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX2100"},
"1.3.6.1.4.1.22610.1.3.10": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3000"},
"1.3.6.1.4.1.22610.1.3.11": {"manufacturer": "A10 Networks", "platform": "a10", "model": "HITACHIBLADESERVER"},
"1.3.6.1.4.1.22610.1.3.12": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX5100"},
"1.3.6.1.4.1.22610.1.3.13": {"manufacturer": "A10 Networks", "platform": "a10", "model": "SOFTAX"},
"1.3.6.1.4.1.22610.1.3.14": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX 3030 ADC"},
"1.3.6.1.4.1.22610.1.3.15": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX 1030"},
"1.3.6.1.4.1.22610.1.3.16": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3200-12"},
"1.3.6.1.4.1.22610.1.3.17": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3400"},
"1.3.6.1.4.1.22610.1.3.18": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3530"},
"1.3.6.1.4.1.22610.1.3.19": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX5630"},
"1.3.6.1.4.1.22610.1.3.2": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3100"},
"1.3.6.1.4.1.22610.1.3.20": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH6430"},
"1.3.6.1.4.1.22610.1.3.21": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH5430"},
"1.3.6.1.4.1.22610.1.3.22": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER 3030S"},
"1.3.6.1.4.1.22610.1.3.23": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 1030S"},
"1.3.6.1.4.1.22610.1.3.24": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 930"},
"1.3.6.1.4.1.22610.1.3.25": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH4430"},
"1.3.6.1.4.1.22610.1.3.26": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH5330"},
"1.3.6.1.4.1.22610.1.3.27": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 4430S"},
"1.3.6.1.4.1.22610.1.3.28": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH5630"},
"1.3.6.1.4.1.22610.1.3.29": {"manufacturer": "A10 Networks", "platform": "a10", "model": "TH6630"},
"1.3.6.1.4.1.22610.1.3.3": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX3200"},
"1.3.6.1.4.1.22610.1.3.30": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 3430"},
"1.3.6.1.4.1.22610.1.3.32": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 4440S"},
"1.3.6.1.4.1.22610.1.3.34": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 1040S"},
"1.3.6.1.4.1.22610.1.3.35": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 3040S"},
"1.3.6.1.4.1.22610.1.3.4": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX2200"},
"1.3.6.1.4.1.22610.1.3.44": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 5430S"},
"1.3.6.1.4.1.22610.1.3.5": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX2000"},
"1.3.6.1.4.1.22610.1.3.51": {"manufacturer": "A10 Networks", "platform": "a10", "model": "THUNDER SERIES 3350S"},
"1.3.6.1.4.1.22610.1.3.6": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX1000"},
"1.3.6.1.4.1.22610.1.3.7": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX5200"},
"1.3.6.1.4.1.22610.1.3.8": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX2500"},
"1.3.6.1.4.1.22610.1.3.9": {"manufacturer": "A10 Networks", "platform": "a10", "model": "AX2600"},
}
Loading

0 comments on commit a431ac8

Please sign in to comment.