Skip to content

Commit

Permalink
chore: rsources tests - postgres resources use different creds (#3919)
Browse files Browse the repository at this point in the history
  • Loading branch information
Sidddddarth authored Sep 28, 2023
1 parent e08decb commit 7ca721c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion services/rsources/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ func setupFailedKeysTable(ctx context.Context, db *sql.DB, defaultDbName string,
_, err := db.ExecContext(ctx, sqlStatement)
if err != nil {
if pqError, ok := err.(*pq.Error); ok && pqError.Code == "42P07" {
log.Debugf("table rsources_stats already exists in %s", defaultDbName)
log.Debugf("table rsources_failed_keys already exists in %s", defaultDbName)
} else {
return err
}
Expand Down
23 changes: 13 additions & 10 deletions services/rsources/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -889,14 +889,15 @@ var _ = Describe("Using sources handler", func() {
_, err = databaseB.ExecContext(context.TODO(), publicationQuery)
Expect(err).NotTo(HaveOccurred())

normalizedHostnameA := replSlotDisallowedChars.ReplaceAllString(strings.ToLower(configA.LocalHostname), "_")
normalizedHostnameB := replSlotDisallowedChars.ReplaceAllString(strings.ToLower(configB.LocalHostname), "_")
subscriptionAName := fmt.Sprintf("%s_rsources_stats_sub", normalizedHostnameA)
subscriptionBName := fmt.Sprintf("%s_rsources_stats_sub", normalizedHostnameB)
subscriptionQuery := `CREATE SUBSCRIPTION "%s" CONNECTION '%s' PUBLICATION "rsources_stats_pub"`

normalizedHostnameA := replSlotDisallowedChars.ReplaceAllString(strings.ToLower(configA.LocalHostname), "_")
subscriptionAName := fmt.Sprintf("%s_rsources_stats_sub", normalizedHostnameA)
_, err = databaseC.ExecContext(context.Background(), fmt.Sprintf(subscriptionQuery, subscriptionAName, pgA.internalDSN))
Expect(err).NotTo(HaveOccurred())

normalizedHostnameB := replSlotDisallowedChars.ReplaceAllString(strings.ToLower(configB.LocalHostname), "_")
subscriptionBName := fmt.Sprintf("%s_rsources_stats_sub", normalizedHostnameB)
_, err = databaseC.ExecContext(context.Background(), fmt.Sprintf(subscriptionQuery, subscriptionBName, pgB.internalDSN))
Expect(err).NotTo(HaveOccurred())

Expand Down Expand Up @@ -1030,22 +1031,24 @@ func newJobRunId() string {
}

func newDBResource(pool *dockertest.Pool, networkId, hostname string, params ...string) postgresResource {
database := "jobsdb"
cmd := []string{"postgres"}
if len(params) > 0 {
cmd = append(cmd, "-c")
cmd = append(cmd, params...)
}
username := rand.String(10)
password := rand.String(10)
database := rand.String(10)
// pulls an image, creates a container based on it and runs it
resource, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: "postgres",
Tag: "15-alpine",
NetworkID: networkId,
Hostname: hostname,
Env: []string{
"POSTGRES_PASSWORD=password",
"POSTGRES_PASSWORD=" + password,
"POSTGRES_DB=" + database,
"POSTGRES_USER=rudder",
"POSTGRES_USER=" + username,
},
Cmd: cmd,
})
Expand All @@ -1054,11 +1057,11 @@ func newDBResource(pool *dockertest.Pool, networkId, hostname string, params ...
}

port := resource.GetPort("5432/tcp")
externalDSN := fmt.Sprintf("postgres://rudder:password@localhost:%s/%s?sslmode=disable", port, database)
internalDSN := fmt.Sprintf("postgres://rudder:password@%s:5432/%s?sslmode=disable", hostname, database)
externalDSN := fmt.Sprintf("postgres://%[1]s:%[2]s@localhost:%[3]s/%[4]s?sslmode=disable", username, password, port, database)
internalDSN := fmt.Sprintf("postgres://%[1]s:%[2]s@%[3]s:5432/%[4]s?sslmode=disable", username, password, hostname, database)
var (
db *sql.DB
dsn = fmt.Sprintf("host=localhost port=%s user=rudder password=password dbname=jobsdb sslmode=disable", port)
dsn = fmt.Sprintf("host=localhost port=%[1]s user=%[2]s password=%[3]s dbname=%[4]s sslmode=disable", port, username, password, database)
)
// exponential backoff-retry, because the application in the container might not be ready to accept connections yet
if err := pool.Retry(func() (err error) {
Expand Down

0 comments on commit 7ca721c

Please sign in to comment.