Remove `jsonData` argument from `image.StoreImage`
| ... | ... |
@@ -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 {
|