From 1bf4e40caf5fb08b68b8068d5f8eaa81a23c7632 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Wed, 3 Jul 2024 15:38:07 +0200 Subject: [PATCH] Fix demoted user cannot execute metal-db health check. (#543) * Fix demoted user cannot execute metal-db health check. * Use ctx. --- cmd/metal-api/internal/datastore/health.go | 2 +- cmd/metal-api/internal/datastore/rethinkdb.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/metal-api/internal/datastore/health.go b/cmd/metal-api/internal/datastore/health.go index 85e1460b6..bff42e8ae 100644 --- a/cmd/metal-api/internal/datastore/health.go +++ b/cmd/metal-api/internal/datastore/health.go @@ -40,7 +40,7 @@ func (rs *RethinkStore) Check(ctx context.Context) (rest.HealthResult, error) { return returnStatus(err) } - cursor, err := r.DB("rethinkdb").Table("server_status").Field("process").Field("version").Run(rs.session) + cursor, err := r.DB("rethinkdb").Table("server_status").Field("process").Field("version").Run(rs.session, r.RunOpts{Context: ctx}) if err != nil { return returnStatus(err) } diff --git a/cmd/metal-api/internal/datastore/rethinkdb.go b/cmd/metal-api/internal/datastore/rethinkdb.go index 82512f81e..38cbc07ca 100644 --- a/cmd/metal-api/internal/datastore/rethinkdb.go +++ b/cmd/metal-api/internal/datastore/rethinkdb.go @@ -140,6 +140,10 @@ func (rs *RethinkStore) initializeTables(opts r.TableCreateOpts) error { if err != nil { return err } + _, err = r.DB("rethinkdb").Grant(DemotedUser, map[string]interface{}{"read": true}).RunWrite(rs.session) + if err != nil { + return err + } // integer pools err = rs.GetVRFPool().initIntegerPool(rs.log)