mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
move from cmd-line to scaffold
This commit is contained in:
parent
1c8bed3810
commit
802a0eb3fe
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
Loading…
Reference in a new issue