fix iitial filer url

This commit is contained in:
Chris Lu 2019-10-25 07:44:37 -07:00
parent 05fe7a2366
commit 288c45a690
2 changed files with 39 additions and 10 deletions

View File

@ -1,6 +1,11 @@
package command
import (
"fmt"
"net/url"
"strconv"
"strings"
"github.com/chrislusf/seaweedfs/weed/security"
"github.com/chrislusf/seaweedfs/weed/shell"
"github.com/chrislusf/seaweedfs/weed/util"
@ -8,18 +13,15 @@ import (
)
var (
shellOptions shell.ShellOptions
shellOptions shell.ShellOptions
shellInitialFilerUrl *string
)
func init() {
cmdShell.Run = runShell // break init cycle
shellOptions.Masters = cmdShell.Flag.String("master", "localhost:9333", "comma-separated master servers")
filerHost := cmdShell.Flag.String("filer.host", "localhost", "comma-separated filer server host")
flierPort := cmdShell.Flag.Int64("filer.port", 8888, "comma-separated filer server port")
directory := cmdShell.Flag.String("filer.dir", "/", "comma-separated filer server directory")
shellOptions.FilerHost = *filerHost
shellOptions.FilerPort = *flierPort
shellOptions.Directory = *directory
shellInitialFilerUrl = cmdShell.Flag.String("filer.url", "http://localhost:8888/", "initial filer url")
}
var cmdShell = &Command{
@ -36,8 +38,35 @@ func runShell(command *Command, args []string) bool {
util.LoadConfiguration("security", false)
shellOptions.GrpcDialOption = security.LoadClientTLS(viper.Sub("grpc"), "client")
var filerPwdErr error
shellOptions.FilerHost, shellOptions.FilerPort, shellOptions.Directory, filerPwdErr = parseFilerUrl(*shellInitialFilerUrl)
if filerPwdErr != nil {
fmt.Printf("failed to parse url filer.url=%s : %v\n", *shellInitialFilerUrl, filerPwdErr)
return false
}
shell.RunShell(shellOptions)
return true
}
}
func parseFilerUrl(entryPath string) (filerServer string, filerPort int64, path string, err error) {
if !strings.HasPrefix(entryPath, "http://") && !strings.HasPrefix(entryPath, "https://") {
entryPath = "http://" + entryPath
}
var u *url.URL
u, err = url.Parse(entryPath)
if err != nil {
return
}
filerServer = u.Hostname()
portString := u.Port()
if portString != "" {
filerPort, err = strconv.ParseInt(portString, 10, 32)
}
path = u.Path
return
}

View File

@ -16,8 +16,8 @@ import (
)
type ShellOptions struct {
Masters *string
GrpcDialOption grpc.DialOption
Masters *string
GrpcDialOption grpc.DialOption
// shell transient context
FilerHost string
FilerPort int64