127 lines
5.6 KiB
Python
127 lines
5.6 KiB
Python
from paramecio2.libraries.db.webmodel import WebModel
|
|
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.urls import make_media_url
|
|
from paramecio2.libraries import datetime
|
|
from paramecio2.modules.admin.models.admin import UserAdmin
|
|
from paramecio2.libraries.db.extrafields.usernamefield import UserNameField
|
|
from modules.pastafari2.models.tasks import LonelyIpField
|
|
from paramecio2.libraries.db.extrafields.passwordfield import PasswordField
|
|
#from modules.monit.models.monit import Server
|
|
|
|
class ServerGroup(WebModel):
|
|
|
|
def __init__(self, connection):
|
|
|
|
super().__init__(connection)
|
|
self.register(corefields.CharField('group'), True)
|
|
self.register(corefields.CharField('code_group'), True)
|
|
|
|
class Server(WebModel):
|
|
|
|
def __init__(self, connection=None):
|
|
|
|
super().__init__(connection)
|
|
|
|
#self.register(corefields.ForeignKeyField('user_id', UserServer(connection)), True)
|
|
self.register(DomainField('hostname'), True)
|
|
self.register(corefields.CharField('group'), True)
|
|
self.register(LonelyIpField('ip'), True)
|
|
self.fields['ip'].unique=True
|
|
#self.fields['ip'].indexed=True
|
|
|
|
class ServerDbTask(Server):
|
|
|
|
def __init__(self, connection=None):
|
|
|
|
super().__init__(connection)
|
|
self.fields['group'].required=False
|
|
self.register(corefields.ForeignKeyField('group_id', ServerGroup(connection), 11, False, 'id', 'group', select_fields=[]))
|
|
self.register(corefields.IntegerField('ssh_port'), True)
|
|
self.register(corefields.CharField('distro'))
|
|
|
|
class UpdateServerScripts(WebModel):
|
|
|
|
def __init__(self, connection=None):
|
|
|
|
super().__init__(connection)
|
|
self.register(corefields.CharField('name'), True)
|
|
self.register(FileField('file', './scripts/local/'), True)
|
|
self.register(corefields.CharField('args'))
|
|
self.register(corefields.ForeignKeyField('server_id', ServerDbTask(connection), 11, False, 'id', 'group', select_fields=[]))
|
|
self.register(corefields.IntegerField('position'))
|
|
self.register(corefields.CharField('code'))
|
|
|
|
class NameServerScripts(WebModel):
|
|
|
|
def __init__(self, connection=None):
|
|
|
|
super().__init__(connection)
|
|
self.register(corefields.CharField('name'), True)
|
|
|
|
class ServerScripts(WebModel):
|
|
|
|
def __init__(self, connection=None):
|
|
|
|
super().__init__(connection)
|
|
self.register(corefields.CharField('name'), True)
|
|
self.register(FileField('file', './scripts/local/tasks'), True)
|
|
self.register(corefields.ForeignKeyField('scripts_id', NameServerScripts(connection), 11, False, 'id', 'name', select_fields=[]))
|
|
self.register(corefields.IntegerField('position'))
|
|
self.register(corefields.CharField('question0'))
|
|
self.register(corefields.CharField('question1'))
|
|
self.register(corefields.CharField('question2'))
|
|
self.register(corefields.CharField('question3'))
|
|
self.register(corefields.CharField('question4'))
|
|
self.register(corefields.CharField('question5'))
|
|
self.register(corefields.CharField('question6'))
|
|
self.register(corefields.CharField('question7'))
|
|
self.register(corefields.CharField('question8'))
|
|
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'))
|
|
|
|
class SystemUser(WebModel):
|
|
|
|
def __init__(self, connection):
|
|
|
|
super().__init__(connection)
|
|
self.register(UserNameField('username', 4096), True)
|
|
#self.register(corefields.CharField('home', 4096))
|
|
self.register(corefields.ForeignKeyField('server_id', ServerDbTask(connection), 11, False, 'id', 'group', select_fields=[]))
|
|
|