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 */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 @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 libreschool-client (1.0.0) UNRELEASED; urgency=medium
* Initial release. * Initial release.

2
debian/control vendored
View File

@ -8,6 +8,6 @@ Homepage: https://git.libreschool.org/LibreSchool/libreschool-client
Package: libreschool-client Package: libreschool-client
Architecture: all 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 Description: LibreSchool management client
Managed by a LibreSchool server. Managed by a LibreSchool server.

View File

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