Skip to content

Commit b35c145

Browse files
committed
fix: Fix the issue of remote database connection failure
1 parent b3350b5 commit b35c145

File tree

4 files changed

+34
-32
lines changed

4 files changed

+34
-32
lines changed

agent/app/dto/database.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ type DatabaseInfo struct {
258258
Version string `json:"version"`
259259
Address string `json:"address"`
260260
Port uint `json:"port"`
261+
InitialDB string `json:"initialDB"`
261262
Username string `json:"username"`
262263
Password string `json:"password"`
263264

@@ -309,13 +310,14 @@ type DatabaseCreate struct {
309310
}
310311

311312
type DatabaseUpdate struct {
312-
ID uint `json:"id"`
313-
Type string `json:"type" validate:"required"`
314-
Version string `json:"version" validate:"required"`
315-
Address string `json:"address"`
316-
Port uint `json:"port"`
317-
Username string `json:"username" validate:"required"`
318-
Password string `json:"password"`
313+
ID uint `json:"id"`
314+
Type string `json:"type" validate:"required"`
315+
Version string `json:"version" validate:"required"`
316+
Address string `json:"address"`
317+
Port uint `json:"port"`
318+
InitialDB string `json:"initialDB"`
319+
Username string `json:"username" validate:"required"`
320+
Password string `json:"password"`
319321

320322
SSL bool `json:"ssl"`
321323
RootCert string `json:"rootCert"`

agent/app/service/database.go

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,10 @@ func (u *DatabaseService) CheckDatabase(req dto.DatabaseCreate) bool {
119119
if req.Timeout == 0 {
120120
req.Timeout = 30
121121
}
122+
var err error
122123
switch req.Type {
123124
case constant.AppPostgresql:
124-
_, err := postgresql.NewPostgresqlClient(pgclient.DBInfo{
125+
_, err = postgresql.NewPostgresqlClient(pgclient.DBInfo{
125126
From: "remote",
126127
Address: req.Address,
127128
Port: req.Port,
@@ -130,17 +131,15 @@ func (u *DatabaseService) CheckDatabase(req dto.DatabaseCreate) bool {
130131
Password: req.Password,
131132
Timeout: req.Timeout,
132133
})
133-
return err == nil
134134
case constant.AppRedis:
135-
_, err := redisclient.NewRedisClient(redisclient.DBInfo{
135+
_, err = redisclient.NewRedisClient(redisclient.DBInfo{
136136
Address: req.Address,
137137
Port: req.Port,
138138
Password: req.Password,
139139
Timeout: req.Timeout,
140140
})
141-
return err == nil
142141
case "mysql", "mariadb":
143-
_, err := mysql.NewMysqlClient(client.DBInfo{
142+
_, err = mysql.NewMysqlClient(client.DBInfo{
144143
From: "remote",
145144
Address: req.Address,
146145
Port: req.Port,
@@ -154,10 +153,13 @@ func (u *DatabaseService) CheckDatabase(req dto.DatabaseCreate) bool {
154153
SkipVerify: req.SkipVerify,
155154
Timeout: req.Timeout,
156155
})
157-
return err == nil
156+
}
157+
if err != nil {
158+
global.LOG.Errorf("check database connection failed, err: %v", err)
159+
return false
158160
}
159161

160-
return false
162+
return true
161163
}
162164

163165
func (u *DatabaseService) Create(req dto.DatabaseCreate) error {
@@ -174,12 +176,13 @@ func (u *DatabaseService) Create(req dto.DatabaseCreate) error {
174176
switch req.Type {
175177
case constant.AppPostgresql:
176178
if _, err := postgresql.NewPostgresqlClient(pgclient.DBInfo{
177-
From: "remote",
178-
Address: req.Address,
179-
Port: req.Port,
180-
Username: req.Username,
181-
Password: req.Password,
182-
Timeout: req.Timeout,
179+
From: "remote",
180+
Address: req.Address,
181+
Port: req.Port,
182+
InitialDB: req.InitialDB,
183+
Username: req.Username,
184+
Password: req.Password,
185+
Timeout: req.Timeout,
183186
}); err != nil {
184187
return err
185188
}
@@ -275,12 +278,13 @@ func (u *DatabaseService) Update(req dto.DatabaseUpdate) error {
275278
switch req.Type {
276279
case constant.AppPostgresql:
277280
if _, err := postgresql.NewPostgresqlClient(pgclient.DBInfo{
278-
From: "remote",
279-
Address: req.Address,
280-
Port: req.Port,
281-
Username: req.Username,
282-
Password: req.Password,
283-
Timeout: req.Timeout,
281+
From: "remote",
282+
Address: req.Address,
283+
Port: req.Port,
284+
InitialDB: req.InitialDB,
285+
Username: req.Username,
286+
Password: req.Password,
287+
Timeout: req.Timeout,
284288
}); err != nil {
285289
return err
286290
}

agent/app/service/database_mysql.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (u *MysqlService) Create(ctx context.Context, req dto.MysqlDBCreate) (*mode
115115
}
116116

117117
if req.From == "local" && req.Username == "root" {
118-
return nil, errors.New("Cannot set root as user name")
118+
return nil, errors.New("cannot set root as user name")
119119
}
120120

121121
cli, version, err := LoadMysqlClientByFrom(req.Database)

agent/app/service/database_postgresql.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/1Panel-dev/1Panel/agent/utils/postgresql/client"
2222
_ "github.com/jackc/pgx/v5/stdlib"
2323
"github.com/jinzhu/copier"
24-
"github.com/pkg/errors"
2524
)
2625

2726
type PostgresqlService struct{}
@@ -138,10 +137,6 @@ func (u *PostgresqlService) Create(ctx context.Context, req dto.PostgresqlDBCrea
138137
return nil, buserr.WithDetail("ErrStructTransform", err.Error(), nil)
139138
}
140139

141-
if req.From == "local" && req.Username == "root" {
142-
return nil, errors.New("Cannot set root as user name")
143-
}
144-
145140
cli, err := LoadPostgresqlClientByFrom(req.Database)
146141
if err != nil {
147142
return nil, err
@@ -185,6 +180,7 @@ func LoadPostgresqlClientByFrom(database string) (postgresql.PostgresqlClient, e
185180
dbInfo.Port = databaseItem.Port
186181
dbInfo.Username = databaseItem.Username
187182
dbInfo.Password = databaseItem.Password
183+
dbInfo.InitialDB = databaseItem.InitialDB
188184
} else {
189185
app, err := appInstallRepo.LoadBaseInfo(databaseItem.Type, database)
190186
if err != nil {

0 commit comments

Comments
 (0)