Skip to content

Commit e997b54

Browse files
authored
Merge pull request #25 from networklore/device-types
Add support for Extreme and Procurve
2 parents 527faaa + f1244dc commit e997b54

File tree

10 files changed

+51
-1
lines changed

10 files changed

+51
-1
lines changed

.travis.yml

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ language: python
33
python:
44
- 2.7
55
- 3.6
6+
- 3.7
67

78
install:
89
- pip install tox-travis

lib/nelsnmp/hostinfo/collect.py

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from nelsnmp.vendors.arista.versions import AristaVersion
44
from nelsnmp.vendors.cisco.versions import CiscoVersion
55
from nelsnmp.vendors.ericsson.versions import EricssonVersion
6+
from nelsnmp.vendors.extreme.versions import ExtremeVersion
7+
from nelsnmp.vendors.hpe.versions import HpeVersion
68
from nelsnmp.vendors.huawei.versions import HuaweiVersion
79
from nelsnmp.vendors.juniper.versions import JuniperVersion
810
from nelsnmp.vendors.metamako.versions import MetamakoVersion
@@ -22,6 +24,8 @@ def get_device_version(**kwargs):
2224
vendors['arista'] = AristaVersion
2325
vendors['cisco'] = CiscoVersion
2426
vendors['ericsson'] = EricssonVersion
27+
vendors['extreme'] = ExtremeVersion
28+
vendors['hpe'] = HpeVersion
2529
vendors['huawei'] = HuaweiVersion
2630
vendors['juniper'] = JuniperVersion
2731
vendors['metamako'] = MetamakoVersion

lib/nelsnmp/vendors/extreme/__init__.py

Whitespace-only changes.
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from nelsnmp.hostinfo.version import DeviceVersion
2+
3+
4+
class ExtremeVersion(DeviceVersion):
5+
6+
def _get_version(self):
7+
for line in self._descriptions:
8+
if 'ExtremeXOS' in line:
9+
self.os = 'extremexos'
10+
parts = line.split()
11+
if len(parts) > 4:
12+
if parts[2] == 'version':
13+
self.version = '{} {}'.format(parts[3], parts[4])
14+

lib/nelsnmp/vendors/hpe/__init__.py

Whitespace-only changes.

lib/nelsnmp/vendors/hpe/versions.py

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from nelsnmp.hostinfo.version import DeviceVersion
2+
3+
4+
class HpeVersion(DeviceVersion):
5+
6+
def _get_version(self):
7+
for line in self._descriptions:
8+
if 'ProCurve' in line:
9+
self.os = 'procurve'
10+
parts = line.split()
11+
if len(parts) > 5:
12+
if parts[4] == 'revision':
13+
self.version = parts[5].split(',')[0]

lib/nelsnmp/vendors/mappings.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
vendor_map = {}
33
vendor_map['9'] = 'cisco'
4+
vendor_map['11'] = 'hpe'
5+
vendor_map['1916'] = 'extreme'
46
vendor_map['2011'] = 'huawei'
57
vendor_map['2352'] = 'ericsson'
68
vendor_map['2636'] = 'juniper'
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
extreme01:
3+
sysobjectid: 1.3.6.1.4.1.1916.2.93
4+
description: 'ExtremeXOS (Stack) version 15.3.1.4 v1531b4-patch1-33 by release-manager'
5+
vendor: extreme
6+
os: extremexos
7+
version: 15.3.1.4 v1531b4-patch1-33
8+

tests/valid_hostinfo_files/hpe.yml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
procurve01:
3+
sysobjectid: 1.3.6.1.4.1.11.2.3.7.11.62
4+
description: 'ProCurve j9020a Switch 2510-48, revision U.11.57, ROM R.10.06 (/sw/code/build/dosx'
5+
vendor: hpe
6+
os: procurve
7+
version: U.11.57
8+

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py27, py36
2+
envlist = py27, py36, py37
33
[testenv]
44
deps =
55
pytest

0 commit comments

Comments
 (0)