Compare commits

..

2 Commits
master ... wip

Author SHA1 Message Date
2a4652bd55
added inventory check
All checks were successful
continuous-integration/drone/push Build is passing
2019-05-09 19:04:38 +02:00
1caecd5e35
typo fix 2019-05-06 22:14:45 +02:00
4 changed files with 12 additions and 29 deletions

View File

@ -1,3 +1,3 @@
*/5 * * * * root /usr/sbin/libreschool-client
15 */2 * * * root /usr/sbin/libreschool-client --with-inventory
* */1 * * * root /usr/sbin/libreschool-client --with-inventory
@reboot root /usr/sbin/libreschool-client

13
debian/changelog vendored
View File

@ -1,16 +1,3 @@
libreschool-client (1.0.2) UNRELEASED; urgency=medium
* Migration to python3
-- paolo <paolo@asperti.com> Mon, 24 Apr 2020 22:00:00 +0200
libreschool-client (1.0.1) UNRELEASED; urgency=medium
* Support for ubuntu 20.04
* Added inventory check
-- paolo <paolo@asperti.com> Mon, 6 Apr 2020 22:00:00 +0200
libreschool-client (1.0.0) UNRELEASED; urgency=medium
* Initial release.

2
debian/control vendored
View File

@ -8,6 +8,6 @@ Homepage: https://git.libreschool.org/LibreSchool/libreschool-client
Package: libreschool-client
Architecture: all
Depends: python3, python-configparser, python3-requests, python3-psutil, openssh-server, ${shlibs:Depends}, ${misc:Depends}
Depends: python, python-configparser, python-requests, openssh-server, ${shlibs:Depends}, ${misc:Depends}
Description: LibreSchool management client
Managed by a LibreSchool server.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env python
import configparser
import uuid
@ -10,8 +10,7 @@ import sys
import socket
import fileinput
import json
import lsb_release
import psutil
import commands
def get_default_gateway_linux():
"""Read the default gateway directly from /proc."""
@ -24,6 +23,7 @@ def get_default_gateway_linux():
return socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))
def update_config_file(config):
# update config
with open('/etc/libreschool-client/libreschool-client.conf', 'w') as configfile:
config.write(configfile)
@ -76,16 +76,12 @@ data = {
}
if '--with-inventory' in sys.argv:
cpu = "Unknown"
with open("/proc/cpuinfo") as fh:
for line in fh:
fields = line.strip().split()
if "model name" in line:
cpu = re.sub( ".*model name.*:\s*", "", line, 1)
_, cpu = commands.getstatusoutput('cat /proc/cpuinfo | grep \'^model\ name\' | head -n 1 | sed \'s/model\\ name\\s:\\s*\\(.*\\)/\\1/\'')
_, ram = commands.getstatusoutput('vmstat -s | grep \'total memory$\' | awk \'{print $1}\'')
_, distro = commands.getstatusoutput('lsb_release -d')
data['cpu'] = cpu
data['ram'] = int(psutil.virtual_memory().total / 1024)
distinfo = lsb_release.get_distro_information()
data['distro'] = distinfo.get('DESCRIPTION', 'n/a')
data['ram'] = ram
data['distro'] = distro
# if server uuid is set
if 'uuid' in config['server']:
@ -102,13 +98,13 @@ headers = {
try:
r = requests.post(config['server']['ping_url'], data=json.dumps(data), headers=headers, timeout=5)
except requests.exceptions.RequestException as e:
print(e)
print e
sys.exit(1)
resp = r.json()
if 'error' in resp:
print(resp['error'])
print resp['error']
sys.exit(1)
if not 'uuid' in config['server']: