Merge pull request #1 from volkansahin/master

registration and login messages extended
This commit is contained in:
ismail başaran 2016-12-08 11:16:05 +02:00 committed by GitHub
commit 33f2409815
4 changed files with 98 additions and 13 deletions

2
debian/control vendored
View file

@ -8,5 +8,5 @@ Homepage: http://www.liderahenk.org.tr
Package: ahenk
Architecture: any
Depends: bash, python3 (>= 3), cython, libidn11, libidn11-dev, python3-dev, python3-pip, python3-watchdog, libffi-dev, libssl-dev, python3-paramiko, python3-cpuinfo, python3-psutil (>= 4), libpam-script, python3-sleekxmpp, dmidecode, python3-easygui, notify-osd
Depends: bash, python3 (>= 3), cython, libidn11, libidn11-dev, python3-dev, python3-pip, python3-watchdog, libffi-dev, libssl-dev, python3-paramiko, python3-cpuinfo, python3-psutil (>= 4), libpam-script, python3-sleekxmpp, dmidecode, python3-easygui, notify-osd, read-edid
Description: Lider Ahenk is an open source project which provides solutions to manage, monitor and audit unlimited number of different systems and users on a network.

View file

@ -70,6 +70,13 @@ class Messaging(object):
data['username'] = username
data['ipAddresses'] = str(System.Hardware.Network.ip_addresses()).replace('[', '').replace(']', '')
data['timestamp'] = Util.timestamp()
data['hardware.monitors'] = str(System.Hardware.monitors()),
data['hardware.screens'] = str(System.Hardware.screens()),
data['hardware.usbDevices'] = str(System.Hardware.usb_devices()),
data['hardware.printers'] = str(System.Hardware.printers()),
data['hardware.systemDefinitions'] = str(System.Hardware.system_definitions()),
json_data = json.dumps(data)
self.logger.debug('Login message was created')
return json_data

View file

@ -125,10 +125,16 @@ class Registration:
'hardware.disk.used': System.Hardware.Disk.used(),
'hardware.disk.free': System.Hardware.Disk.free(),
'hardware.disk.partitions': str(parts),
'hardware.monitors': str(System.Hardware.monitors()),
'hardware.screens': str(System.Hardware.screens()),
'hardware.usbDevices': str(System.Hardware.usb_devices()),
'hardware.printers': str(System.Hardware.printers()),
'hardware.systemDefinitions': str(System.Hardware.system_definitions()),
'hardware.memory.total': System.Hardware.Memory.total(),
'hardware.network.ipAddresses': System.Hardware.Network.ip_addresses(),
'sessions.userNames': System.Sessions.user_name(),
'bios.releaseDate': System.BIOS.release_date()[1].replace('\n', '') if System.BIOS.release_date()[0] == 0 else 'n/a',
'hardware.network.ipAddresses': str(System.Hardware.Network.ip_addresses()),
'sessions.userNames': str(System.Sessions.user_name()),
'bios.releaseDate': System.BIOS.release_date()[1].replace('\n', '') if System.BIOS.release_date()[
0] == 0 else 'n/a',
'bios.version': System.BIOS.version()[1].replace('\n', '') if System.BIOS.version()[0] == 0 else 'n/a',
'bios.vendor': System.BIOS.vendor()[1].replace('\n', '') if System.BIOS.vendor()[0] == 0 else 'n/a',
'hardware.baseboard.manufacturer': System.Hardware.BaseBoard.manufacturer()[1].replace('\n', '') if

View file

@ -2,18 +2,21 @@
# -*- coding: utf-8 -*-
# Author: Volkan Şahin <volkansah.in> <bm.volkansahin@gmail.com>
import platform
import psutil
import cpuinfo
import re
import os
import configparser
import socket
import fcntl
import glob
import os
import platform
import re
import socket
import struct
from uuid import getnode as get_mac
from base.util.util import Util
import cpuinfo
import psutil
from base.scope import Scope
from base.util.util import Util
class System:
@ -472,6 +475,77 @@ class System:
return arr
@staticmethod
def screen_info_json_obj(info):
label_list = [
# 'Identifier',
'ModelName', 'VendorName', 'Monitor Manufactured', 'DisplaySize',
# 'Gamma',
# 'Horizsync',
# 'VertRefresh'
]
data = dict()
for line in info.splitlines():
line = line.strip().replace('"', '')
intersection = list(set(line.split(' ')).intersection(label_list))
if len(intersection) > 0:
data[str(intersection[0])] = line.split(intersection[0])[1].strip()
return data
@staticmethod
def monitors():
edid_list = glob.glob('/sys/class/drm/*/edid')
monitor_list = list()
for edid in edid_list:
result_code, p_out, p_err = Util.execute('parse-edid < {0}'.format(edid))
if result_code == 0:
monitor_list.append(System.Hardware.screen_info_json_obj(p_out))
return monitor_list
@staticmethod
def screens():
result_code, p_out, p_err = Util.execute('xrandr')
arr = []
if result_code == 0:
for line in p_out.splitlines():
if len(list(set(line.split(' ')).intersection(['connected']))) > 0:
arr.append(line)
return arr
@staticmethod
def usb_devices():
result_code, p_out, p_err = Util.execute('lsusb')
arr = []
if result_code == 0:
for line in p_out.splitlines():
if ':' in line and 'Device 001' not in line.split(':')[0]:
arr.append(line)
return arr
@staticmethod
def printers():
result_code, p_out, p_err = Util.execute('lpstat -a')
arr = None
if result_code == 0:
arr = p_out.splitlines()
return arr
@staticmethod
def system_definitions():
result_code, p_out, p_err = Util.execute('dmidecode -t system')
arr = []
if result_code == 0:
for line in p_out.splitlines():
line = line.strip()
if len(list(set(line.split(' ')).intersection(['Manufacturer:', 'Product']))) > 0:
arr.append(line)
return arr
@staticmethod
def machine_type():
config = configparser.ConfigParser()
@ -479,7 +553,6 @@ class System:
config.read(System.Ahenk.config_path())
return config.get('MACHINE', 'type')
@staticmethod
def interfaces_details():
return psutil.net_if_addrs()
@ -543,4 +616,3 @@ class System:
@staticmethod
def model():
return cpuinfo.get_cpu_info()['model']