diff --git a/cmd/admin-lock-clear.go b/cmd/admin-lock-clear.go index dfabf3c0..f87ae5e6 100644 --- a/cmd/admin-lock-clear.go +++ b/cmd/admin-lock-clear.go @@ -117,9 +117,7 @@ func mainAdminLockClear(ctx *cli.Context) error { // Create a new Minio Admin Client client, err := newAdminClient(aliasedURL) - if err != nil { - return err.ToGoError() - } + fatalIf(err, "Cannot get a configured admin connection.") aliasedURL = filepath.ToSlash(aliasedURL) diff --git a/cmd/admin-lock-list.go b/cmd/admin-lock-list.go index 600f290f..09af6de3 100644 --- a/cmd/admin-lock-list.go +++ b/cmd/admin-lock-list.go @@ -117,9 +117,7 @@ func mainAdminLockList(ctx *cli.Context) error { // Create a new Minio Admin Client client, err := newAdminClient(aliasedURL) - if err != nil { - return err.ToGoError() - } + fatalIf(err, "Cannot get a configured admin connection.") aliasedURL = filepath.ToSlash(aliasedURL) diff --git a/cmd/admin-service-restart.go b/cmd/admin-service-restart.go index fb97db11..049c4b7a 100644 --- a/cmd/admin-service-restart.go +++ b/cmd/admin-service-restart.go @@ -67,9 +67,7 @@ func mainAdminServiceRestart(ctx *cli.Context) error { aliasedURL := args.Get(0) client, err := newAdminClient(aliasedURL) - if err != nil { - return err.ToGoError() - } + fatalIf(err, "Cannot get a configured admin connection.") // Restart the specified Minio server e := client.ServiceRestart() diff --git a/cmd/admin-service-status.go b/cmd/admin-service-status.go index fbd7a97f..fde31b76 100644 --- a/cmd/admin-service-status.go +++ b/cmd/admin-service-status.go @@ -97,9 +97,7 @@ func mainAdminServiceStatus(ctx *cli.Context) error { // Create a new Minio Admin Client client, err := newAdminClient(aliasedURL) - if err != nil { - return err.ToGoError() - } + fatalIf(err, "Cannot get a configured admin connection.") // Fetch the storage info of the specified Minio server status, e := client.ServiceStatus() diff --git a/cmd/admin-service-stop.go b/cmd/admin-service-stop.go index ed6a519a..8170728f 100644 --- a/cmd/admin-service-stop.go +++ b/cmd/admin-service-stop.go @@ -68,9 +68,7 @@ func mainAdminServiceStop(ctx *cli.Context) error { // Create a new Minio Admin Client client, err := newAdminClient(aliasedURL) - if err != nil { - return err.ToGoError() - } + fatalIf(err, "Cannot get a configured admin connection.") // Stop the specified Minio server e := client.ServiceStop() diff --git a/cmd/client-admin.go b/cmd/client-admin.go index 7bc94776..ec874c06 100644 --- a/cmd/client-admin.go +++ b/cmd/client-admin.go @@ -36,7 +36,10 @@ func newAdminFactory() func(config *Config) (*madmin.AdminClient, *probe.Error) // Return New function. return func(config *Config) (*madmin.AdminClient, *probe.Error) { // Creates a parsed URL. - targetURL, _ := url.Parse(config.HostURL) + targetURL, e := url.Parse(config.HostURL) + if e != nil { + return nil, probe.NewError(e) + } // By default enable HTTPs. useTLS := true if targetURL.Scheme == "http" { @@ -99,7 +102,10 @@ func newAdminFactory() func(config *Config) (*madmin.AdminClient, *probe.Error) // alias entry in the mc config file. If no matching host config entry // is found, fs client is returned. func newAdminClientFromAlias(alias string, urlStr string) (*madmin.AdminClient, *probe.Error) { - s3Config := buildConfig(alias, urlStr) + s3Config, err := buildS3Config(alias, urlStr) + if err != nil { + return nil, err + } s3Client, err := s3AdminNew(s3Config) if err != nil { return nil, err.Trace(alias, urlStr) diff --git a/cmd/common-methods.go b/cmd/common-methods.go index 2ad306a5..a3c8fa26 100644 --- a/cmd/common-methods.go +++ b/cmd/common-methods.go @@ -146,13 +146,13 @@ func uploadSourceToTargetURL(urls URLs, progress io.Reader) URLs { // alias entry in the mc config file. If no matching host config entry // is found, fs client is returned. func newClientFromAlias(alias string, urlStr string) (Client, *probe.Error) { - s3Config := buildConfig(alias, urlStr) - if s3Config == nil { + s3Config, err := buildS3Config(alias, urlStr) + if err != nil { // No matching host config. So we treat it like a // filesystem. - fsClient, err := fsNew(urlStr) - if err != nil { - return nil, err.Trace(alias, urlStr) + fsClient, fsErr := fsNew(urlStr) + if fsErr != nil { + return nil, fsErr.Trace(alias, urlStr) } return fsClient, nil } diff --git a/cmd/utils.go b/cmd/utils.go index 2606071e..c57330db 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -18,6 +18,7 @@ package cmd import ( "crypto/tls" + "errors" "io" "math/rand" "os" @@ -89,12 +90,12 @@ func splitStr(path, sep string, n int) []string { return splits } -// buildConfig fetches config related to the specified alias +// buildS3Config fetches config related to the specified alias // to create a new config structure -func buildConfig(alias, urlStr string) *Config { +func buildS3Config(alias, urlStr string) (*Config, *probe.Error) { hostCfg := mustGetHostConfig(alias) if hostCfg == nil { - return nil + return nil, probe.NewError(errors.New("The specified alias cannot be found")) } // We have a valid alias and hostConfig. We populate the @@ -127,5 +128,5 @@ func buildConfig(alias, urlStr string) *Config { s3Config.Debug = globalDebug s3Config.Insecure = globalInsecure - return s3Config + return s3Config, nil }