Added files
This commit is contained in:
commit
a6455547a2
8 changed files with 306 additions and 0 deletions
108
.gitignore
vendored
Normal file
108
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
.hypothesis/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
.static_storage/
|
||||
.media/
|
||||
local_settings.py
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
/backups
|
||||
/settings/config.py
|
||||
/media/js/jsutils
|
||||
3
__init__.py
Normal file
3
__init__.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
from flask import Blueprint, g
|
||||
|
||||
mariadb_app=Blueprint('mariadb_app', __name__)
|
||||
117
admin/app.py
Normal file
117
admin/app.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
from settings import config
|
||||
from flask import g, url_for, request, session, make_response
|
||||
from paramecio2.libraries.generate_admin_class import GenerateAdminClass
|
||||
from paramecio2.libraries.lists import SimpleList
|
||||
from paramecio2.libraries.i18n import I18n
|
||||
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
|
||||
import os
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
except:
|
||||
import json
|
||||
|
||||
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')
|
||||
|
||||
@admin_app.route('/mariadbservers/servers/')
|
||||
def mariadbservers():
|
||||
|
||||
return t.load_template('mariadbservers.phtml', title=I18n.lang('mariadbservers', 'mariadbservers', 'MariaDB Servers'), path_module='admin_app.mariadbservers')
|
||||
|
||||
@admin_app.route('/get_mariadbservers', methods=['POST'])
|
||||
def get_mariadbservers():
|
||||
|
||||
|
||||
db=g.connection
|
||||
|
||||
group_sql=''
|
||||
|
||||
count_data=[]
|
||||
sql_data=[]
|
||||
|
||||
fields=[[I18n.lang('mariadbservers', 'hostname', 'Hostname'), True], ['IP', True], [I18n.lang('mariadbservers', 'options', 'Options'), False]]
|
||||
arr_order_fields=['hostname', 'ip']
|
||||
|
||||
count_query=['select count(dbservermariadb.id) as num_elements from dbservermariadb', count_data]
|
||||
|
||||
# server.id as select_id,
|
||||
|
||||
# select hostname, ip, date, num_updates, id from serverofuser where user_id=%s;
|
||||
|
||||
#str_query=['select dbservermariadb.hostname, dbservermariadb.ip, dbservermariadb.id from dbservermariadb,serverdbtask', sql_data]
|
||||
|
||||
str_query=['select serverdbtask.hostname, serverdbtask.ip, dbservermariadb.id as id from dbservermariadb, serverdbtask WHERE serverdbtask.id=dbservermariadb.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=['<a href="{}">{}</a>'.format(url_for('admin_app.virtualhost', server_id=row_id), I18n.lang('dbservermariadb', 'server_users', 'Server users'))]
|
||||
#arr_options=['<a href="{}">{}</a>'.format(url_for('admin_app.virtualhost', dbservermariadb_id=row_id), I18n.lang('dbservermariadb', 'websites', 'Websites'))]
|
||||
#
|
||||
#arr_options.append('<a href="{}">{}</a>'.format(url_for('admin_app.ports', dbservermariadb_id=row_id), I18n.lang('dbservermariadb', 'http_ports', 'HTTP Ports')))
|
||||
#arr_options.append('<a href="{}">{}</a>'.format("", I18n.lang('dbservermariadb', 'edit', 'Edit')))
|
||||
arr_options.append('<a href="{}">{}</a>'.format(url_for('admin_app.delete_mariadbserver', mariadbserver_id=row_id), I18n.lang('dbservermariadb', 'delete', 'Delete')))
|
||||
|
||||
return '<br />'.join(arr_options)
|
||||
|
||||
@admin_app.route('/mariadbservers/delete/<int:mariadbserver_id>', methods=['GET', 'POST'])
|
||||
def delete_mariadbserver(mariadbserver_id):
|
||||
|
||||
db=g.connection
|
||||
|
||||
mariadbserver=DbServerMariaDb(db)
|
||||
|
||||
arr_mariadbserver=mariadbserver.select_a_row(mariadbserver_id)
|
||||
|
||||
if arr_mariadbserver:
|
||||
|
||||
return t.load_template('del_mariadbserver.phtml', title=I18n.lang('mariadbservers', 'remove_mariadbserver', 'Remove MariaDb server'), path_module='admin_app.mariadbservers', mariadbserver_id=arr_mariadbserver['id'], domain=arr_mariadbserver['server_id'])
|
||||
|
||||
else:
|
||||
return ""
|
||||
|
||||
@admin_app.route('/delete_mariadbserver/<int:mariadbserver_id>', methods=['GET', 'POST'])
|
||||
def delete_mariadbserver_db(mariadbserver_id):
|
||||
|
||||
db=g.connection
|
||||
|
||||
error=1
|
||||
|
||||
mariadbserver=DbServerMariaDb(db)
|
||||
|
||||
if mariadbserver.set_conditions('WHERE id=%s', [mariadbserver_id]).delete():
|
||||
|
||||
error=0
|
||||
|
||||
return {'error': error}
|
||||
|
||||
0
app.py
Normal file
0
app.py
Normal file
28
models/mariadb.py
Normal file
28
models/mariadb.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
from paramecio2.libraries.db.webmodel import WebModel
|
||||
from paramecio2.libraries.db.usermodel import UserModel
|
||||
from paramecio2.libraries.db import corefields
|
||||
from paramecio2.libraries.db.extrafields.dictfield import DictField
|
||||
from paramecio2.libraries.db.extrafields.datefield import DateField
|
||||
from paramecio2.libraries.db.extrafields.datetimefield import DateTimeField
|
||||
from paramecio2.libraries.db.extrafields.ipfield import IpField
|
||||
from paramecio2.libraries.db.extrafields.urlfield import UrlField
|
||||
from paramecio2.libraries.db.extrafields.urlfield import DomainField
|
||||
from paramecio2.libraries.db.extrafields.dictfield import DictField
|
||||
from paramecio2.libraries.db.extrafields.jsonfield import JsonValueField
|
||||
from paramecio2.libraries.db.extrafields.parentfield import ParentField
|
||||
from paramecio2.libraries.db.extrafields.filefield import FileField
|
||||
from paramecio2.libraries.db.extrafields.passwordfield import PasswordField
|
||||
from paramecio2.libraries.urls import make_media_url
|
||||
from paramecio2.libraries import datetime
|
||||
from modules.monit.models.monit import Server
|
||||
from modules.pastafari2.models.pastafari2 import ServerDbTask
|
||||
from paramecio2.libraries.db.extrafields.emailfield import EmailField
|
||||
|
||||
class DbServerMariaDb(WebModel):
|
||||
|
||||
def __init__(self, connection=None):
|
||||
|
||||
super().__init__(connection)
|
||||
self.register(corefields.ForeignKeyField('server_id', ServerDbTask(connection), 11, False, 'id', 'hostname', select_fields=[]))
|
||||
|
||||
|
||||
6
settings/config_admin.py
Normal file
6
settings/config_admin.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
from paramecio2.libraries.config_admin import config_admin
|
||||
from paramecio2.libraries.i18n import I18n
|
||||
|
||||
config_admin.append([I18n.lang('dbservermariadb', 'dbservermariadb_admin', 'MariaDB')])
|
||||
|
||||
config_admin.append([I18n.lang('dbservermariadb', 'dbservermariadb', 'MariaDB Servers'), 'modules.mariadb.admin.app', 'admin_app.mariadbservers', 'fa-globe'])
|
||||
28
templates/admin/del_mariadbserver.phtml
Normal file
28
templates/admin/del_mariadbserver.phtml
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<%inherit file="dashboard.phtml"/>
|
||||
<%block name="content">
|
||||
<p><a href="${url_for('admin_app.mariadbservers')}">${lang('mariadbservers', 'mariadbservers_list', 'MariaDB servers list')}</a> >> ${lang('mariadbservers', 'remove_mariadbserver', 'Remove MariaDB server')}</p>
|
||||
<form method="post" name="remove_mariadbserver" id="remove_mariadbserver">
|
||||
<input type="hidden" name="mariadbserver_id" value="${mariadbserver_id}" />
|
||||
<h3>${domain}</h3>
|
||||
<p><strong>${lang('mariadbservers', 'the_mariadbserver_delete_explain', 'The mariadbserver was deleted from database, you should delete the mariadbserver from your VPS or Barebone server service')}</strong></p>
|
||||
<p><input type="submit" value="${lang('mariadbservers', 'delete_mariadbserver', 'Delete mariadbserver')}" />
|
||||
</form>
|
||||
<p><a href="${url_for('admin_app.mariadbservers')}">${lang('mariadbservers', 'mariadbservers_list', 'mariadbservers list')}</a> >> ${lang('mariadbservers', 'remove_mariadbserver', 'Remove mariadbserver')}</p>
|
||||
</%block>
|
||||
<%block name="jscript_block">
|
||||
<script language="Javascript" src="${make_media_url('js/jsutils/posting2.js', 'monit')}"></script>
|
||||
<script>
|
||||
|
||||
/* options: url: url to post, loading: dom id, success: func, pre_callback, separated_data:boolean, upload: {progressbar: '#progressbar', 'total_loader': '#total_loader', 'status': '#status'} */
|
||||
|
||||
options={'url': '${url_for("admin_app.delete_mariadbserver_db", mariadbserver_id=mariadbserver_id)}', 'loading': '#layer_loading', 'success': function (data) {
|
||||
|
||||
location.href="${url_for('admin_app.mariadbservers')}";
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
$('#remove_mariadbserver').sendPost(options);
|
||||
|
||||
</script>
|
||||
</%block>
|
||||
16
templates/admin/mariadbservers.phtml
Normal file
16
templates/admin/mariadbservers.phtml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<%inherit file="dashboard.phtml"/>
|
||||
<%block name="content">
|
||||
<div id="table_servers">
|
||||
</div>
|
||||
<%block name="jscript_block">
|
||||
<script language="Javascript" src="${make_media_url('js/jsutils/posting2.js', 'monit')}"></script>
|
||||
<script language="Javascript" src="${make_media_url('js/jsutils/ajax_list.js', 'monit')}"></script>
|
||||
<script>
|
||||
|
||||
options={'url': "${url_for('.get_mariadbservers')}", extra_data: {}};
|
||||
|
||||
alist=$('#table_servers').ajaxList('table_list', options);
|
||||
|
||||
</script>
|
||||
</%block>
|
||||
</%block>
|
||||
Loading…
Add table
Add a link
Reference in a new issue