From 032e450ec41f2fb06420e4fd1b0aac44f58c2ff5 Mon Sep 17 00:00:00 2001
From: guangxuli
Date: Thu, 3 Nov 2016 15:54:19 +0800
Subject: [PATCH] make invocation ReadDockerConfigFile can handle
.dockerconfigjson file
only extract ReadSpecificDockerConfigJsonFile from function ReadDockerConfigJSONFile
put error checking and logging in the loop above
godoc gofmt and return dockecfg directly
---
pkg/credentialprovider/config.go | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/pkg/credentialprovider/config.go b/pkg/credentialprovider/config.go
index 40bf0ce844..433f28b154 100644
--- a/pkg/credentialprovider/config.go
+++ b/pkg/credentialprovider/config.go
@@ -122,29 +122,35 @@ func ReadDockerConfigJSONFile(searchPaths []string) (cfg DockerConfig, err error
if len(searchPaths) == 0 {
searchPaths = DefaultDockerConfigJSONPaths()
}
-
for _, configPath := range searchPaths {
absDockerConfigFileLocation, err := filepath.Abs(filepath.Join(configPath, configJsonFileName))
if err != nil {
glog.Errorf("while trying to canonicalize %s: %v", configPath, err)
continue
}
- glog.V(4).Infof("looking for .docker/config.json at %s", absDockerConfigFileLocation)
- contents, err := ioutil.ReadFile(absDockerConfigFileLocation)
- if os.IsNotExist(err) {
- continue
- }
+ glog.V(4).Infof("looking for %s at %s", configJsonFileName, absDockerConfigFileLocation)
+ cfg, err = ReadSpecificDockerConfigJsonFile(absDockerConfigFileLocation)
if err != nil {
- glog.V(4).Infof("while trying to read %s: %v", absDockerConfigFileLocation, err)
+ if !os.IsNotExist(err) {
+ glog.V(4).Infof("while trying to read %s: %v", absDockerConfigFileLocation, err)
+ }
continue
}
- cfg, err := readDockerConfigJsonFileFromBytes(contents)
- if err == nil {
- glog.V(4).Infof("found .docker/config.json at %s", absDockerConfigFileLocation)
- return cfg, nil
- }
+ glog.V(4).Infof("found valid %s at %s", configJsonFileName, absDockerConfigFileLocation)
+ return cfg, nil
}
- return nil, fmt.Errorf("couldn't find valid .docker/config.json after checking in %v", searchPaths)
+ return nil, fmt.Errorf("couldn't find valid %s after checking in %v", configJsonFileName, searchPaths)
+
+}
+
+//ReadSpecificDockerConfigJsonFile attempts to read docker configJSON from a given file path.
+func ReadSpecificDockerConfigJsonFile(filePath string) (cfg DockerConfig, err error) {
+ var contents []byte
+
+ if contents, err = ioutil.ReadFile(filePath); err != nil {
+ return nil, err
+ }
+ return readDockerConfigJsonFileFromBytes(contents)
}
func ReadDockerConfigFile() (cfg DockerConfig, err error) {