diff --git a/agent/app/service/database.go b/agent/app/service/database.go index acd82a2ad..5fc7afe19 100644 --- a/agent/app/service/database.go +++ b/agent/app/service/database.go @@ -135,6 +135,7 @@ func (u *DatabaseService) CheckDatabase(req dto.DatabaseCreate) bool { Address: req.Address, Port: req.Port, Password: req.Password, + Timeout: req.Timeout, }) return err == nil case "mysql", "mariadb": @@ -186,6 +187,7 @@ func (u *DatabaseService) Create(req dto.DatabaseCreate) error { Address: req.Address, Port: req.Port, Password: req.Password, + Timeout: req.Timeout, }); err != nil { return err } @@ -286,6 +288,7 @@ func (u *DatabaseService) Update(req dto.DatabaseUpdate) error { Address: req.Address, Port: req.Port, Password: req.Password, + Timeout: req.Timeout, }); err != nil { return err } diff --git a/agent/utils/redis/redis.go b/agent/utils/redis/redis.go index 703229df8..bd8234b5f 100644 --- a/agent/utils/redis/redis.go +++ b/agent/utils/redis/redis.go @@ -2,6 +2,7 @@ package redis import ( "fmt" + "time" "github.com/1Panel-dev/1Panel/agent/global" "github.com/go-redis/redis" @@ -11,13 +12,15 @@ type DBInfo struct { Address string `json:"address"` Port uint `json:"port"` Password string `json:"password"` + Timeout uint `json:"timeout"` } func NewRedisClient(conn DBInfo) (*redis.Client, error) { client := redis.NewClient(&redis.Options{ - Addr: fmt.Sprintf("%s:%v", conn.Address, conn.Port), - Password: conn.Password, - DB: 0, + Addr: fmt.Sprintf("%s:%v", conn.Address, conn.Port), + Password: conn.Password, + DB: 0, + DialTimeout: time.Duration(conn.Timeout) * time.Second, }) if _, err := client.Ping().Result(); err != nil { diff --git a/frontend/src/api/modules/database.ts b/frontend/src/api/modules/database.ts index f7f3bcff5..4cefbb700 100644 --- a/frontend/src/api/modules/database.ts +++ b/frontend/src/api/modules/database.ts @@ -163,7 +163,7 @@ export const checkDatabase = (params: Database.DatabaseCreate) => { request.rootCert = Base64.encode(request.rootCert); } - return http.post(`/databases/db/check`, request, TimeoutEnum.T_40S); + return http.post(`/databases/db/check`, request, TimeoutEnum.T_60S); }; export const addDatabase = (params: Database.DatabaseCreate) => { let request = deepCopy(params) as Database.DatabaseCreate; @@ -173,7 +173,7 @@ export const addDatabase = (params: Database.DatabaseCreate) => { request.rootCert = Base64.encode(request.rootCert); } - return http.post(`/databases/db`, request, TimeoutEnum.T_40S); + return http.post(`/databases/db`, request, TimeoutEnum.T_60S); }; export const editDatabase = (params: Database.DatabaseUpdate) => { let request = deepCopy(params) as Database.DatabaseCreate; @@ -183,7 +183,7 @@ export const editDatabase = (params: Database.DatabaseUpdate) => { request.rootCert = Base64.encode(request.rootCert); } - return http.post(`/databases/db/update`, request, TimeoutEnum.T_40S); + return http.post(`/databases/db/update`, request, TimeoutEnum.T_60S); }; export const deleteCheckDatabase = (id: number) => { return http.post>(`/databases/db/del/check`, { id: id }); diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 23530f825..ebb5f05e8 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -488,7 +488,6 @@ const message = { passwordHelper: 'Unable to retrieve, please modify', remote: 'Remote', remoteDB: 'Remote server | Remote servers', - manageRemoteDB: 'Manage remote servers', createRemoteDB: 'Bind @.lower:database.remoteDB', unBindRemoteDB: 'Unbind @.lower:database.remoteDB', unBindForce: 'Force unbind', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index fa8788d5b..92d5fd743 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -474,7 +474,6 @@ const message = { passwordHelper: '取得できない場合は、変更してください', remote: 'リモート', remoteDB: 'リモートサーバー|リモートサーバー', - manageRemoteDB: 'リモートDB', createRemoteDB: 'リモートサーバーを追加', unBindRemoteDB: 'リモートサーバーのバインドを解除', unBindForce: '強制バインド', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 1f91a596f..d053b5528 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -473,7 +473,6 @@ const message = { passwordHelper: '불러올 수 없습니다. 수정해주세요.', remote: '원격', remoteDB: '원격 서버 | 원격 서버들', - manageRemoteDB: '원격 DB 관리', createRemoteDB: '원격 DB 바인딩', unBindRemoteDB: '원격 DB 바인딩 해제', unBindForce: '강제 바인딩 해제', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 1a1e82eb7..af83ecee1 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -485,7 +485,6 @@ const message = { passwordHelper: 'Tidak dapat diambil, sila ubah', remote: 'Jauh', remoteDB: 'Pelayan jauh | Pelayan-pelayan jauh', - manageRemoteDB: 'Pangkalan Data Jauh', createRemoteDB: 'Kaitkan @.lower:database.remoteDB', unBindRemoteDB: 'Nyahkaitkan @.lower:database.remoteDB', unBindForce: 'Paksa nyahkait', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index d3c567749..0ad354cba 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -482,7 +482,6 @@ const message = { passwordHelper: 'Não é possível obter, por favor, modifique', remote: 'Remoto', remoteDB: 'Servidor remoto | Servidores remotos', - manageRemoteDB: 'Gerenciar DB remoto', createRemoteDB: 'Vincular @.lower:database.remoteDB', unBindRemoteDB: 'Desvincular @.lower:database.remoteDB', unBindForce: 'Forçar desvinculação', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 711a3c561..ccdae1e8c 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -476,7 +476,6 @@ const message = { passwordHelper: 'Невозможно получить, пожалуйста, измените', remote: 'Удаленный', remoteDB: 'Удаленный сервер | Удаленные серверы', - manageRemoteDB: 'Удаленная БД', createRemoteDB: 'Привязать @.lower:database.remoteDB', unBindRemoteDB: 'Отвязать @.lower:database.remoteDB', unBindForce: 'Принудительная отвязка', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 06099a0ed..397278dcd 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -494,7 +494,6 @@ const message = { passwordHelper: 'Alınamıyor, lütfen değiştirin', remote: 'Uzak', remoteDB: 'Uzak sunucu | Uzak sunucular', - manageRemoteDB: 'Uzak sunucuları yönet', createRemoteDB: '@.lower:database.remoteDB Bağla', unBindRemoteDB: '@.lower:database.remoteDB Bağlantısını Çöz', unBindForce: 'Zorla bağlantıyı çöz', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 241dbcd03..d3925ece7 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -472,7 +472,6 @@ const message = { passwordHelper: '無法獲取密碼,請修改', remote: '遠程', remoteDB: '遠程服務器', - manageRemoteDB: '管理遠程服務器', createRemoteDB: '添加遠程服務器', unBindRemoteDB: '解綁遠程服務器', unBindForce: '強制解綁', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 0d190f969..e54c4f355 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -470,7 +470,6 @@ const message = { passwordHelper: '无法获取密码,请修改', remote: '远程', remoteDB: '远程服务器', - manageRemoteDB: '管理远程服务器', createRemoteDB: '添加远程服务器', unBindRemoteDB: '解绑远程服务器', unBindForce: '强制解绑', diff --git a/frontend/src/views/database/mysql/index.vue b/frontend/src/views/database/mysql/index.vue index 6b39f84ea..bf33adc1b 100644 --- a/frontend/src/views/database/mysql/index.vue +++ b/frontend/src/views/database/mysql/index.vue @@ -44,7 +44,7 @@ {{ $t('database.loadFromRemote') }} - {{ $t('database.manageRemoteDB') }} + {{ $t('database.remoteDB') }} diff --git a/frontend/src/views/database/postgresql/remote/index.vue b/frontend/src/views/database/postgresql/remote/index.vue index 5b4a817cf..9977083e6 100644 --- a/frontend/src/views/database/postgresql/remote/index.vue +++ b/frontend/src/views/database/postgresql/remote/index.vue @@ -127,12 +127,14 @@ const onOpenDialog = async ( username: '', password: '', description: '', + timeout: 30, }, ) => { let params = { title, rowData: { ...rowData }, }; + params.rowData.timeout = 30; dialogRef.value!.acceptParams(params); }; diff --git a/frontend/src/views/database/postgresql/remote/operate/index.vue b/frontend/src/views/database/postgresql/remote/operate/index.vue index 15223e5fe..57b618bcb 100644 --- a/frontend/src/views/database/postgresql/remote/operate/index.vue +++ b/frontend/src/views/database/postgresql/remote/operate/index.vue @@ -39,6 +39,16 @@ /> + + + diff --git a/frontend/src/views/database/redis/remote/index.vue b/frontend/src/views/database/redis/remote/index.vue index a3ad383e4..8f00813d5 100644 --- a/frontend/src/views/database/redis/remote/index.vue +++ b/frontend/src/views/database/redis/remote/index.vue @@ -127,12 +127,14 @@ const onOpenDialog = async ( username: '-', password: '', description: '', + timeout: 30, }, ) => { let params = { title, rowData: { ...rowData }, }; + params.rowData.timeout = 30; dialogRef.value!.acceptParams(params); }; diff --git a/frontend/src/views/database/redis/remote/operate/index.vue b/frontend/src/views/database/redis/remote/operate/index.vue index 33686cb8b..aa22d76d3 100644 --- a/frontend/src/views/database/redis/remote/operate/index.vue +++ b/frontend/src/views/database/redis/remote/operate/index.vue @@ -33,6 +33,16 @@ v-model.trim="dialogData.rowData!.password" /> + + +