from modules.phpserver import php_app 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.lists import SimpleList from paramecio2.libraries.i18n import I18n, PGetText from paramecio2.modules.admin import admin_app, t as admin_t from paramecio2.libraries.db.webmodel import WebModel from paramecio2.libraries.lists import AjaxList from modules.pastafari2.models.pastafari2 import ServerGroup, ServerDbTask, UpdateServerScripts from modules.pastafari2.models.tasks import Task as SSHTask from modules.mariadb.models.mariadb import DbServerMariaDb from paramecio2.libraries.mtemplates import PTemplate, env_theme from paramecio2.libraries.formsutils import show_form from paramecio2.libraries.db.coreforms import HiddenForm, SelectForm, TextForm from paramecio2.libraries.slugify import slugify from modules.pastafari2.libraries.configtask import config_task from modules.pastafari2.libraries.progress import load_progress from modules.pastafari2.models.tasks import Task as SSHTask from modules.pastafari2.libraries.configtask import config_task from modules.pastafari2.libraries.progress import load_progress import os try: import ujson as json except: import json pgettext=PGetText(__file__+'/../') _=pgettext.gettext env=env_theme(__file__) t=PTemplate(env) t.env.directories=admin_t.env.directories t.env.directories.insert(1, os.path.dirname(__file__).replace('/admin', '')+'/templates/admin') t.env.directories.insert(2, '../pastafari2/templates/admin') @php_app.route('/phpserver/servers') def php_dashboard(): return t.load_template('phpservers.phtml', title=_('PHP Servers'), path_module='php_app.php_dashboard') @php_app.route('/phpserver/get_phpservers', methods=['POST']) def get_phpservers(): db=g.connection group_sql='' count_data=[] sql_data=[] fields=[[_('Version'), True], [_('Hostname'), True], ['IP', True], [_('Options'), False]] arr_order_fields=['version', 'hostname', 'ip'] count_query=['select count(phpserver.id) as num_elements from phpserver', count_data] str_query=['select phpserver.version, serverdbtask.hostname, serverdbtask.ip, phpserver.id as id from serverdbtask, phpserver WHERE serverdbtask.id=phpserver.server_id', sql_data] ajax=AjaxList(db, fields, arr_order_fields, count_query, str_query) #ajax.func_fields['id']=options_server #ajax.func_fields['ip']=options_ip #ajax.func_fields['select_id']=options_selected ajax.func_fields['id']=options_options ajax.limit=0 return ajax.show() def options_options(row_id, row): arr_options=[] #arr_options=['{}'.format(url_for('admin_app.virtualhost', server_id=row_id), I18n.lang('dbservermariadb', 'server_users', 'Server users'))] #arr_options=['{}'.format(url_for('admin_app.virtualhost', dbservermariadb_id=row_id), _('Websites'))] # #arr_options.append('{}'.format(url_for('admin_app.ports', dbservermariadb_id=row_id), I18n.lang('dbservermariadb', 'http_ports', 'HTTP Ports'))) arr_options.append('{}'.format(url_for('php_app.php_edit_server', php_server_id=row_id), _('Edit'))) arr_options.append('{}'.format(url_for('php_app.delete_php', php_server_id=row_id), _('Delete'))) return '
'.join(arr_options) @php_app.route('/phpserver/delete_php/') def delete_php(php_server_id): db=g.connection with db.query('select serverdbtask.hostname, phpserver.version from serverdbtask, phpserver where phpserver.server_id=serverdbtask.id and phpserver.id=%s', [php_server_id]) as cursor: arr_server=cursor.fetchone() if arr_server: #select * from virtualhost, webserver, serverdbtask, phpserver where virtualhost.webserver_id=webserver.id AND serverdbtask.id=webserver.server_id AND phpserver.server_id=serverdbtask.id AND phpserver.id=19 with db.query('select count(*) as num_php_vhosts from virtualhost, webserver, serverdbtask, phpserver where virtualhost.webserver_id=webserver.id AND serverdbtask.id=webserver.server_id AND phpserver.server_id=serverdbtask.id AND phpserver.id=%s', [php_server_id]) as cursor: num_php_vhosts=cursor.fetchone()['num_php_vhosts'] return t.load_template('del_phpserver.phtml', title=_('Remove PHP FPM server'), path_module='php_app.php_dashboard', php_server_id=php_server_id, domain=arr_server['hostname'], num_php_vhosts=num_php_vhosts) abort(404) @php_app.route('/phpserver/delete_php_task/', methods=['POST']) def delete_php_task(php_server_id): db=g.connection error=1 task_id=0 error_form={} with db.query('select serverdbtask.hostname, serverdbtask.ip, serverdbtask.ssh_port, phpserver.version from serverdbtask, phpserver where phpserver.server_id=serverdbtask.id and phpserver.id=%s', [php_server_id]) as cursor: arr_server=cursor.fetchone() if arr_server: sshtask=SSHTask(db) #user=config_task.remote_user ssh_key_priv='./ssh/id_rsa' #run_task(self, server, path, name_task, codename_task, description_task, data={}, user='', password='', where_sql_server='', url='', ssh_key_priv='', ssh_key_password='', send_task=True) # user=user, password='', where_sql_server=where_sql, ssh_key_priv=ssh_key_priv, url='', data=data, send_task=True #root_dir='/home/'+username+'/sites/'+domain #ftp_user=arr_user['user'] if not sshtask.run_task(arr_server['ip'], 'modules.phpserver.tasks.php.php.delete_php', 'Delete PHP server', 'delete_phpserver', 'Task for delete php-fpm server from server', {'version': arr_server['version'], 'php_server_id': php_server_id}, config_task.remote_user, '', '', url_for('php_app.php_dashboard'), ssh_key_priv=ssh_key_priv, ssh_key_password='', send_task=True, ssh_port=arr_server['ssh_port']): error=1 else: error=0 task_id=sshtask.task_id return {'error': error, 'error_form': error_form, 'task_id': task_id} @php_app.route('/phpserver/progress//') def php_progress(php_server_id): db=g.connection #Webservers list >> Web users >> Virtual Hosts #cursor=db.query('select `usersftp`.`id` from `usersftp`') return_tree='

'+_('PHP servers list')+'

' return load_progress(db, t, return_tree=return_tree, path_module='php_app.php_dashboard') @php_app.route('/phpserver/edit_server//') def php_edit_server(php_server_id): db=g.connection with db.query('select serverdbtask.hostname, phpserver.version from serverdbtask, phpserver where phpserver.server_id=serverdbtask.id and phpserver.id=%s', [php_server_id]) as cursor: arr_server=cursor.fetchone() if arr_server: return t.load_template('edit_phpserver.phtml', title=_('Edit PHP FPM server'), path_module='php_app.php_dashboard', domain=arr_server['hostname']) return {} @php_app.route('/phpserver/get_php_server//') def get_php_server(php_server_id): return {}