@@ -15,6 +15,9 @@ import (
1515 "github.com/shirou/gopsutil/v3/mem"
1616)
1717
18+ const InitModeNew = "new"
19+ const InitModeExisting = "existing"
20+
1821type Config struct {
1922 InitMode string `json:"initMode"`
2023 ExistingConfig map [string ]string `json:"existingConfig"`
@@ -27,7 +30,7 @@ type KeeperState struct {
2730 ClusterUID string `json:"ClusterUID"`
2831}
2932
30- func InitConfig (filename string ) error {
33+ func InitConfig (filename string ) ( * Config , error ) {
3134 filename , err := filepath .Abs (filename )
3235 if err != nil {
3336 log .Fatalln ("error cleaning filename" , err )
@@ -40,45 +43,45 @@ func InitConfig(filename string) error {
4043 writeJson (os .Stdout , cfg )
4144 // return
4245 } else if ! os .IsNotExist (err ) {
43- return errors .Wrap (err , "error loading cluster spec" )
46+ return nil , errors .Wrap (err , "error loading cluster spec" )
4447 }
4548
4649 mem , err := memTotal ()
4750 if err != nil {
48- return errors .Wrap (err , "error fetching total system memory" )
51+ return nil , errors .Wrap (err , "error fetching total system memory" )
4952 }
5053
5154 fmt .Printf ("system memory: %dmb vcpu count: %d\n " , mem , runtime .NumCPU ())
5255
5356 workMem := max (4 , (mem / 64 ))
5457 maintenanceWorkMem := max (64 , (mem / 20 ))
5558
56- initMode := "new"
59+ initMode := InitModeNew
5760 existingConfig := map [string ]string {}
5861
5962 // Don't blow away postgres directory if it exists.
6063 if _ , err := os .Stat ("/data/postgres" ); err == nil {
61- initMode = "existing"
64+ initMode = InitModeExisting
6265
6366 _ , err = os .Stat ("/data/keeperstate" )
64- if os .IsNotExist (err ) && initMode == "existing" {
67+ if os .IsNotExist (err ) && initMode == InitModeExisting {
6568 // if the keeperstate file does not exist, seed it.
6669 // TODO - There is likely a better way to handle this, may take up to 2 minutes for Stolon
6770 // to re-register the cluster.
6871 data := []byte ("{\" UID\" :\" ab805b922\" }" )
6972 if err = ioutil .WriteFile ("/data/keeperstate" , data , 0644 ); err != nil {
70- return err
73+ return nil , err
7174 }
7275 }
7376
7477 var keeperState KeeperState
7578 data , err := os .ReadFile ("/data/keeperstate" )
7679 if err != nil {
77- return err
80+ return nil , err
7881 }
7982 err = json .Unmarshal (data , & keeperState )
8083 if err != nil {
81- return err
84+ return nil , err
8285 }
8386 if keeperState .UID != "" {
8487 existingConfig ["keeperUID" ] = keeperState .UID
@@ -107,12 +110,12 @@ func InitConfig(filename string) error {
107110 writeJson (os .Stdout , cfg )
108111
109112 if err := writeConfig (filename , cfg ); err != nil {
110- return errors .Wrap (err , "error writing cluster-spec.json" )
113+ return nil , errors .Wrap (err , "error writing cluster-spec.json" )
111114 }
112115
113116 fmt .Println ("generated new config" )
114117
115- return nil
118+ return & cfg , nil
116119}
117120
118121func readConfig (filename string ) (cfg Config , err error ) {
0 commit comments