summaryrefslogtreecommitdiffstats
path: root/src/live
diff options
context:
space:
mode:
Diffstat (limited to 'src/live')
-rw-r--r--src/live/ogOperations.py26
1 files changed, 4 insertions, 22 deletions
diff --git a/src/live/ogOperations.py b/src/live/ogOperations.py
index b5ddaeb..2aa42bd 100644
--- a/src/live/ogOperations.py
+++ b/src/live/ogOperations.py
@@ -9,10 +9,11 @@
import os
import json
import subprocess
-import fcntl, socket, array, struct
from src.ogClient import ogClient
from src.ogRest import ThreadState
+from src.utils.net import ethtool
+
OG_SHELL = '/bin/bash'
class OgLiveOperations:
@@ -281,27 +282,8 @@ class OgLiveOperations:
return self.parseGetConf(output.decode('utf-8'))
def probe(self, ogRest):
- def ethtool(interface):
- try:
- ETHTOOL_GSET = 0x00000001
- SIOCETHTOOL = 0x8946
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sockfd = sock.fileno()
- ecmd = array.array(
- "B", struct.pack("I39s", ETHTOOL_GSET, b"\x00" * 39)
- )
- interface = interface.encode("utf-8")
- ifreq = struct.pack("16sP", interface, ecmd.buffer_info()[0])
- fcntl.ioctl(sockfd, SIOCETHTOOL, ifreq)
- res = ecmd.tobytes()
- speed = struct.unpack("12xH29x", res)[0]
- except IOError:
- speed = 0
- finally:
- sock.close()
- return speed
-
- interface = os.environ['DEVICE']
+
+ interface = os.getenv('DEVICE')
speed = ethtool(interface)
return {'status': 'OPG' if ogRest.state != ThreadState.BUSY else 'BSY',