move from cmd-line to scaffold

This commit is contained in:
stlpmo 2019-11-11 09:15:17 +08:00
parent 1c8bed3810
commit 802a0eb3fe
4 changed files with 33 additions and 15 deletions

View file

@ -37,9 +37,6 @@ type MasterOptions struct {
disableHttp *bool
metricsAddress *string
metricsIntervalSec *int
sequencerType *string
etcdUrls *string
}
func init() {
@ -58,9 +55,6 @@ func init() {
m.disableHttp = cmdMaster.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
m.metricsAddress = cmdMaster.Flag.String("metrics.address", "", "Prometheus gateway address")
m.metricsIntervalSec = cmdMaster.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds")
m.sequencerType = cmdMaster.Flag.String("sequencerType", "memory", "Choose [memory|etcd] type for store the file sequence")
m.etcdUrls = cmdMaster.Flag.String("etcdUrls", "",
"when sequencerType=etcd, set etcdUrls for etcd cluster that store file sequence, example : http://127.0.0.1:2379,http://127.0.0.1:2389")
}
var cmdMaster = &Command{
@ -84,6 +78,7 @@ func runMaster(cmd *Command, args []string) bool {
util.LoadConfiguration("security", false)
util.LoadConfiguration("master", false)
glog.V(0).Infof("%v", viper.GetViper().GetString("master.maintenance.scripts"))
runtime.GOMAXPROCS(runtime.NumCPU())
util.SetupProfiling(*masterCpuProfile, *masterMemProfile)

View file

@ -346,5 +346,12 @@ scripts = """
"""
sleep_minutes = 17 # sleep minutes between each script execution
sequencer.type = memory # Choose [memory|etcd] type for storing the file id sequence
# when sequencer.type = etcd, set listen client urls of etcd cluster that store file id sequence
# example : http://127.0.0.1:2379,http://127.0.0.1:2389
sequencer.etcd.urls = http://127.0.0.1:2379
`
)

View file

@ -27,6 +27,12 @@ import (
"google.golang.org/grpc"
)
const (
MasterPrefix = "master.maintenance."
SequencerType = MasterPrefix + "sequencer_type"
SequencerEtcdUrls = MasterPrefix + "sequencer_etcd_urls"
)
type MasterOption struct {
Port int
MetaFolder string
@ -39,9 +45,6 @@ type MasterOption struct {
DisableHttp bool
MetricsAddress string
MetricsIntervalSec int
sequencerType string
etcdUrls string
}
type MasterServer struct {
@ -172,8 +175,8 @@ func (ms *MasterServer) proxyToLeader(f func(w http.ResponseWriter, r *http.Requ
proxy.Transport = util.Transport
proxy.ServeHTTP(w, r)
} else {
//drop it to the floor
//writeJsonError(w, r, errors.New(ms.Topo.RaftServer.Name()+" does not know Leader yet:"+ms.Topo.RaftServer.Leader()))
// drop it to the floor
// writeJsonError(w, r, errors.New(ms.Topo.RaftServer.Name()+" does not know Leader yet:"+ms.Topo.RaftServer.Leader()))
}
}
}
@ -240,13 +243,16 @@ func (ms *MasterServer) startAdminScripts() {
func (ms *MasterServer) createSequencer(option *MasterOption) sequence.Sequencer {
var seq sequence.Sequencer
glog.V(0).Infof("sequencer type [%s]", option.sequencerType)
switch strings.ToLower(option.sequencerType) {
seqType := strings.ToLower(util.Config().GetString(SequencerType))
glog.V(0).Infof("sequencer type [%s]", seqType)
switch strings.ToLower(seqType) {
case "memory":
seq = sequence.NewMemorySequencer()
case "etcd":
var err error
seq, err = sequence.NewEtcdSequencer(option.etcdUrls, option.MetaFolder)
urls := util.Config().GetString(SequencerEtcdUrls)
glog.V(4).Infof("ETCD urls : %s", urls)
seq, err = sequence.NewEtcdSequencer(urls, option.MetaFolder)
if err != nil {
glog.Error(err)
seq = nil

View file

@ -40,5 +40,15 @@ func LoadConfiguration(configFileName string, required bool) (loaded bool) {
}
return true
}
func Config() Configuration {
return viper.GetViper()
}
func SubConfig(subKey string) Configuration {
if subKey != "" {
return viper.GetViper().Sub(subKey)
}
return viper.GetViper()
}