35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
|
|
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()
|