Skip to content

Commit

Permalink
Refactor configuration loading and database connection in api/main.go
Browse files Browse the repository at this point in the history
 • Implement VCAP configuration reader for loading config
 • Streamline error handling for configuration and database initialization
 • Update references from conf.DB to conf.Db to match case changes
 • Modify PublicApiServer to use s.conf.Server instead of s.conf.PublicApiServer
  • Loading branch information
bonzofenix committed Oct 18, 2024
1 parent ec54859 commit 9db24ff
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
26 changes: 12 additions & 14 deletions src/autoscaler/api/cmd/api/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/api/config"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/api/publicapiserver"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/cf"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/configutil"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/cred_helper"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/db"
"code.cloudfoundry.org/app-autoscaler/src/autoscaler/db/sqldb"
Expand All @@ -26,26 +27,23 @@ import (

func main() {
var path string
var err error
var conf *config.Config

flag.StringVar(&path, "c", "", "config file")
flag.Parse()
if path == "" {
_, _ = fmt.Fprintln(os.Stderr, "missing config file")
os.Exit(1)
}

configFile, err := os.Open(path)
vcapConfiguration, err := configutil.NewVCAPConfigurationReader()
if err != nil {
_, _ = fmt.Fprintf(os.Stdout, "failed to open config file '%s' : %s\n", path, err.Error())
_, _ = fmt.Fprintf(os.Stdout, "failed to read vcap configuration : %s\n", err.Error())
os.Exit(1)
}

var conf *config.Config
conf, err = config.LoadConfig(configFile)
conf, err = config.LoadConfig(path, vcapConfiguration)
if err != nil {
_, _ = fmt.Fprintf(os.Stdout, "failed to read config file '%s' : %s\n", path, err.Error())
os.Exit(1)
}
_ = configFile.Close()

err = conf.Validate()
if err != nil {
Expand All @@ -59,11 +57,11 @@ func main() {

members := grouper.Members{}

policyDb := sqldb.CreatePolicyDb(conf.DB[db.PolicyDb], logger)
policyDb := sqldb.CreatePolicyDb(conf.Db[db.PolicyDb], logger)
defer func() { _ = policyDb.Close() }()
logger.Debug("Connected to PolicyDB", lager.Data{"dbConfig": conf.DB[db.PolicyDb]})
logger.Debug("Connected to PolicyDB", lager.Data{"dbConfig": conf.Db[db.PolicyDb]})

credentialProvider := cred_helper.CredentialsProvider(conf.CredHelperImpl, conf.StoredProcedureConfig, conf.DB, 10*time.Second, 10*time.Minute, logger, policyDb)
credentialProvider := cred_helper.CredentialsProvider(conf.CredHelperImpl, conf.StoredProcedureConfig, conf.Db, 10*time.Second, 10*time.Minute, logger, policyDb)
defer func() { _ = credentialProvider.Close() }()

httpStatusCollector := healthendpoint.NewHTTPStatusCollector("autoscaler", "golangapiserver")
Expand All @@ -77,9 +75,9 @@ func main() {
}
logger.Debug("Successfully logged into CF", lager.Data{"API": conf.CF.API})

bindingDB, err := sqldb.NewBindingSQLDB(conf.DB[db.BindingDb], logger.Session("bindingdb-db"))
bindingDB, err := sqldb.NewBindingSQLDB(conf.Db[db.BindingDb], logger.Session("bindingdb-db"))
if err != nil {
logger.Error("failed to connect bindingdb database", err, lager.Data{"dbConfig": conf.DB[db.BindingDb]})
logger.Error("failed to connect bindingdb database", err, lager.Data{"dbConfig": conf.Db[db.BindingDb]})
os.Exit(1)
}
defer func() { _ = bindingDB.Close() }()
Expand Down
2 changes: 1 addition & 1 deletion src/autoscaler/api/publicapiserver/public_api_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func (s *PublicApiServer) GetMtlsServer() (ifrit.Runner, error) {

mainRouter := setupMainRouter(r, healthRouter)

return helpers.NewHTTPServer(s.logger, s.conf.PublicApiServer, mainRouter)
return helpers.NewHTTPServer(s.logger, s.conf.Server, mainRouter)
}

func NewPublicApiServer(logger lager.Logger, conf *config.Config, policyDB db.PolicyDB,
Expand Down

0 comments on commit 9db24ff

Please sign in to comment.