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 {
'nfn': 'RESPUESTA_status',
'mac': '12:23:34:45:56:67',
'mac': self.mac,
'ip': self.IPlocal,
'cfg': cfg,
'threads': thr_status,

View File

@ -200,6 +200,15 @@ class ogLiveWorker(ServerWorker):
logger.info ('local IP is "{}"'.format (self.IPlocal))
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={}):
obj['iph'] = self.IPlocal ## Ip del ordenador
obj['ido'] = self.idordenador ## Identificador del ordenador
@ -272,6 +281,7 @@ class ogLiveWorker(ServerWorker):
self.pathinterface = None
self.IPlocal = None ## Ip del ordenador
self.mac = None ## MAC del ordenador
self.idordenador = None ## Identificador del ordenador
self.nombreordenador = None ## Nombre del ordenador
self.cache = None
@ -294,6 +304,9 @@ class ogLiveWorker(ServerWorker):
if not self.tomaIPlocal():
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()
def _long_running_job (self, name, f, args):