github.com/chenbh/concourse/v6@v6.4.2/skymarshal/storage/storage.go (about)

     1  package storage
     2  
     3  import (
     4  	"code.cloudfoundry.org/lager"
     5  	"github.com/chenbh/concourse/v6/skymarshal/logger"
     6  	"github.com/concourse/dex/storage"
     7  	"github.com/concourse/dex/storage/sql"
     8  	"github.com/concourse/flag"
     9  )
    10  
    11  type Storage interface {
    12  	storage.Storage
    13  }
    14  
    15  func NewPostgresStorage(log lager.Logger, postgres flag.PostgresConfig) (Storage, error) {
    16  	var host string
    17  
    18  	if postgres.Socket != "" {
    19  		host = postgres.Socket
    20  	} else {
    21  		host = postgres.Host
    22  	}
    23  
    24  	store := sql.Postgres{
    25  		Database: postgres.Database,
    26  		User:     postgres.User,
    27  		Password: postgres.Password,
    28  		Host:     host,
    29  		Port:     postgres.Port,
    30  		SSL: sql.PostgresSSL{
    31  			Mode:     postgres.SSLMode,
    32  			CAFile:   string(postgres.CACert),
    33  			CertFile: string(postgres.ClientCert),
    34  			KeyFile:  string(postgres.ClientKey),
    35  		},
    36  		ConnectionTimeout: int(postgres.ConnectTimeout.Seconds()),
    37  	}
    38  
    39  	return store.Open(logger.New(log))
    40  }