handle ethtool not installed and add known limitations to README
This commit is contained in:
parent
15faf59182
commit
0c5ca003a6
3 changed files with 10 additions and 0 deletions
|
@ -11,6 +11,11 @@ The goal is to generate an existing infrastructure on Netbox and have the abilit
|
||||||
* Create physical network interfaces with IPs
|
* Create physical network interfaces with IPs
|
||||||
* Generic ability to guess datacenters through drivers (`cmd` and `file` and custom ones)
|
* Generic ability to guess datacenters through drivers (`cmd` and `file` and custom ones)
|
||||||
|
|
||||||
|
# Known limitations
|
||||||
|
|
||||||
|
* The project is only compatible with Linux.
|
||||||
|
Since it uses `ethtool` and parses `/sys/` directory, it's not compatible with *BSD distributions.
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from shutil import which
|
||||||
|
|
||||||
# Originally from https://github.com/opencoff/useful-scripts/blob/master/linktest.py
|
# Originally from https://github.com/opencoff/useful-scripts/blob/master/linktest.py
|
||||||
|
|
||||||
|
@ -64,6 +65,8 @@ class Ethtool():
|
||||||
return {'form_factor': r.groups()[0]}
|
return {'form_factor': r.groups()[0]}
|
||||||
|
|
||||||
def parse(self):
|
def parse(self):
|
||||||
|
if which('ethtool') is None:
|
||||||
|
return None
|
||||||
return {
|
return {
|
||||||
**self._parse_ethtool_output(),
|
**self._parse_ethtool_output(),
|
||||||
**self._parse_ethtool_module_output(),
|
**self._parse_ethtool_module_output(),
|
||||||
|
|
|
@ -65,6 +65,8 @@ class Network():
|
||||||
return self.nics
|
return self.nics
|
||||||
|
|
||||||
def get_netbox_type_for_nic(self, nic):
|
def get_netbox_type_for_nic(self, nic):
|
||||||
|
if nic.get('ethtool') is None:
|
||||||
|
return IFACE_TYPE_OTHER
|
||||||
if nic['ethtool']['speed'] == '10000Mb/s':
|
if nic['ethtool']['speed'] == '10000Mb/s':
|
||||||
if nic['ethtool']['port'] == 'FIBRE':
|
if nic['ethtool']['port'] == 'FIBRE':
|
||||||
return IFACE_TYPE_10GE_SFP_PLUS
|
return IFACE_TYPE_10GE_SFP_PLUS
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue