Fixes in progress

This commit is contained in:
absurdo 2023-06-01 13:59:24 +02:00
parent 472ca499e7
commit 3a375c3399
5 changed files with 92 additions and 1 deletions

View file

@ -25,6 +25,7 @@ import configparser
from collections import OrderedDict
from importlib import import_module, reload
from modules.pastafari2.libraries.progress import load_progress
from modules.pastafari2.libraries.load_task import load_db_in_task
try:
import ujson as json
@ -626,9 +627,16 @@ def pastafari2_multiprogress():
num_servers=task.set_conditions('WHERE parent_id=%s', [task_id]).select_count()
links=''
task_process=load_db_in_task(task_id, db)
if task_process:
links=task_process.links
if arr_task:
return t.load_template('multiprogress.phtml', title=I18n.lang('pastafari2', 'task_progress', 'Task progress'), path_module='admin_app.pastafari2_dashboard', name_task=arr_task['name_task'], description_task=arr_task['description_task'], task_id=task_id, server=arr_task['server'], num_servers=num_servers)
return t.load_template('multiprogress.phtml', title=I18n.lang('pastafari2', 'task_progress', 'Task progress'), path_module='admin_app.pastafari2_dashboard', name_task=arr_task['name_task'], description_task=arr_task['description_task'], task_id=task_id, server=arr_task['server'], num_servers=num_servers, links=links)
else:

41
libraries/load_task.py Normal file
View file

@ -0,0 +1,41 @@
from paramecio2.libraries.db.webmodel import WebModel
from paramecio2.libraries.db import corefields
from paramecio2.libraries.db.extrafields.ipfield import IpField
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:
import ujson as json
except:
import json
from redis import Redis
from rq import Queue
import importlib
import traceback
from modules.pastafari2.models.tasks import Task
def load_db_in_task(task_id, conn):
task_model=Task(conn)
arr_task=task_model.select_a_row(task_id)
if not arr_task:
return False
ssh_task=importlib.import_module(arr_task['path'])
server=arr_task['server']
remote_user=arr_task['user']
remote_password=arr_task['password']
private_key=arr_task['ssh_key_priv']
password_key=arr_task.get('ssh_key_password', '')
final_task=ssh_task.ServerTask(server, conn, remote_user=remote_user, remote_password=remote_password, private_key=private_key, password_key=password_key, remote_path='pastafari2', task_id=task_id, data=json.loads(arr_task['data']))
return final_task

View file

@ -1,11 +1,23 @@
from modules.pastafari2.models.tasks import Task, LogTask
from flask import request
from paramecio2.libraries.i18n import I18n
from modules.pastafari2.libraries.load_task import load_db_in_task
def load_progress(db, t, return_tree='', path_module='admin_app.pastafari2_dashboard'):
task_id=request.args.get('task_id', '0')
ssh_task=load_db_in_task(int(task_id), db)
path_module='admin_app.pastafari2_dashboard'
if ssh_task:
if return_tree=='':
return_tree=ssh_task.links
if path_module=='admin_app.pastafari2_dashboard':
path_module=ssh_task.path_module
position=request.args.get('position', '0')
task=Task(db)

28
media/css/popup.css Normal file
View file

@ -0,0 +1,28 @@
.title_popup {
margin-top:0px;
border-radius:0px;
position: relative;
}
.cont_popup {
margin-bottom:0px;
}
.close_icon {
color: #fff;
position:absolute;
right:5px;
}
a.close_icon:hover {
color: #ccc;
}

View file

@ -5,6 +5,7 @@
</%block>
<h2>${name_task}</h2>
<p>${description_task}</p>
${links|n}
<hr />
<p>${lang('pastafari2', 'num_servers', 'Number of servers')}: <span id="num_servers">${num_servers}</span></p>
<p>${lang('pastafari2', 'completed_tasks', 'Completed tasks')}: <span id="num_completed">0</span></p>
@ -19,6 +20,7 @@
<div id="finished" style="display:none;">
<p><strong>All tasks were finished.</strong></p>
</div>
${links|n}
<%block name="go_back_bottom">
<p><a href="${url_for('.pastafari2_dashboard')}">${lang('pastafari2', 'servers', 'Servers')}</a> &gt;&gt; ${lang('pastafari2', 'task_progress', 'Task progress')}</p>
</%block>