Fixes for make pastafari2 independent of monit module

This commit is contained in:
absurdo 2023-08-13 11:33:25 +02:00
parent 05d8824d6f
commit 437f0ca08a
3 changed files with 41 additions and 4 deletions

View file

@ -758,7 +758,7 @@ def pastafari2_edit_server():
admin=GenerateAdminClass(server, url, t)
admin.arr_fields_edit=['hostname', 'ip']
admin.arr_fields_edit=['hostname', 'ip', 'ssh_port']
admin.url_redirect=url_for('.pastafari2_dashboard')

View file

@ -13,7 +13,8 @@ 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 modules.monit.models.monit import Server
from modules.pastafari2.models.tasks import LonelyIpField
#from modules.monit.models.monit import Server
class ServerGroup(WebModel):
@ -23,6 +24,18 @@ class ServerGroup(WebModel):
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):
@ -31,7 +44,7 @@ class ServerDbTask(Server):
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'))
self.register(corefields.IntegerField('ssh_port'), True)
class UpdateServerScripts(WebModel):

View file

@ -17,9 +17,33 @@ from redis import Redis
from rq import Queue
import importlib
import traceback
from modules.monit.models.monit import LonelyIpField
#from modules.monit.models.monit import LonelyIpField
from modules.pastafari2.libraries.configtask import config_task
class LonelyIpField(IpField):
def __init__(self, name, size=64):
super().__init__(name, size)
self.duplicated_ip=False
def check(self, value):
value=super().check(value)
if self.duplicated_ip==True:
self.txt_error='Error: you have a server with this ip in the database'
self.error=True
return value
return value
def show_formatted(self, value):
return '<input id="ip_%s" value="" type="hidden"/>%s' % (value, value)
class Task(WebModel):
def __init__(self, connection):