refs #1983 log length of sessions

pull/31/head
Natalia Serrano 2025-05-14 10:45:53 +02:00
parent 0099a05921
commit d231816c0f
6 changed files with 27 additions and 5 deletions

View File

@ -6,6 +6,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [5.2.0] - 2025-05-14
### Added
- Log duration of user sessions
## [5.1.1] - 2025-05-06
### Fixed

View File

@ -1,3 +1,9 @@
ogagent (5.2.0-1) stable; urgency=medium
* Log length of user sessions
-- OpenGnsys developers <info@opengnsys.es> Mon, 12 May 2025 11:38:27 +0200
ogagent (5.1.1-1) stable; urgency=medium
* Fix URL for notifying stop to ogcore

View File

@ -1 +1 @@
5.1.1
5.2.0

View File

@ -17,6 +17,8 @@ level=full
# Log Level, if omitted, will be set to INFO
log=DEBUG
imgname=
# TLS
ca=C:\Program Files (x86)\OGagent\ca.crt
crt=C:\Program Files (x86)\OGagent\ogagent.crt

View File

@ -213,6 +213,10 @@ class OpenGnSysWorker(ServerWorker):
"""
Sends OGAgent stopping notification to OpenGnsys server
"""
now = time.time()
for elem in self.user:
sess_len = now - elem['login_ts']
logger.debug ('Session of logged in user {} took {} seconds'.format (elem['username'], int (sess_len)))
logger.debug('onDeactivation')
self.REST.sendMessage('ogagent/stopped', {'mac': self.interface.mac, 'ip': self.interface.ip,
'ostype': operations.os_type, 'osversion': operations.os_version})
@ -223,7 +227,7 @@ class OpenGnSysWorker(ServerWorker):
"""
user, language, self.session_type = tuple(data.split(','))
logger.debug('Received login for {0} using {2} with language {1}'.format(user, language, self.session_type))
self.user.append(user)
self.user.append ({'username': user, 'login_ts': time.time() })
self.REST.sendMessage('ogagent/loggedin', {'ip': self.interface.ip, 'user': user, 'language': language,
'session': self.session_type,
'ostype': operations.os_type, 'osversion': operations.os_version})
@ -232,7 +236,11 @@ class OpenGnSysWorker(ServerWorker):
"""
Sends session logout notification to OpenGnsys server
"""
logger.debug('Received logout for {}'.format(user))
sess_len = 0
for elem in self.user:
if user != elem['username']: continue
sess_len = time.time() - elem['login_ts']
logger.debug ('Received logout for {}, session length {} seconds'.format (user, int (sess_len)))
try:
self.user.pop()
except IndexError:
@ -288,7 +296,7 @@ class OpenGnSysWorker(ServerWorker):
if get_params.get('detail', 'false') == 'true':
res.update({'agent_version': VERSION, 'os_version': operations.os_version, 'sys_load': os.getloadavg()})
if res['loggedin']:
res.update({'sessions': len(self.user), 'current_user': self.user[-1]})
res.update({'sessions': len(self.user), 'current_user': self.user[-1]['username']})
except KeyError:
# Unknown operating system
res = {'status': 'UNK'}

View File

@ -422,7 +422,7 @@ class ogAdmClientWorker (ogLiveWorker):
params = []
disk_info = cfg.pop (0)
logger.debug (f'disk_info ({disk_info})')
for k in ['dis', 'tch']:
for k in ['dis']:
params.append (f'{k}={disk_info[k]}')
disk_info_str = '*'.join (params)