{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/31881","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/31881/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/31881/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/31881/events","html_url":"https://github.com/kubernetes/kubernetes/pull/31881","id":174535124,"number":31881,"title":"make function ReadDockerConfigFile more flexible","user":{"login":"guangxuli","id":17472298,"avatar_url":"https://avatars.githubusercontent.com/u/17472298?v=3","gravatar_id":"","url":"https://api.github.com/users/guangxuli","html_url":"https://github.com/guangxuli","followers_url":"https://api.github.com/users/guangxuli/followers","following_url":"https://api.github.com/users/guangxuli/following{/other_user}","gists_url":"https://api.github.com/users/guangxuli/gists{/gist_id}","starred_url":"https://api.github.com/users/guangxuli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guangxuli/subscriptions","organizations_url":"https://api.github.com/users/guangxuli/orgs","repos_url":"https://api.github.com/users/guangxuli/repos","events_url":"https://api.github.com/users/guangxuli/events{/privacy}","received_events_url":"https://api.github.com/users/guangxuli/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-label-needed","name":"release-note-label-needed","color":"db5a64"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/M","name":"size/M","color":"eebb00"}],"state":"open","locked":false,"assignee":{"login":"liggitt","id":980082,"avatar_url":"https://avatars.githubusercontent.com/u/980082?v=3","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false},"assignees":[{"login":"liggitt","id":980082,"avatar_url":"https://avatars.githubusercontent.com/u/980082?v=3","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false}],"milestone":null,"comments":10,"created_at":"2016-09-01T14:15:32Z","updated_at":"2016-09-26T16:19:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/31881","html_url":"https://github.com/kubernetes/kubernetes/pull/31881","diff_url":"https://github.com/kubernetes/kubernetes/pull/31881.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/31881.patch"},"body":"In our code, the public function `ReadDockerConfigFile` looks like not enough flexible:\r\nwhen I want to use this function to get docker config info from a specific path, I have to call  `SetPreferredDockercfgPath`, and then the setting preferredPath will be valid in function  `ReadDockerConfigFile`.  I know in our code, we call  `SetPreferredDockercfgPath` in one place ,then call `ReadDockerConfigFile` in another place, it was not in same context. But it looks like not thread safety. \r\n I think if user who use our code want to get docker config from a specific path, it is reasonable to call directly `ReadDockerConfigFile ` with a dockerconfigPath argument, and it can avoid some scenarios that thread is not safety . \r\nI add a test case for this function.\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.kubernetes.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/31881)\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/249619382","html_url":"https://github.com/kubernetes/kubernetes/pull/31881#issuecomment-249619382","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/31881","id":249619382,"user":{"login":"guangxuli","id":17472298,"avatar_url":"https://avatars.githubusercontent.com/u/17472298?v=3","gravatar_id":"","url":"https://api.github.com/users/guangxuli","html_url":"https://github.com/guangxuli","followers_url":"https://api.github.com/users/guangxuli/followers","following_url":"https://api.github.com/users/guangxuli/following{/other_user}","gists_url":"https://api.github.com/users/guangxuli/gists{/gist_id}","starred_url":"https://api.github.com/users/guangxuli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guangxuli/subscriptions","organizations_url":"https://api.github.com/users/guangxuli/orgs","repos_url":"https://api.github.com/users/guangxuli/repos","events_url":"https://api.github.com/users/guangxuli/events{/privacy}","received_events_url":"https://api.github.com/users/guangxuli/received_events","type":"User","site_admin":false},"created_at":"2016-09-26T16:19:46Z","updated_at":"2016-09-26T16:19:46Z","body":"@liggitt can you take look for this PR，thanks."}}
{"actor":{"display_login":"guangxuli"}}