Skip to content

Commit d19bf02

Browse files
committed
Cluster: Use creds.Driver instead of provisioner.DatabaseDriver
Signed-off-by: Michael Mayer <michael@photoprism.app>
1 parent 04aaf51 commit d19bf02

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

internal/api/cluster_nodes_register.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ func ClusterNodesRegister(router *gin.RouterGroup) {
245245

246246
n.Database.Name = creds.Name
247247
n.Database.User = creds.User
248-
n.Database.Driver = provisioner.DatabaseDriver
248+
n.Database.Driver = creds.Driver
249249
if creds.RotatedAt != "" {
250250
n.Database.RotatedAt = creds.RotatedAt
251251
}
@@ -281,7 +281,11 @@ func ClusterNodesRegister(router *gin.RouterGroup) {
281281
}
282282

283283
if n.Database != nil {
284-
resp.Database = cluster.RegisterDatabase{Host: conf.DatabaseHost(), Port: conf.DatabasePort(), Name: n.Database.Name, User: n.Database.User, Driver: provisioner.DatabaseDriver, RotatedAt: n.Database.RotatedAt}
284+
driver := n.Database.Driver
285+
if driver == "" {
286+
driver = provisioner.DatabaseDriver
287+
}
288+
resp.Database = cluster.RegisterDatabase{Host: conf.DatabaseHost(), Port: conf.DatabasePort(), Name: n.Database.Name, User: n.Database.User, Driver: driver, RotatedAt: n.Database.RotatedAt}
285289
}
286290

287291
// Include password/dsn only if rotated now.
@@ -343,7 +347,7 @@ func ClusterNodesRegister(router *gin.RouterGroup) {
343347
}
344348

345349
n.Database.Name, n.Database.User, n.Database.RotatedAt = creds.Name, creds.User, creds.RotatedAt
346-
n.Database.Driver = provisioner.DatabaseDriver
350+
n.Database.Driver = creds.Driver
347351
}
348352

349353
if err = regy.Put(n); err != nil {
@@ -368,7 +372,7 @@ func ClusterNodesRegister(router *gin.RouterGroup) {
368372

369373
// If DB provisioning is skipped, leave Database fields zero-value.
370374
if shouldProvisionDB {
371-
resp.Database = cluster.RegisterDatabase{Host: conf.DatabaseHost(), Port: conf.DatabasePort(), Name: creds.Name, User: creds.User, Driver: provisioner.DatabaseDriver, Password: creds.Password, DSN: creds.DSN, RotatedAt: creds.RotatedAt}
375+
resp.Database = cluster.RegisterDatabase{Host: conf.DatabaseHost(), Port: conf.DatabasePort(), Name: creds.Name, User: creds.User, Driver: creds.Driver, Password: creds.Password, DSN: creds.DSN, RotatedAt: creds.RotatedAt}
372376
}
373377

374378
event.AuditInfo([]string{clientIp, string(acl.ResourceCluster), "node", "%s", status.Joined}, clean.Log(name))

internal/service/cluster/provisioner/credentials.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func EnsureCredentials(ctx context.Context, conf *config.Config, nodeUUID, nodeN
6262
{
6363
c, cancel := context.WithTimeout(ctx, 10*time.Second)
6464
defer cancel()
65-
if err := db.QueryRowContext(
65+
if err = db.QueryRowContext(
6666
c,
6767
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?",
6868
dbName,
@@ -78,7 +78,7 @@ func EnsureCredentials(ctx context.Context, conf *config.Config, nodeUUID, nodeN
7878
return out, created, err
7979
}
8080
createDB := "CREATE DATABASE IF NOT EXISTS " + qDB + " CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"
81-
if err := execTimeout(ctx, db, 15*time.Second, createDB); err != nil {
81+
if err = execTimeout(ctx, db, 15*time.Second, createDB); err != nil {
8282
return out, created, err
8383
}
8484

@@ -93,14 +93,14 @@ func EnsureCredentials(ctx context.Context, conf *config.Config, nodeUUID, nodeN
9393
}
9494

9595
createUser := "CREATE USER IF NOT EXISTS " + acc + " IDENTIFIED BY " + pass
96-
if err := execTimeout(ctx, db, 10*time.Second, createUser); err != nil {
96+
if err = execTimeout(ctx, db, 10*time.Second, createUser); err != nil {
9797
return out, created, err
9898
}
9999

100100
// 4) Rotate or set password explicitly on first creation.
101101
if rotate || created {
102102
alterUser := "ALTER USER " + acc + " IDENTIFIED BY " + pass
103-
if err := execTimeout(ctx, db, 10*time.Second, alterUser); err != nil {
103+
if err = execTimeout(ctx, db, 10*time.Second, alterUser); err != nil {
104104
return out, created, err
105105
}
106106
out.Password = dbPass
@@ -109,12 +109,12 @@ func EnsureCredentials(ctx context.Context, conf *config.Config, nodeUUID, nodeN
109109

110110
// 5) Grant privileges on schema.
111111
grant := "GRANT ALL PRIVILEGES ON " + qDB + ".* TO " + acc
112-
if err := execTimeout(ctx, db, 10*time.Second, grant); err != nil {
112+
if err = execTimeout(ctx, db, 10*time.Second, grant); err != nil {
113113
return out, created, err
114114
}
115115

116116
// 6) Optional on modern MariaDB/MySQL; harmless if included.
117-
if err := execTimeout(ctx, db, 5*time.Second, "FLUSH PRIVILEGES"); err != nil {
117+
if err = execTimeout(ctx, db, 5*time.Second, "FLUSH PRIVILEGES"); err != nil {
118118
return out, created, err
119119
}
120120

0 commit comments

Comments
 (0)