From 6336ce6587e721592827be29fbc0ef7b6589f01e Mon Sep 17 00:00:00 2001 From: absurdo Date: Sun, 2 Apr 2023 01:04:29 +0200 Subject: [PATCH] Added result task table --- libraries/task.py | 23 +++++++++++++++++------ models/tasks.py | 12 ++++++++++++ scripts/system/install_python.sh | 13 +++++++++++-- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/libraries/task.py b/libraries/task.py index a7a45e7..273500b 100644 --- a/libraries/task.py +++ b/libraries/task.py @@ -52,6 +52,7 @@ class Task: self.connection=conn self.logtask=tasks.LogTask(self.connection) + self.resulttask=tasks.ResultTask(self.connection) self.task=tasks.Task(self.connection) self.taskdone=tasks.TaskDone(self.connection) @@ -59,6 +60,7 @@ class Task: self.logtask.reset_require() self.task.reset_require() + self.resulttask.reset_require() self.one_time=False @@ -358,6 +360,7 @@ class Task: self.task.valid_fields=['name_task', 'description_task', 'error', 'status', 'server'] self.logtask.valid_fields=self.logtask.fields.keys() + self.resulttask.valid_fields=self.resulttask.fields.keys() if self.id==0: @@ -476,14 +479,22 @@ class Task: else: json_code['task_id']=self.id - + json_code['server']=self.server - - self.logtask.insert(json_code) - if json_code['error']==1: - self.make_error_task() - return False + if 'result' in json_code: + #{'result': 1, 'message': {'username': 'hosting', 'uid': 1002, 'gid': 1002, 'home': '/srv/sites'}, 'error': 0, 'progress': 100, 'task_id': 483, 'server': '192.168.122.55'} + #json_code['message']=json.dumps(json_code['message']) + #print(json_code) + self.resulttask.insert(json_code) + #print(self.resulttask.show_errors()) + else: + + self.logtask.insert(json_code) + + if json_code['error']==1: + self.make_error_task() + return False diff --git a/models/tasks.py b/models/tasks.py index 634f571..bc558f4 100644 --- a/models/tasks.py +++ b/models/tasks.py @@ -5,6 +5,7 @@ from paramecio2.libraries.db.extrafields.arrayfield import ArrayField from paramecio2.libraries.db.extrafields.parentfield import ParentField from paramecio2.libraries.db.extrafields.datefield import DateField from paramecio2.libraries.db.extrafields.dictfield import DictField +from paramecio2.libraries.db.extrafields.jsonfield import JsonValueField from paramecio2.libraries.i18n import I18n import urllib3 try: @@ -301,6 +302,17 @@ class LogTask(WebModel): self.register(ArrayField('data', corefields.CharField('data'))) self.register(corefields.BooleanField('code_error')) +#Class for save the result of task + +class ResultTask(WebModel): + + def __init__(self, connection): + + super().__init__(connection) + self.register(corefields.ForeignKeyField('task_id', Task(connection), size=11, required=False, identifier_field='id', named_field="name_task"), True) + self.register(JsonValueField('message'), True) + self.register(IpField('server'), True) + # For grouping class TaskDone(WebModel): diff --git a/scripts/system/install_python.sh b/scripts/system/install_python.sh index 9114151..39c1af6 100644 --- a/scripts/system/install_python.sh +++ b/scripts/system/install_python.sh @@ -13,14 +13,21 @@ DISTRO=`( lsb_release -ds || cat /etc/*release || uname -om ) 2>/dev/null | head if [[ $DISTRO =~ ^Debian ]] || [[ $DISTRO =~ ^Ubuntu ]]; then sudo apt-get update - sudo apt-get -y install python3 python3-pip sudo + apt install sudo + sudo apt-get -y install python3 python3-pip elif [[ $DISTRO =~ ^NAME=\"Arch ]]; then - sudo pacman -Syu --noconfirm python python-pip sudo + pacman -Syu sudo + + sudo pacman -S --noconfirm python python-pip sudo elif [[ $DISTRO =~ ^NAME=\"Rocky ]]; then + dnf install -y sudo + + sudo dnf upgrade -y + sudo dnf install -y python python-pip sudo #Install EPEL dnf config-manager --set-enabled crb @@ -31,6 +38,8 @@ elif [[ $DISTRO =~ ^NAME=\"Rocky ]]; then elif [[ $DISTRO =~ ^Fedora ]]; then + dnf install -y sudo + sudo dnf upgrade -y sudo dnf install -y python3 python3-pip sudo