فهرست منبع

Update Push to reflect the correct API

Guillaume J. Charmes 12 سال پیش
والد
کامیت
08121c8f6b
1فایلهای تغییر یافته به همراه24 افزوده شده و 24 حذف شده
  1. 24 24
      registry/registry.go

+ 24 - 24
registry/registry.go

@@ -326,10 +326,11 @@ func (r *Registry) PushImageJsonIndex(remote string, imgList []*ImgData, validat
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
-
-	utils.Debugf("json sent: %s\n", imgListJson)
-
-	req, err := http.NewRequest("PUT", auth.IndexServerAddress()+"/repositories/"+remote+"/", bytes.NewReader(imgListJson))
+	var suffix string
+	if validate {
+		suffix = "images"
+	}
+	req, err := http.NewRequest("PUT", auth.IndexServerAddress()+"/repositories/"+remote+"/"+suffix, bytes.NewReader(imgListJson))
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
@@ -361,29 +362,28 @@ func (r *Registry) PushImageJsonIndex(remote string, imgList []*ImgData, validat
 		defer res.Body.Close()
 		defer res.Body.Close()
 	}
 	}
 
 
-	if res.StatusCode != 200 && res.StatusCode != 201 {
-		errBody, err := ioutil.ReadAll(res.Body)
-		if err != nil {
-			return nil, err
+	var tokens, endpoints []string
+	if !validate {
+		if res.StatusCode != 200 && res.StatusCode != 201 {
+			errBody, err := ioutil.ReadAll(res.Body)
+			if err != nil {
+				return nil, err
+			}
+			return nil, fmt.Errorf("Error: Status %d trying to push repository %s: %s", res.StatusCode, remote, errBody)
+		}
+		if res.Header.Get("X-Docker-Token") != "" {
+			tokens = res.Header["X-Docker-Token"]
+			utils.Debugf("Auth token: %v", tokens)
+		} else {
+			return nil, fmt.Errorf("Index response didn't contain an access token")
 		}
 		}
-		return nil, fmt.Errorf("Error: Status %d trying to push repository %s: %s", res.StatusCode, remote, errBody)
-	}
-
-	var tokens []string
-	if res.Header.Get("X-Docker-Token") != "" {
-		tokens = res.Header["X-Docker-Token"]
-		utils.Debugf("Auth token: %v", tokens)
-	} else {
-		return nil, fmt.Errorf("Index response didn't contain an access token")
-	}
 
 
-	var endpoints []string
-	if res.Header.Get("X-Docker-Endpoints") != "" {
-		endpoints = res.Header["X-Docker-Endpoints"]
-	} else {
-		return nil, fmt.Errorf("Index response didn't contain any endpoints")
+		if res.Header.Get("X-Docker-Endpoints") != "" {
+			endpoints = res.Header["X-Docker-Endpoints"]
+		} else {
+			return nil, fmt.Errorf("Index response didn't contain any endpoints")
+		}
 	}
 	}
-
 	if validate {
 	if validate {
 		if res.StatusCode != 204 {
 		if res.StatusCode != 204 {
 			if errBody, err := ioutil.ReadAll(res.Body); err != nil {
 			if errBody, err := ioutil.ReadAll(res.Body); err != nil {