Implemented checksum computation on image creation (necessary for new push primitive)

This commit is contained in:
shin-
2013-05-06 10:52:42 -07:00
parent 7c1a27e2ad
commit 048fd671ef
3 changed files with 20 additions and 4 deletions
+13
View File
@@ -1,6 +1,7 @@
package docker
import (
"crypto/sha256"
"encoding/json"
"fmt"
"github.com/dotcloud/docker/rcli"
@@ -695,6 +696,18 @@ func (container *Container) ExportRw() (Archive, error) {
return Tar(container.rwPath(), Uncompressed)
}
func (container *Container) RwChecksum() (string, error) {
h := sha256.New()
rwData, err := container.ExportRw()
if err != nil {
return "", err
}
if _, err := io.Copy(h, rwData); err != nil {
return "", err
}
return string(h.Sum(nil)), nil
}
func (container *Container) Export() (Archive, error) {
if err := container.EnsureMounted(); err != nil {
return nil, err