Explorar o código

Merge pull request #371 from docker/azure-volume-errors

Clean up volume parsing functions
Ulysses Souza %!s(int64=5) %!d(string=hai) anos
pai
achega
f62ab26714
Modificáronse 1 ficheiros con 7 adicións e 7 borrados
  1. 7 7
      azure/convert/volume.go

+ 7 - 7
azure/convert/volume.go

@@ -70,13 +70,13 @@ type volumeInput struct {
 func escapeKeySlashes(rawURL string) (string, error) {
 	urlSplit := strings.Split(rawURL, "@")
 	if len(urlSplit) < 1 {
-		return "", errors.Wrap(errdefs.ErrParsingFailed, "invalid url format "+rawURL)
+		return "", fmt.Errorf("invalid URL format: %s", rawURL)
 	}
 	userPasswd := strings.ReplaceAll(urlSplit[0], "/", "_")
 
 	atIndex := strings.Index(rawURL, "@")
 	if atIndex < 0 {
-		return "", errors.Wrap(errdefs.ErrParsingFailed, "no share specified in "+rawURL)
+		return "", fmt.Errorf("no share specified in: %s", rawURL)
 	}
 
 	scaped := userPasswd + rawURL[atIndex:]
@@ -98,7 +98,7 @@ func volumeURL(pathURL string) (*url.URL, error) {
 
 	count := strings.Count(pathURL, ":")
 	if count > 2 {
-		return nil, errors.Wrap(errdefs.ErrParsingFailed, fmt.Sprintf("unable to parse volume mount %q", pathURL))
+		return nil, fmt.Errorf("invalid path URL: %s", pathURL)
 	}
 	if count == 2 {
 		tokens := strings.Split(pathURL, ":")
@@ -110,20 +110,20 @@ func volumeURL(pathURL string) (*url.URL, error) {
 func (v *volumeInput) parse(name string, s string) error {
 	volumeURL, err := volumeURL(s)
 	if err != nil {
-		return errors.Wrap(errdefs.ErrParsingFailed, fmt.Sprintf("volume specification %q could not be parsed %q", s, err))
+		return errors.Wrapf(errdefs.ErrParsingFailed, "unable to parse volume specification: %s", err.Error())
 	}
 	v.username = volumeURL.User.Username()
 	if v.username == "" {
-		return errors.Wrap(errdefs.ErrParsingFailed, fmt.Sprintf("volume specification %q does not include a storage username", v))
+		return errors.Wrapf(errdefs.ErrParsingFailed, "volume specification %q does not include a storage username", v)
 	}
 	key, ok := volumeURL.User.Password()
 	if !ok || key == "" {
-		return errors.Wrap(errdefs.ErrParsingFailed, fmt.Sprintf("volume specification %q does not include a storage key", v))
+		return errors.Wrapf(errdefs.ErrParsingFailed, "volume specification %q does not include a storage key", v)
 	}
 	v.key = unescapeKey(key)
 	v.share = volumeURL.Host
 	if v.share == "" {
-		return errors.Wrap(errdefs.ErrParsingFailed, fmt.Sprintf("volume specification %q does not include a storage file share", v))
+		return errors.Wrapf(errdefs.ErrParsingFailed, "volume specification %q does not include a storage file share", v)
 	}
 	v.name = name
 	v.target = volumeURL.Path