Adding version info, switching to defer for cleanup

This commit is contained in:
Frederick F. Kautz IV 2013-10-11 22:11:49 -07:00
parent 7eaa59f626
commit 61a8020e51
1 changed files with 6 additions and 9 deletions

View File

@ -218,12 +218,15 @@ func (srv *Server) ImageExport(name string, out io.Writer) error {
// temporary directory // temporary directory
tmpImageDir := path.Join(tempdir, i.ID) tmpImageDir := path.Join(tempdir, i.ID)
os.Mkdir(tmpImageDir, os.ModeDir) os.Mkdir(tmpImageDir, os.ModeDir)
defer os.RemoveAll(tempdir)
var version = "0.7"
var versionBuf = []byte(version)
ioutil.WriteFile(path.Join(tmpImageDir, "VERSION"), versionBuf, os.ModeAppend)
// serialize json // serialize json
b, err := json.Marshal(i) b, err := json.Marshal(i)
if err != nil { if err != nil {
utils.Debugf("%s", err) utils.Debugf("%s", err)
os.RemoveAll(tempdir)
return err return err
} }
ioutil.WriteFile(path.Join(tmpImageDir, "json"), b, os.ModeAppend) ioutil.WriteFile(path.Join(tmpImageDir, "json"), b, os.ModeAppend)
@ -232,19 +235,16 @@ func (srv *Server) ImageExport(name string, out io.Writer) error {
fs, err := Tar(path.Join(srv.runtime.graph.Root, i.ID, "layer"), Uncompressed) fs, err := Tar(path.Join(srv.runtime.graph.Root, i.ID, "layer"), Uncompressed)
if err != nil { if err != nil {
utils.Debugf("%s", err) utils.Debugf("%s", err)
os.RemoveAll(tempdir)
return err return err
} }
fsTar, err := os.Create(path.Join(tmpImageDir, "layer.tar")) fsTar, err := os.Create(path.Join(tmpImageDir, "layer.tar"))
if err != nil { if err != nil {
os.RemoveAll(tempdir)
utils.Debugf("%s", err) utils.Debugf("%s", err)
return err return err
} }
_, err = io.Copy(fsTar, fs) _, err = io.Copy(fsTar, fs)
if err != nil { if err != nil {
utils.Debugf("%s", err) utils.Debugf("%s", err)
os.RemoveAll(tempdir)
return err return err
} }
fsTar.Close() fsTar.Close()
@ -254,7 +254,6 @@ func (srv *Server) ImageExport(name string, out io.Writer) error {
i, err = srv.ImageInspect(i.Parent) i, err = srv.ImageInspect(i.Parent)
if err != nil { if err != nil {
utils.Debugf("%s", err) utils.Debugf("%s", err)
os.RemoveAll(tempdir)
return err return err
} }
} else { } else {
@ -271,15 +270,13 @@ func (srv *Server) ImageExport(name string, out io.Writer) error {
ioutil.WriteFile(path.Join(tempdir, "repositories"), rootRepoJson, os.ModeAppend) ioutil.WriteFile(path.Join(tempdir, "repositories"), rootRepoJson, os.ModeAppend)
fs, err := Tar(tempdir, Uncompressed) fs, err := Tar(tempdir, Uncompressed)
defer os.RemoveAll(tempdir)
if err != nil { if err != nil {
os.RemoveAll(tempdir)
return err return err
} }
if _, err := io.Copy(out, fs); err != nil { if _, err := io.Copy(out, fs); err != nil {
os.RemoveAll(tempdir)
return err return err
} }
os.RemoveAll(tempdir)
return nil return nil
} }
@ -287,6 +284,7 @@ func (srv *Server) ImageExport(name string, out io.Writer) error {
// The input stream is an uncompressed tar ball containing images and metadata. // The input stream is an uncompressed tar ball containing images and metadata.
func (srv *Server) ImageLoad(in io.Reader) error { func (srv *Server) ImageLoad(in io.Reader) error {
tmpImageDir, _ := ioutil.TempDir("", "docker-import-") tmpImageDir, _ := ioutil.TempDir("", "docker-import-")
defer os.RemoveAll(tmpImageDir)
repoTarFile := path.Join(tmpImageDir, "repo.tar") repoTarFile := path.Join(tmpImageDir, "repo.tar")
repoDir := path.Join(tmpImageDir, "repo") repoDir := path.Join(tmpImageDir, "repo")
tarFile, _ := os.Create(repoTarFile) tarFile, _ := os.Create(repoTarFile)
@ -308,7 +306,6 @@ func (srv *Server) ImageLoad(in io.Reader) error {
srv.runtime.repositories.Set(imageName, tag, address, true) srv.runtime.repositories.Set(imageName, tag, address, true)
} }
} }
os.RemoveAll(tmpImageDir)
return nil return nil
} }