11package main
22
33import (
4+ "context"
45 "fmt"
56 "log"
67 "time"
78
89 "github.com/0chain/blobber/code/go/0chain.net/blobbercore/config"
10+ "github.com/0chain/blobber/code/go/0chain.net/blobbercore/datastore"
911 "github.com/0chain/blobber/code/go/0chain.net/core/transaction"
1012 "github.com/spf13/viper"
1113)
1214
13- func setupConfig () {
14- fmt .Print ("[2/12] load config" )
15+ func setupConfig (configDir string , deploymentMode int ) {
16+ fmt .Print ("> load config" )
1517 // setup default
1618 config .SetupDefaultConfig ()
1719
1820 // setup config file
1921 config .SetupConfig (configDir )
2022
21- // load config
2223 config .Configuration .DeploymentMode = byte (deploymentMode )
2324 config .Configuration .ChainID = viper .GetString ("server_chain.id" )
2425 config .Configuration .SignatureScheme = viper .GetString ("server_chain.signature_scheme" )
@@ -50,8 +51,6 @@ func setupConfig() {
5051 config .Configuration .MinioWorkerFreq = viper .GetInt64 ("minio.worker_frequency" )
5152 config .Configuration .MinioUseSSL = viper .GetBool ("minio.use_ssl" )
5253
53- config .Configuration .Capacity = viper .GetInt64 ("capacity" )
54-
5554 config .Configuration .DBAutoMigrate = viper .GetBool ("db.automigrate" )
5655 config .Configuration .PGUserName = viper .GetString ("pg.user" )
5756 config .Configuration .PGPassword = viper .GetString ("pg.password" )
@@ -66,13 +65,7 @@ func setupConfig() {
6665 config .Configuration .DBPassword = viper .GetString ("db.password" )
6766 config .Configuration .DBTablesToKeep = viper .GetStringSlice ("db.keep_tables" )
6867
69- config .Configuration .Capacity = viper .GetInt64 ("capacity" )
70- config .Configuration .ReadPrice = viper .GetFloat64 ("read_price" )
71- config .Configuration .WritePrice = viper .GetFloat64 ("write_price" )
7268 config .Configuration .PriceInUSD = viper .GetBool ("price_in_usd" )
73- config .Configuration .MinLockDemand = viper .GetFloat64 ("min_lock_demand" )
74- config .Configuration .MaxOfferDuration = viper .GetDuration ("max_offer_duration" )
75- config .Configuration .ChallengeCompletionTime = viper .GetDuration ("challenge_completion_time" )
7669
7770 config .Configuration .ReadLockTimeout = int64 (
7871 viper .GetDuration ("read_lock_timeout" ) / time .Second ,
@@ -90,10 +83,6 @@ func setupConfig() {
9083 if w := config .Configuration .DelegateWallet ; len (w ) != 64 {
9184 log .Fatal ("invalid delegate wallet:" , w )
9285 }
93- config .Configuration .MinStake = int64 (viper .GetFloat64 ("min_stake" ) * 1e10 )
94- config .Configuration .MaxStake = int64 (viper .GetFloat64 ("max_stake" ) * 1e10 )
95- config .Configuration .NumDelegates = viper .GetInt ("num_delegates" )
96- config .Configuration .ServiceCharge = viper .GetFloat64 ("service_charge" )
9786
9887 config .Configuration .MinSubmit = viper .GetInt ("min_submit" )
9988 if config .Configuration .MinSubmit < 1 {
@@ -117,3 +106,36 @@ func setupConfig() {
117106
118107 fmt .Print (" [OK]\n " )
119108}
109+
110+ func reloadConfig () error {
111+ fmt .Print ("> reload config" )
112+
113+ db := datastore .GetStore ().GetDB ()
114+
115+ s , ok := config .Get (context .TODO (), db )
116+ if ok {
117+ if err := s .CopyTo (& config .Configuration ); err != nil {
118+ return err
119+ }
120+ fmt .Print (" [OK]\n " )
121+ return nil
122+ }
123+
124+ config .Configuration .Capacity = viper .GetInt64 ("capacity" )
125+ config .Configuration .ChallengeCompletionTime = viper .GetDuration ("challenge_completion_time" )
126+ config .Configuration .MaxOfferDuration = viper .GetDuration ("max_offer_duration" )
127+ config .Configuration .MaxStake = int64 (viper .GetFloat64 ("max_stake" ) * 1e10 )
128+ config .Configuration .MinLockDemand = viper .GetFloat64 ("min_lock_demand" )
129+ config .Configuration .MinStake = int64 (viper .GetFloat64 ("min_stake" ) * 1e10 )
130+ config .Configuration .NumDelegates = viper .GetInt ("num_delegates" )
131+ config .Configuration .ReadPrice = viper .GetFloat64 ("read_price" )
132+ config .Configuration .ServiceCharge = viper .GetFloat64 ("service_charge" )
133+ config .Configuration .WritePrice = viper .GetFloat64 ("write_price" )
134+
135+ if err := config .Update (context .TODO (), db ); err != nil {
136+ return err
137+ }
138+
139+ fmt .Print (" [OK]\n " )
140+ return nil
141+ }
0 commit comments