Browse code

Merge pull request #8799 from jlhawn/remove_jsondata_arg

Remove `jsonData` argument from `image.StoreImage`

Tibor Vass authored on 2014/11/04 10:55:40
Showing 7 changed files
... ...
@@ -132,14 +132,14 @@ func (graph *Graph) Create(layerData archive.ArchiveReader, containerID, contain
132 132
 		img.ContainerConfig = *containerConfig
133 133
 	}
134 134
 
135
-	if err := graph.Register(img, nil, layerData); err != nil {
135
+	if err := graph.Register(img, layerData); err != nil {
136 136
 		return nil, err
137 137
 	}
138 138
 	return img, nil
139 139
 }
140 140
 
141 141
 // Register imports a pre-existing image into the graph.
142
-func (graph *Graph) Register(img *image.Image, jsonData []byte, layerData archive.ArchiveReader) (err error) {
142
+func (graph *Graph) Register(img *image.Image, layerData archive.ArchiveReader) (err error) {
143 143
 	defer func() {
144 144
 		// If any error occurs, remove the new dir from the driver.
145 145
 		// Don't check for errors since the dir might not have been created.
... ...
@@ -181,7 +181,7 @@ func (graph *Graph) Register(img *image.Image, jsonData []byte, layerData archiv
181 181
 	}
182 182
 	// Apply the diff/layer
183 183
 	img.SetGraph(graph)
184
-	if err := image.StoreImage(img, jsonData, layerData, tmp); err != nil {
184
+	if err := image.StoreImage(img, layerData, tmp); err != nil {
185 185
 		return err
186 186
 	}
187 187
 	// Commit
... ...
@@ -118,7 +118,7 @@ func (s *TagStore) recursiveLoad(eng *engine.Engine, address, tmpImageDir string
118 118
 				}
119 119
 			}
120 120
 		}
121
-		if err := s.graph.Register(img, imageJson, layer); err != nil {
121
+		if err := s.graph.Register(img, layer); err != nil {
122 122
 			return err
123 123
 		}
124 124
 	}
... ...
@@ -394,7 +394,7 @@ func (s *TagStore) pullImage(r *registry.Session, out io.Writer, imgID, endpoint
394 394
 				layers_downloaded = true
395 395
 				defer layer.Close()
396 396
 
397
-				err = s.graph.Register(img, imgJSON,
397
+				err = s.graph.Register(img,
398 398
 					utils.ProgressReader(layer, imgSize, out, sf, false, utils.TruncateID(id), "Downloading"))
399 399
 				if terr, ok := err.(net.Error); ok && terr.Timeout() && j < retries {
400 400
 					time.Sleep(time.Duration(j) * 500 * time.Millisecond)
... ...
@@ -579,7 +579,7 @@ func (s *TagStore) pullV2Tag(eng *engine.Engine, r *registry.Session, out io.Wri
579 579
 			defer d.tmpFile.Close()
580 580
 			d.tmpFile.Seek(0, 0)
581 581
 			if d.tmpFile != nil {
582
-				err = s.graph.Register(d.img, d.imgJSON,
582
+				err = s.graph.Register(d.img,
583 583
 					utils.ProgressReader(d.tmpFile, int(d.length), out, sf, false, utils.TruncateID(d.img.ID), "Extracting"))
584 584
 				if err != nil {
585 585
 					return false, err
... ...
@@ -74,7 +74,7 @@ func (s *TagStore) CmdSet(job *engine.Job) engine.Status {
74 74
 	if err != nil {
75 75
 		return job.Error(err)
76 76
 	}
77
-	if err := s.graph.Register(img, imgJSON, layer); err != nil {
77
+	if err := s.graph.Register(img, layer); err != nil {
78 78
 		return job.Error(err)
79 79
 	}
80 80
 	return engine.StatusOK
... ...
@@ -62,7 +62,7 @@ func mkTestTagStore(root string, t *testing.T) *TagStore {
62 62
 		t.Fatal(err)
63 63
 	}
64 64
 	img := &image.Image{ID: testImageID}
65
-	if err := graph.Register(img, nil, archive); err != nil {
65
+	if err := graph.Register(img, archive); err != nil {
66 66
 		t.Fatal(err)
67 67
 	}
68 68
 	if err := store.Set(testImageName, "", testImageID, false); err != nil {
... ...
@@ -70,7 +70,7 @@ func LoadImage(root string) (*Image, error) {
70 70
 	return img, nil
71 71
 }
72 72
 
73
-func StoreImage(img *Image, jsonData []byte, layerData archive.ArchiveReader, root string) error {
73
+func StoreImage(img *Image, layerData archive.ArchiveReader, root string) error {
74 74
 	// Store the layer
75 75
 	var (
76 76
 		size   int64
... ...
@@ -90,20 +90,14 @@ func StoreImage(img *Image, jsonData []byte, layerData archive.ArchiveReader, ro
90 90
 		return err
91 91
 	}
92 92
 
93
-	// If raw json is provided, then use it
94
-	if jsonData != nil {
95
-		if err := ioutil.WriteFile(jsonPath(root), jsonData, 0600); err != nil {
96
-			return err
97
-		}
98
-	} else {
99
-		if jsonData, err = json.Marshal(img); err != nil {
100
-			return err
101
-		}
102
-		if err := ioutil.WriteFile(jsonPath(root), jsonData, 0600); err != nil {
103
-			return err
104
-		}
93
+	f, err := os.OpenFile(jsonPath(root), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.FileMode(0600))
94
+	if err != nil {
95
+		return err
105 96
 	}
106
-	return nil
97
+
98
+	defer f.Close()
99
+
100
+	return json.NewEncoder(f).Encode(img)
107 101
 }
108 102
 
109 103
 func (img *Image) SetGraph(graph Graph) {
... ...
@@ -74,7 +74,7 @@ func TestInterruptedRegister(t *testing.T) {
74 74
 		Created: time.Now(),
75 75
 	}
76 76
 	w.CloseWithError(errors.New("But I'm not a tarball!")) // (Nobody's perfect, darling)
77
-	graph.Register(image, nil, badArchive)
77
+	graph.Register(image, badArchive)
78 78
 	if _, err := graph.Get(image.ID); err == nil {
79 79
 		t.Fatal("Image should not exist after Register is interrupted")
80 80
 	}
... ...
@@ -83,7 +83,7 @@ func TestInterruptedRegister(t *testing.T) {
83 83
 	if err != nil {
84 84
 		t.Fatal(err)
85 85
 	}
86
-	if err := graph.Register(image, nil, goodArchive); err != nil {
86
+	if err := graph.Register(image, goodArchive); err != nil {
87 87
 		t.Fatal(err)
88 88
 	}
89 89
 }
... ...
@@ -133,7 +133,7 @@ func TestRegister(t *testing.T) {
133 133
 		Comment: "testing",
134 134
 		Created: time.Now(),
135 135
 	}
136
-	err = graph.Register(image, nil, archive)
136
+	err = graph.Register(image, archive)
137 137
 	if err != nil {
138 138
 		t.Fatal(err)
139 139
 	}
... ...
@@ -228,7 +228,7 @@ func TestDelete(t *testing.T) {
228 228
 		t.Fatal(err)
229 229
 	}
230 230
 	// Test delete twice (pull -> rm -> pull -> rm)
231
-	if err := graph.Register(img1, nil, archive); err != nil {
231
+	if err := graph.Register(img1, archive); err != nil {
232 232
 		t.Fatal(err)
233 233
 	}
234 234
 	if err := graph.Delete(img1.ID); err != nil {
... ...
@@ -262,9 +262,9 @@ func TestByParent(t *testing.T) {
262 262
 		Created: time.Now(),
263 263
 		Parent:  parentImage.ID,
264 264
 	}
265
-	_ = graph.Register(parentImage, nil, archive1)
266
-	_ = graph.Register(childImage1, nil, archive2)
267
-	_ = graph.Register(childImage2, nil, archive3)
265
+	_ = graph.Register(parentImage, archive1)
266
+	_ = graph.Register(childImage1, archive2)
267
+	_ = graph.Register(childImage2, archive3)
268 268
 
269 269
 	byParent, err := graph.ByParent()
270 270
 	if err != nil {