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 disableHttp *bool
metricsAddress *string metricsAddress *string
metricsIntervalSec *int metricsIntervalSec *int
sequencerType *string
etcdUrls *string
} }
func init() { func init() {
@ -58,9 +55,6 @@ func init() {
m.disableHttp = cmdMaster.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.") 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.metricsAddress = cmdMaster.Flag.String("metrics.address", "", "Prometheus gateway address")
m.metricsIntervalSec = cmdMaster.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds") 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{ var cmdMaster = &Command{
@ -84,6 +78,7 @@ func runMaster(cmd *Command, args []string) bool {
util.LoadConfiguration("security", false) util.LoadConfiguration("security", false)
util.LoadConfiguration("master", false) util.LoadConfiguration("master", false)
glog.V(0).Infof("%v", viper.GetViper().GetString("master.maintenance.scripts"))
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())
util.SetupProfiling(*masterCpuProfile, *masterMemProfile) util.SetupProfiling(*masterCpuProfile, *masterMemProfile)

View file

@ -346,5 +346,12 @@ scripts = """
""" """
sleep_minutes = 17 # sleep minutes between each script execution 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" "google.golang.org/grpc"
) )
const (
MasterPrefix = "master.maintenance."
SequencerType = MasterPrefix + "sequencer_type"
SequencerEtcdUrls = MasterPrefix + "sequencer_etcd_urls"
)
type MasterOption struct { type MasterOption struct {
Port int Port int
MetaFolder string MetaFolder string
@ -39,9 +45,6 @@ type MasterOption struct {
DisableHttp bool DisableHttp bool
MetricsAddress string MetricsAddress string
MetricsIntervalSec int MetricsIntervalSec int
sequencerType string
etcdUrls string
} }
type MasterServer struct { type MasterServer struct {
@ -172,8 +175,8 @@ func (ms *MasterServer) proxyToLeader(f func(w http.ResponseWriter, r *http.Requ
proxy.Transport = util.Transport proxy.Transport = util.Transport
proxy.ServeHTTP(w, r) proxy.ServeHTTP(w, r)
} else { } else {
//drop it to the floor // drop it to the floor
//writeJsonError(w, r, errors.New(ms.Topo.RaftServer.Name()+" does not know Leader yet:"+ms.Topo.RaftServer.Leader())) // 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 { func (ms *MasterServer) createSequencer(option *MasterOption) sequence.Sequencer {
var seq sequence.Sequencer var seq sequence.Sequencer
glog.V(0).Infof("sequencer type [%s]", option.sequencerType) seqType := strings.ToLower(util.Config().GetString(SequencerType))
switch strings.ToLower(option.sequencerType) { glog.V(0).Infof("sequencer type [%s]", seqType)
switch strings.ToLower(seqType) {
case "memory": case "memory":
seq = sequence.NewMemorySequencer() seq = sequence.NewMemorySequencer()
case "etcd": case "etcd":
var err error 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 { if err != nil {
glog.Error(err) glog.Error(err)
seq = nil seq = nil

View file

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