refs #948 get MAC address

ogadmclient-status
Natalia Serrano 2024-10-15 11:18:37 +02:00
parent 58b7f0d406
commit 376dec466f
2 changed files with 14 additions and 1 deletions

View File

@ -316,7 +316,7 @@ class ogAdmClientWorker (ogLiveWorker):
} }
return { return {
'nfn': 'RESPUESTA_status', 'nfn': 'RESPUESTA_status',
'mac': '12:23:34:45:56:67', 'mac': self.mac,
'ip': self.IPlocal, 'ip': self.IPlocal,
'cfg': cfg, 'cfg': cfg,
'threads': thr_status, 'threads': thr_status,

View File

@ -200,6 +200,15 @@ class ogLiveWorker(ServerWorker):
logger.info ('local IP is "{}"'.format (self.IPlocal)) logger.info ('local IP is "{}"'.format (self.IPlocal))
return True return True
def tomaMAClocal (self):
## tomaIPlocal() calls interfaceAdm('getIpAddress')
## getIpAddress runs 'ip addr show' and returns the IP address of every network interface except "lo"
## (ie. breaks badly if there's more than one network interface)
## let's make the same assumptions here
mac = subprocess.run (["ip -json link show |jq -r '.[] |select (.ifname != \"lo\") |.address'"], shell=True, capture_output=True, text=True)
self.mac = mac.stdout.strip()
return True
def enviaMensajeServidor (self, path, obj={}): def enviaMensajeServidor (self, path, obj={}):
obj['iph'] = self.IPlocal ## Ip del ordenador obj['iph'] = self.IPlocal ## Ip del ordenador
obj['ido'] = self.idordenador ## Identificador del ordenador obj['ido'] = self.idordenador ## Identificador del ordenador
@ -272,6 +281,7 @@ class ogLiveWorker(ServerWorker):
self.pathinterface = None self.pathinterface = None
self.IPlocal = None ## Ip del ordenador self.IPlocal = None ## Ip del ordenador
self.mac = None ## MAC del ordenador
self.idordenador = None ## Identificador del ordenador self.idordenador = None ## Identificador del ordenador
self.nombreordenador = None ## Nombre del ordenador self.nombreordenador = None ## Nombre del ordenador
self.cache = None self.cache = None
@ -294,6 +304,9 @@ class ogLiveWorker(ServerWorker):
if not self.tomaIPlocal(): if not self.tomaIPlocal():
raise Exception ('Se han generado errores. No se puede continuar la ejecución de este módulo') raise Exception ('Se han generado errores. No se puede continuar la ejecución de este módulo')
if not self.tomaMAClocal():
raise Exception ('Se han generado errores. No se puede continuar la ejecución de este módulo')
threading.Thread (name='monitoring_thread', target=self.mon, daemon=True).start() threading.Thread (name='monitoring_thread', target=self.mon, daemon=True).start()
def _long_running_job (self, name, f, args): def _long_running_job (self, name, f, args):