python3 migration (because of 20.04)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

This commit is contained in:
Paolo Asperti 2020-04-24 10:23:20 +02:00
parent 30941d369e
commit 78068d2ffa
Signed by: paspo
GPG Key ID: 06D46905D19D5182
4 changed files with 22 additions and 12 deletions

View File

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

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
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

2
debian/control vendored
View File

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

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
import configparser
import uuid
@ -10,7 +10,8 @@ import sys
import socket
import fileinput
import json
import commands
import lsb_release
import psutil
def get_default_gateway_linux():
"""Read the default gateway directly from /proc."""
@ -23,7 +24,6 @@ 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,12 +76,16 @@ data = {
}
if '--with-inventory' in sys.argv:
_, 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')
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)
data['cpu'] = cpu
data['ram'] = ram
data['distro'] = distro
data['ram'] = int(psutil.virtual_memory().total / 1024)
distinfo = lsb_release.get_distro_information()
data['distro'] = distinfo.get('DESCRIPTION', 'n/a')
# if server uuid is set
if 'uuid' in config['server']:
@ -98,13 +102,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']: