瀏覽代碼

Make lookupSandboxID() reliable

- it is supposed to be called after lookupContainerID()
  but the latter is not guaranteed to succeed and in
  case of connection error will return what was passed
  to it.
  So in order to be able to operate with both long and short
  container ids in case of lookupContainerID() failure,
  always search by `partial-container-id`

Signed-off-by: Alessandro Boch <aboch@docker.com>
Alessandro Boch 10 年之前
父節點
當前提交
06d8585503
共有 2 個文件被更改,包括 3 次插入1 次删除
  1. 2 0
      libnetwork/client/client_test.go
  2. 1 1
      libnetwork/client/service.go

+ 2 - 0
libnetwork/client/client_test.go

@@ -87,6 +87,8 @@ func setupMockHTTPCallback() {
 				return nopCloser{bytes.NewBufferString("")}, dummyHTTPHdr, 400, fmt.Errorf("Bad Request")
 			} else if strings.Contains(path, fmt.Sprintf("sandboxes?container-id=%s", mockContainerID)) {
 				rsp = string(mockSbListJSON)
+			} else if strings.Contains(path, fmt.Sprintf("sandboxes?partial-container-id=%s", mockContainerID)) {
+				rsp = string(mockSbListJSON)
 			}
 		case "POST":
 			var data []byte

+ 1 - 1
libnetwork/client/service.go

@@ -115,7 +115,7 @@ func lookupContainerID(cli *NetworkCli, cnNameID string) (string, error) {
 }
 
 func lookupSandboxID(cli *NetworkCli, containerID string) (string, error) {
-	obj, _, err := readBody(cli.call("GET", fmt.Sprintf("/sandboxes?container-id=%s", containerID), nil, nil))
+	obj, _, err := readBody(cli.call("GET", fmt.Sprintf("/sandboxes?partial-container-id=%s", containerID), nil, nil))
 	if err != nil {
 		return "", err
 	}