File size: 1,089 Bytes
a757bd3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import sys
from typing import List, Dict, Optional
from .util import DB
if "/www/server/panel/class" not in sys.path:
sys.path.insert(0, "/www/server/panel/class")
from db_mysql import panelMysql
from database import database
from databaseModel.mongodbModel import main as mongodb
from databaseModel.pgsqlModel import main as pgsql
from databaseModel.sqlserverModel import main as sqlserver
class BaseDatabaseTool:
_type_name = ""
def local_server_info(self) -> Optional[Dict]:
raise NotImplementedError()
# 获取所有可以管理的服务器的信息
def server_list(self) -> List[Dict]:
data = DB('database_servers').where("LOWER(db_type)=LOWER('?')", (self._type_name, )).select()
if not isinstance(data, list):
data = []
local_server = self.local_server_info()
if local_server is not None:
data.insert(0, local_server)
return data
# 添加一个数据库
def add_database(self, server_id: int, database_name: str, **kwargs) -> List[Dict]:
raise NotImplementedError()
|