Fix missing checksum from CLI uploads (issue #342) (#343)

Archive upload from the CLI wasn't filling in the checksum field, causing validation to fail.
This commit is contained in:
Ta-Ching Chen
2017-09-22 12:27:42 -07:00
committed by Soam Vasani
parent 0d252fabcd
commit e56e6482b3
+19
View File
@@ -18,7 +18,10 @@ package main
import (
"context"
"crypto/sha256"
"encoding/hex"
"fmt"
"io"
"io/ioutil"
"os"
"strings"
@@ -62,6 +65,22 @@ func createArchive(client *client.Client, fileName string) *fission.Archive {
archive.Type = fission.ArchiveTypeUrl
archive.URL = archiveUrl
f, err := os.Open(fileName)
if err != nil {
checkErr(err, fmt.Sprintf("find file %v", fileName))
}
defer f.Close()
h := sha256.New()
if _, err := io.Copy(h, f); err != nil {
checkErr(err, fmt.Sprintf("calculate checksum for file %v", fileName))
}
archive.Checksum = fission.Checksum{
Type: fission.ChecksumTypeSHA256,
Sum: hex.EncodeToString(h.Sum(nil)),
}
}
return &archive
}