Added fix in api
This commit is contained in:
parent
56f4361929
commit
802fccc162
5 changed files with 54 additions and 10 deletions
|
|
@ -18,7 +18,7 @@ from modules.pastafari2.models.tasks import Task, LogTask
|
||||||
from modules.pastafari2.libraries.configtask import config_task
|
from modules.pastafari2.libraries.configtask import config_task
|
||||||
from modules.pastafari2.models.pastafari2 import ServerGroup, ServerDbTask, UpdateServerScripts
|
from modules.pastafari2.models.pastafari2 import ServerGroup, ServerDbTask, UpdateServerScripts
|
||||||
from paramecio2.libraries.config_admin import config_admin
|
from paramecio2.libraries.config_admin import config_admin
|
||||||
from modules.pastafari2.settings.config_admin import pastafari_admin_i18n, pastafari_admin_i18n, pastafari_settings_i18n, pastafari_servers_i18n, pastafari_groups_i18n, pastafari_tasks_log_i18n, num_element_admin
|
#from modules.pastafari2.settings.config_admin import pastafari_admin_i18n, pastafari_admin_i18n, pastafari_settings_i18n, pastafari_servers_i18n, pastafari_groups_i18n, pastafari_tasks_log_i18n, num_element_admin
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import paramiko
|
import paramiko
|
||||||
|
|
|
||||||
21
api.py
21
api.py
|
|
@ -114,7 +114,8 @@ groupdb=ServerGroup(None)
|
||||||
|
|
||||||
@pastafari_app.get('/api/v1/get_groups')
|
@pastafari_app.get('/api/v1/get_groups')
|
||||||
@db
|
@db
|
||||||
def get_groups(tag='groups') -> ResponseGroups:
|
@auth_plugin
|
||||||
|
def get_groups(tag='groups', bearer=True) -> ResponseGroups:
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
@ -128,7 +129,8 @@ def get_groups(tag='groups') -> ResponseGroups:
|
||||||
|
|
||||||
@pastafari_app.post('/api/v1/add_group')
|
@pastafari_app.post('/api/v1/add_group')
|
||||||
@db
|
@db
|
||||||
def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system'] = ServerGroups, tag='groups'):
|
@auth_plugin
|
||||||
|
def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system'] = ServerGroups, tag='groups', bearer=True):
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
@ -151,7 +153,8 @@ def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system']
|
||||||
|
|
||||||
@pastafari_app.post('/api/v1/add_server')
|
@pastafari_app.post('/api/v1/add_server')
|
||||||
@db
|
@db
|
||||||
def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = Server, tag='servers'):
|
@auth_plugin
|
||||||
|
def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = Server, tag='servers', bearer=True):
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
@ -232,7 +235,8 @@ def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = S
|
||||||
|
|
||||||
task_id=0
|
task_id=0
|
||||||
|
|
||||||
path_task='modules.cuchulucp.tasks.system.task'
|
#path_task='modules.cuchulucp.tasks.system.task'
|
||||||
|
path_task='modules.pastafari2.tasks.system.task'
|
||||||
|
|
||||||
if not task.run_task(ip, path_task, 'Add new server', 'add_new_server', 'Task for add a new server', user=server_username, password=server_password, where_sql_server='', url='', data=data, send_task=True, ssh_port=ssh_port):
|
if not task.run_task(ip, path_task, 'Add new server', 'add_new_server', 'Task for add a new server', user=server_username, password=server_password, where_sql_server='', url='', data=data, send_task=True, ssh_port=ssh_port):
|
||||||
|
|
||||||
|
|
@ -257,7 +261,8 @@ taskdb=TaskDbModel(None)
|
||||||
|
|
||||||
@pastafari_app.post('/api/v1/task')
|
@pastafari_app.post('/api/v1/task')
|
||||||
@db
|
@db
|
||||||
def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='tasks'):
|
@auth_plugin
|
||||||
|
def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='tasks', bearer=True):
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
@ -346,7 +351,8 @@ def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='task
|
||||||
|
|
||||||
@pastafari_app.get('/api/v1/get_progress_task/<int:task_id>/<int:position>')
|
@pastafari_app.get('/api/v1/get_progress_task/<int:task_id>/<int:position>')
|
||||||
@db
|
@db
|
||||||
def get_progress_task(task_id, position=0, tag='tasks') -> ResponseLog:
|
@auth_plugin
|
||||||
|
def get_progress_task(task_id, position=0, tag='tasks', bearer=True) -> ResponseLog:
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
@ -408,7 +414,8 @@ def get_progress_task(task_id, position=0, tag='tasks') -> ResponseLog:
|
||||||
|
|
||||||
@pastafari_app.post('/api/v1/add_task_db')
|
@pastafari_app.post('/api/v1/add_task_db')
|
||||||
@db
|
@db
|
||||||
def add_task_db(post: Annotated[TaskDb, 'Add a new task to db'] = TaskDb, tag='tasks') -> StandardResponse:
|
@auth_plugin
|
||||||
|
def add_task_db(post: Annotated[TaskDb, 'Add a new task to db'] = TaskDb, tag='tasks', bearer=True) -> StandardResponse:
|
||||||
|
|
||||||
db=g.connection
|
db=g.connection
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from flask import g, session, redirect, url_for
|
from flask import g, session, redirect, url_for, request, abort
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from paramecio2.libraries.db.webmodel import WebModel
|
from paramecio2.libraries.db.webmodel import WebModel
|
||||||
|
|
||||||
|
|
@ -46,7 +46,8 @@ def auth_plugin(f):
|
||||||
#print(request.headers['Authorization'])
|
#print(request.headers['Authorization'])
|
||||||
bearer=request.headers['Authorization'].replace('Bearer', '').strip()
|
bearer=request.headers['Authorization'].replace('Bearer', '').strip()
|
||||||
|
|
||||||
db=kwargs['db']
|
#db=kwargs['db']
|
||||||
|
db=g.connection
|
||||||
|
|
||||||
num_token=0
|
num_token=0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,12 @@ class ConfigTask:
|
||||||
self.api_key=''
|
self.api_key=''
|
||||||
|
|
||||||
self.ssh_directory=os.path.expanduser('~')+'/.ssh'
|
self.ssh_directory=os.path.expanduser('~')+'/.ssh'
|
||||||
|
|
||||||
|
self.ssh_private_key=self.ssh_directory+'/id_rsa'
|
||||||
|
|
||||||
|
self.ssh_private_key_password=''
|
||||||
|
|
||||||
|
self.ssh_public_key=self.ssh_private_key+'.pub'
|
||||||
|
|
||||||
# Class for global configuration
|
# Class for global configuration
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ from paramecio2.libraries.urls import make_media_url
|
||||||
from paramecio2.libraries import datetime
|
from paramecio2.libraries import datetime
|
||||||
from paramecio2.modules.admin.models.admin import UserAdmin
|
from paramecio2.modules.admin.models.admin import UserAdmin
|
||||||
from modules.pastafari2.models.tasks import LonelyIpField
|
from modules.pastafari2.models.tasks import LonelyIpField
|
||||||
|
from paramecio2.libraries.db.extrafields.passwordfield import PasswordField
|
||||||
#from modules.monit.models.monit import Server
|
#from modules.monit.models.monit import Server
|
||||||
|
|
||||||
class ServerGroup(WebModel):
|
class ServerGroup(WebModel):
|
||||||
|
|
@ -86,3 +87,32 @@ class ServerScripts(WebModel):
|
||||||
self.register(corefields.CharField('question8'))
|
self.register(corefields.CharField('question8'))
|
||||||
self.register(corefields.CharField('question9'))
|
self.register(corefields.CharField('question9'))
|
||||||
|
|
||||||
|
class UserPermissions(WebModel):
|
||||||
|
|
||||||
|
def __init__(self, connection=None):
|
||||||
|
|
||||||
|
super().__init__(connection)
|
||||||
|
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
|
||||||
|
self.register(JsonValueField('permissions', corefields.BooleanField('permissions')))
|
||||||
|
self.register(PasswordField('token_auth'))
|
||||||
|
|
||||||
|
class ServerPermissions(WebModel):
|
||||||
|
|
||||||
|
def __init__(self, connection=None):
|
||||||
|
|
||||||
|
super().__init__(connection)
|
||||||
|
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
|
||||||
|
self.register(corefields.ForeignKeyField('server_id', Server(connection), 11, False, 'id', 'group', select_fields=[]))
|
||||||
|
self.register(JsonValueField('permissions', corefields.BooleanField('permissions')))
|
||||||
|
self.register(PasswordField('token_auth'))
|
||||||
|
|
||||||
|
class UserToken(WebModel):
|
||||||
|
|
||||||
|
def __init__(self, connection):
|
||||||
|
|
||||||
|
super().__init__(connection)
|
||||||
|
self.register(corefields.CharField('token', 4096), True)
|
||||||
|
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
|
||||||
|
self.register(DateTimeField('last_login'))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue