From 79eb1ca3a3fafa1869f4a40c2b1afb14891b4e68 Mon Sep 17 00:00:00 2001 From: Diogo Nicoleti Date: Wed, 8 Jul 2020 15:19:29 -0300 Subject: [PATCH 1/2] Add new param to set the role in a new connection --- internal/praefect/config/config.go | 4 ++++ internal/praefect/config/config_test.go | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/internal/praefect/config/config.go b/internal/praefect/config/config.go index 31b1b4d256..db433f8c93 100644 --- a/internal/praefect/config/config.go +++ b/internal/praefect/config/config.go @@ -178,6 +178,7 @@ type DB struct { Port int `toml:"port"` User string `toml:"user"` Password string `toml:"password"` + Role string `toml:"role"` DBName string `toml:"dbname"` SSLMode string `toml:"sslmode"` SSLCert string `toml:"sslcert"` @@ -192,6 +193,9 @@ func (db DB) ToPQString() string { if db.Port > 0 { fields = append(fields, fmt.Sprintf("port=%d", db.Port)) } + if db.Role != "" { + fields = append(fields, fmt.Sprintf("role=%s", db.Role)) + } for _, kv := range []struct{ key, value string }{ {"host", db.Host}, diff --git a/internal/praefect/config/config_test.go b/internal/praefect/config/config_test.go index 1ffde42eef..432c0a0bfe 100644 --- a/internal/praefect/config/config_test.go +++ b/internal/praefect/config/config_test.go @@ -365,6 +365,13 @@ func TestToPQString(t *testing.T) { }, out: `statement_timeout=0 password=secret\ foo\'bar binary_parameters=yes`, }, + { + desc: "with role defined", + in: DB{ + Role: "praefect-owner", + }, + out: `statement_timeout=0 role=praefect-owner binary_parameters=yes`, + }, } for _, tc := range testCases { -- GitLab From df08023500427b02786836d39975729c8e0150a4 Mon Sep 17 00:00:00 2001 From: Diogo Nicoleti Date: Fri, 10 Jul 2020 11:06:43 -0300 Subject: [PATCH 2/2] improving code --- internal/praefect/config/config.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/praefect/config/config.go b/internal/praefect/config/config.go index db433f8c93..6e26cd8c54 100644 --- a/internal/praefect/config/config.go +++ b/internal/praefect/config/config.go @@ -193,14 +193,12 @@ func (db DB) ToPQString() string { if db.Port > 0 { fields = append(fields, fmt.Sprintf("port=%d", db.Port)) } - if db.Role != "" { - fields = append(fields, fmt.Sprintf("role=%s", db.Role)) - } for _, kv := range []struct{ key, value string }{ {"host", db.Host}, {"user", db.User}, {"password", db.Password}, + {"role", db.Role}, {"dbname", db.DBName}, {"sslmode", db.SSLMode}, {"sslcert", db.SSLCert}, -- GitLab