...

Source file src/edge-infra.dev/pkg/sds/remoteaccess/authserver/db.go

Documentation: edge-infra.dev/pkg/sds/remoteaccess/authserver

     1  package authserver
     2  
     3  import (
     4  	"database/sql"
     5  	"fmt"
     6  
     7  	"edge-infra.dev/pkg/lib/gcp/cloudsql"
     8  )
     9  
    10  func (as *AuthServer) connectDatabase() (*sql.DB, error) {
    11  	edgeDB := &cloudsql.EdgePostgres{}
    12  	switch {
    13  	case as.databaseConnectionName != "":
    14  		edgeDB = cloudsql.GCPPostgresConnection(as.databaseConnectionName)
    15  	case as.databaseConnectionName == "" && as.databaseHost != "":
    16  		if as.databasePort == "" {
    17  			return nil, fmt.Errorf("database port is required")
    18  		}
    19  		edgeDB = cloudsql.PostgresConnection(as.databaseHost, as.databasePort).Password(as.databasePassword)
    20  	default:
    21  		return nil, fmt.Errorf("database_connection_name or database_host must be provided")
    22  	}
    23  	dbConnection, err := edgeDB.
    24  		DBName(as.databaseName).
    25  		Username(as.databaseUsername).
    26  		NewConnection()
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  	if err := dbConnection.Ping(); err != nil {
    31  		return nil, err
    32  	}
    33  	return dbConnection, nil
    34  }
    35  

View as plain text