github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/skymarshal/storage/storage.go (about)

     1  package storage
     2  
     3  import (
     4  	"code.cloudfoundry.org/lager"
     5  	"github.com/pf-qiu/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  		NetworkDB: sql.NetworkDB{
    26  			Database:          postgres.Database,
    27  			User:              postgres.User,
    28  			Password:          postgres.Password,
    29  			Host:              host,
    30  			Port:              postgres.Port,
    31  			ConnectionTimeout: int(postgres.ConnectTimeout.Seconds()),
    32  		},
    33  		SSL: sql.SSL{
    34  			Mode:     postgres.SSLMode,
    35  			CAFile:   string(postgres.CACert),
    36  			CertFile: string(postgres.ClientCert),
    37  			KeyFile:  string(postgres.ClientKey),
    38  		},
    39  	}
    40  
    41  	return store.Open(logger.New(log))
    42  }