115 lines
3.4 KiB
Python
115 lines
3.4 KiB
Python
from settings import config
|
|
from flask import g, url_for, request, session, make_response, abort
|
|
from paramecio2.libraries.generate_admin_class import GenerateAdminClass
|
|
from paramecio2.libraries.i18n import I18n, PGetText
|
|
from paramecio2.modules.admin import admin_app, t as admin_t
|
|
from paramecio2.libraries.db.coreforms import SelectForm
|
|
from paramecio2.libraries.mtemplates import PTemplate, env_theme
|
|
from paramecio2.libraries import datetime
|
|
from paramecio2.libraries.urls import make_media_url
|
|
from paramecio2.libraries.db.webmodel import WebModel
|
|
from paramecio2.libraries.lists import AjaxList
|
|
from paramecio2.libraries.db.extraforms.fileform import FileForm
|
|
from paramecio2.libraries.formsutils import show_form
|
|
from modules.pastafari2.libraries.task import Task as SSHTask
|
|
from modules.pastafari2.libraries.configtask import config_task
|
|
from modules.pastafari2.models.tasks import Task, LogTask
|
|
from modules.pastafari2.models.pastafari2 import ServerGroup
|
|
|
|
pgettext=PGetText(__file__+'/../')
|
|
|
|
_=pgettext.gettext
|
|
|
|
@admin_app.route('/pastafari2/tasks/', methods=['GET', 'POST'])
|
|
def pastafari2_tasks():
|
|
|
|
t=admin_t
|
|
|
|
db=g.connection
|
|
|
|
tasks=Task(db)
|
|
|
|
url=url_for('admin_app.pastafari2_tasks')
|
|
|
|
admin=GenerateAdminClass(tasks, url, t)
|
|
|
|
admin.list.raw_query=False
|
|
|
|
admin.list.order='1'
|
|
|
|
admin.list.fields_showed=['id', 'name_task', 'description_task', 'path', 'is_parent', 'server', 'hostname', 'parent_id']
|
|
|
|
admin.list.arr_extra_options=[tasks_options]
|
|
|
|
admin.no_insert=True
|
|
|
|
admin.no_delete=True
|
|
|
|
form_admin=admin.show()
|
|
|
|
if type(form_admin).__name__=='str':
|
|
|
|
return t.load_template('content.phtml', title=_('Tasks log'), contents=form_admin, path_module='admin_app.pastafari2_tasks')
|
|
else:
|
|
|
|
return form_admin
|
|
|
|
abort(404)
|
|
|
|
@admin_app.route('/pastafari2/task_log/<int:task_id>', methods=['GET', 'POST'])
|
|
def pastafari2_task_log(task_id):
|
|
|
|
t=admin_t
|
|
|
|
db=g.connection
|
|
|
|
logtask=LogTask(db)
|
|
|
|
url=url_for('admin_app.pastafari2_task_log', task_id=task_id)
|
|
|
|
logtask.set_conditions('WHERE task_id=%s', task_id)
|
|
|
|
admin=GenerateAdminClass(logtask, url, t)
|
|
|
|
admin.list.raw_query=False
|
|
|
|
#request.args['order']=request.args.get('order', '1')
|
|
admin.list.order='1'
|
|
|
|
admin.list.fields_showed=['id', 'path', 'server', 'progress', 'message', 'error', 'status', 'data']
|
|
|
|
admin.list.arr_extra_options=[tasks_no_options]
|
|
|
|
admin.list.limit_pages=100
|
|
|
|
admin.no_insert=True
|
|
|
|
admin.no_delete=True
|
|
|
|
form_admin=admin.show()
|
|
|
|
if type(form_admin).__name__=='str':
|
|
|
|
return t.load_template('logtask.phtml', title=_('Task log'), contents=form_admin, path_module='admin_app.pastafari2_tasks')
|
|
else:
|
|
|
|
return form_admin
|
|
|
|
abort(404)
|
|
|
|
def tasks_options(url, row_id, row):
|
|
|
|
if row['is_parent']:
|
|
|
|
return ['<a target="_blank" href="'+url_for('admin_app.pastafari2_multiprogress', task_id=row_id)+'">'+_('View task log')+'</a>']
|
|
|
|
else:
|
|
|
|
return ['<a target="_blank" href="'+url_for('admin_app.pastafari2_progress', task_id=row_id)+'">'+_('View task log')+'</a>', '<a href="'+url_for('admin_app.pastafari2_task_log', task_id=row_id)+'">'+_('View raw task log')+'</a>']
|
|
|
|
|
|
def tasks_no_options(url, row_id, row):
|
|
|
|
return ['No options']
|
|
|
|
|