store: rename ds -> s

ds was a legacy name reflecting the store was once DownloadStore
This commit is contained in:
Jonathan Boulle
2015-04-18 20:31:50 -07:00
parent d1b49e37a0
commit e5eeaef5e3
6 changed files with 102 additions and 102 deletions
+5 -5
View File
@@ -13,11 +13,11 @@ func TestWriteACIInfo(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
if err = ds.db.Do(func(tx *sql.Tx) error {
if err = s.db.Do(func(tx *sql.Tx) error {
aciinfo := &ACIInfo{
BlobKey: "key01",
AppName: "name01",
@@ -36,7 +36,7 @@ func TestWriteACIInfo(t *testing.T) {
aciinfos := []*ACIInfo{}
ok := false
if err = ds.db.Do(func(tx *sql.Tx) error {
if err = s.db.Do(func(tx *sql.Tx) error {
aciinfos, ok, err = GetACIInfosWithAppName(tx, "name01")
return err
}); err != nil {
@@ -51,7 +51,7 @@ func TestWriteACIInfo(t *testing.T) {
}
// Add another ACIInfo for the same app name
if err = ds.db.Do(func(tx *sql.Tx) error {
if err = s.db.Do(func(tx *sql.Tx) error {
aciinfo := &ACIInfo{
BlobKey: "key02",
AppName: "name01",
@@ -63,7 +63,7 @@ func TestWriteACIInfo(t *testing.T) {
}); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if err = ds.db.Do(func(tx *sql.Tx) error {
if err = s.db.Do(func(tx *sql.Tx) error {
aciinfos, ok, err = GetACIInfosWithAppName(tx, "name01")
return err
}); err != nil {
+4 -4
View File
@@ -31,7 +31,7 @@ func TestNewRemote(t *testing.T) {
t.Fatal(err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatal(err)
}
@@ -39,10 +39,10 @@ func TestNewRemote(t *testing.T) {
// Create our first Remote, and simulate Store() to create row in the table
na := NewRemote(u1, "")
na.BlobKey = data
ds.WriteRemote(na)
s.WriteRemote(na)
// Get a new remote w the same parameters, reading from table should be fine
nb, ok, err := ds.GetRemote(u1)
nb, ok, err := s.GetRemote(u1)
if err != nil {
t.Fatalf("unexpected error reading index: %v", err)
}
@@ -54,7 +54,7 @@ func TestNewRemote(t *testing.T) {
}
// Get a remote with a different URI
nc, ok, err := ds.GetRemote(u2)
nc, ok, err := s.GetRemote(u2)
// Should get an error, since the URI shouldn't be present in the table
if ok {
t.Fatalf("unexpected index found")
+54 -54
View File
@@ -80,31 +80,31 @@ type Store struct {
func NewStore(base string) (*Store, error) {
casDir := filepath.Join(base, "cas")
ds := &Store{
s := &Store{
base: base,
stores: make([]*diskv.Diskv, len(diskvStores)),
}
ds.imageLockDir = filepath.Join(casDir, "imagelocks")
err := os.MkdirAll(ds.imageLockDir, defaultPathPerm)
s.imageLockDir = filepath.Join(casDir, "imagelocks")
err := os.MkdirAll(s.imageLockDir, defaultPathPerm)
if err != nil {
return nil, err
}
ds.treeStoreLockDir = filepath.Join(casDir, "treestorelocks")
err = os.MkdirAll(ds.treeStoreLockDir, defaultPathPerm)
s.treeStoreLockDir = filepath.Join(casDir, "treestorelocks")
err = os.MkdirAll(s.treeStoreLockDir, defaultPathPerm)
if err != nil {
return nil, err
}
// Take a shared cas lock
ds.storeLock, err = lock.NewLock(casDir, lock.Dir)
s.storeLock, err = lock.NewLock(casDir, lock.Dir)
if err != nil {
return nil, err
}
for i, p := range diskvStores {
ds.stores[i] = diskv.New(diskv.Options{
s.stores[i] = diskv.New(diskv.Options{
BasePath: filepath.Join(casDir, p),
Transform: blockTransform,
})
@@ -113,9 +113,9 @@ func NewStore(base string) (*Store, error) {
if err != nil {
return nil, err
}
ds.db = db
s.db = db
ds.treestore = &TreeStore{path: filepath.Join(base, "cas", "tree")}
s.treestore = &TreeStore{path: filepath.Join(base, "cas", "tree")}
needsMigrate := false
fn := func(tx *sql.Tx) error {
@@ -158,7 +158,7 @@ func NewStore(base string) (*Store, error) {
// migration from the current version.
if needsMigrate {
// Take an exclusive store lock
err := ds.storeLock.ExclusiveLock()
err := s.storeLock.ExclusiveLock()
if err != nil {
return nil, err
}
@@ -171,13 +171,13 @@ func NewStore(base string) (*Store, error) {
}
}
return ds, nil
return s, nil
}
// TmpFile returns an *os.File local to the same filesystem as the Store, or
// any error encountered
func (ds Store) TmpFile() (*os.File, error) {
dir, err := ds.TmpDir()
func (s Store) TmpFile() (*os.File, error) {
dir, err := s.TmpDir()
if err != nil {
return nil, err
}
@@ -186,8 +186,8 @@ func (ds Store) TmpFile() (*os.File, error) {
// TmpDir creates and returns dir local to the same filesystem as the Store,
// or any error encountered
func (ds Store) TmpDir() (string, error) {
dir := filepath.Join(ds.base, "tmp")
func (s Store) TmpDir() (string, error) {
dir := filepath.Join(s.base, "tmp")
if err := os.MkdirAll(dir, defaultPathPerm); err != nil {
return "", err
}
@@ -197,7 +197,7 @@ func (ds Store) TmpDir() (string, error) {
// ResolveKey resolves a partial key (of format `sha512-0c45e8c0ab2`) to a full
// key by considering the key a prefix and using the store for resolution.
// If the key is longer than the full key length, it is first truncated.
func (ds Store) ResolveKey(key string) (string, error) {
func (s Store) ResolveKey(key string) (string, error) {
if !strings.HasPrefix(key, hashPrefix) {
return "", fmt.Errorf("wrong key prefix")
}
@@ -209,7 +209,7 @@ func (ds Store) ResolveKey(key string) (string, error) {
}
aciInfos := []*ACIInfo{}
err := ds.db.Do(func(tx *sql.Tx) error {
err := s.db.Do(func(tx *sql.Tx) error {
var err error
aciInfos, err = GetACIInfosWithKeyPrefix(tx, key)
return err
@@ -228,18 +228,18 @@ func (ds Store) ResolveKey(key string) (string, error) {
return aciInfos[0].BlobKey, nil
}
func (ds Store) ReadStream(key string) (io.ReadCloser, error) {
key, err := ds.ResolveKey(key)
func (s Store) ReadStream(key string) (io.ReadCloser, error) {
key, err := s.ResolveKey(key)
if err != nil {
return nil, fmt.Errorf("error resolving key: %v", err)
}
keyLock, err := lock.SharedKeyLock(ds.imageLockDir, key)
keyLock, err := lock.SharedKeyLock(s.imageLockDir, key)
if err != nil {
return nil, fmt.Errorf("error locking image: %v", err)
}
defer keyLock.Close()
return ds.stores[blobType].ReadStream(key, false)
return s.stores[blobType].ReadStream(key, false)
}
// WriteACI takes an ACI encapsulated in an io.Reader, decompresses it if
@@ -247,7 +247,7 @@ func (ds Store) ReadStream(key string) (io.ReadCloser, error) {
// (i.e. the hash of the uncompressed ACI)
// latest defines if the aci has to be marked as the latest. For example an ACI
// discovered without asking for a specific version (latest pattern).
func (ds Store) WriteACI(r io.Reader, latest bool) (string, error) {
func (s Store) WriteACI(r io.Reader, latest bool) (string, error) {
// Peek at the first 512 bytes of the reader to detect filetype
br := bufio.NewReaderSize(r, 32768)
hd, err := br.Peek(512)
@@ -270,7 +270,7 @@ func (ds Store) WriteACI(r io.Reader, latest bool) (string, error) {
// tee so we can generate the hash
h := sha512.New()
tr := io.TeeReader(dr, h)
fh, err := ds.TmpFile()
fh, err := s.TmpFile()
if err != nil {
return "", fmt.Errorf("error creating image: %v", err)
}
@@ -286,14 +286,14 @@ func (ds Store) WriteACI(r io.Reader, latest bool) (string, error) {
}
// Import the uncompressed image into the store at the real key
key := ds.HashToKey(h)
keyLock, err := lock.ExclusiveKeyLock(ds.imageLockDir, key)
key := s.HashToKey(h)
keyLock, err := lock.ExclusiveKeyLock(s.imageLockDir, key)
if err != nil {
return "", fmt.Errorf("error locking image: %v", err)
}
defer keyLock.Close()
if err = ds.stores[blobType].Import(fh.Name(), key, true); err != nil {
if err = s.stores[blobType].Import(fh.Name(), key, true); err != nil {
return "", fmt.Errorf("error importing image: %v", err)
}
@@ -302,12 +302,12 @@ func (ds Store) WriteACI(r io.Reader, latest bool) (string, error) {
if err != nil {
return "", fmt.Errorf("error marshalling image manifest: %v", err)
}
if err = ds.stores[imageManifestType].Write(key, imj); err != nil {
if err = s.stores[imageManifestType].Write(key, imj); err != nil {
return "", fmt.Errorf("error importing image manifest: %v", err)
}
// Save aciinfo
if err = ds.db.Do(func(tx *sql.Tx) error {
if err = s.db.Do(func(tx *sql.Tx) error {
aciinfo := &ACIInfo{
BlobKey: key,
AppName: im.Name.String(),
@@ -330,19 +330,19 @@ func (ds Store) WriteACI(r io.Reader, latest bool) (string, error) {
// already fully rendered.
// Users of treestore should call ds.RenderTreeStore before using it to ensure
// that the treestore is completely rendered.
func (ds Store) RenderTreeStore(key string, rebuild bool) error {
func (s Store) RenderTreeStore(key string, rebuild bool) error {
// this lock references the treestore dir for the specified key. This
// is different from a lock on an image key as internally
// treestore.Write calls the acirenderer functions that use GetACI and
// GetImageManifest which are taking the image(s) lock.
treeStoreKeyLock, err := lock.ExclusiveKeyLock(ds.treeStoreLockDir, key)
treeStoreKeyLock, err := lock.ExclusiveKeyLock(s.treeStoreLockDir, key)
if err != nil {
return fmt.Errorf("error locking tree store: %v", err)
}
defer treeStoreKeyLock.Close()
if !rebuild {
rendered, err := ds.treestore.IsRendered(key)
rendered, err := s.treestore.IsRendered(key)
if err != nil {
return fmt.Errorf("cannot determine if tree is already rendered: %v", err)
}
@@ -353,11 +353,11 @@ func (ds Store) RenderTreeStore(key string, rebuild bool) error {
// Firstly remove a possible partial treestore if existing.
// This is needed as a previous ACI removal operation could have failed
// cleaning the tree store leaving some stale files.
err = ds.treestore.Remove(key)
err = s.treestore.Remove(key)
if err != nil {
return err
}
err = ds.treestore.Write(key, &ds)
err = s.treestore.Write(key, &s)
if err != nil {
return err
}
@@ -365,37 +365,37 @@ func (ds Store) RenderTreeStore(key string, rebuild bool) error {
}
// CheckTreeStore verifies the treestore consistency for the specified key.
func (ds Store) CheckTreeStore(key string) error {
treeStoreKeyLock, err := lock.SharedKeyLock(ds.treeStoreLockDir, key)
func (s Store) CheckTreeStore(key string) error {
treeStoreKeyLock, err := lock.SharedKeyLock(s.treeStoreLockDir, key)
if err != nil {
return fmt.Errorf("error locking tree store: %v", err)
}
defer treeStoreKeyLock.Close()
return ds.treestore.Check(key)
return s.treestore.Check(key)
}
// GetTreeStorePath returns the absolute path of the treestore for the specified key.
// It doesn't ensure that the path exists and is fully rendered. This should
// be done calling IsRendered()
func (ds Store) GetTreeStorePath(key string) string {
return ds.treestore.GetPath(key)
func (s Store) GetTreeStorePath(key string) string {
return s.treestore.GetPath(key)
}
// GetTreeStoreRootFS returns the absolute path of the rootfs in the treestore
// for specified key.
// It doesn't ensure that the rootfs exists and is fully rendered. This should
// be done calling IsRendered()
func (ds Store) GetTreeStoreRootFS(key string) string {
return ds.treestore.GetRootFS(key)
func (s Store) GetTreeStoreRootFS(key string) string {
return s.treestore.GetRootFS(key)
}
// GetRemote tries to retrieve a remote with the given ACIURL. found will be
// false if remote doesn't exist.
func (ds Store) GetRemote(aciURL string) (*Remote, bool, error) {
func (s Store) GetRemote(aciURL string) (*Remote, bool, error) {
var remote *Remote
found := false
err := ds.db.Do(func(tx *sql.Tx) error {
err := s.db.Do(func(tx *sql.Tx) error {
var err error
remote, found, err = GetRemote(tx, aciURL)
return err
@@ -404,26 +404,26 @@ func (ds Store) GetRemote(aciURL string) (*Remote, bool, error) {
}
// WriteRemote adds or updates the provided Remote.
func (ds Store) WriteRemote(remote *Remote) error {
err := ds.db.Do(func(tx *sql.Tx) error {
func (s Store) WriteRemote(remote *Remote) error {
err := s.db.Do(func(tx *sql.Tx) error {
return WriteRemote(tx, remote)
})
return err
}
// Get the ImageManifest with the specified key.
func (ds Store) GetImageManifest(key string) (*schema.ImageManifest, error) {
key, err := ds.ResolveKey(key)
func (s Store) GetImageManifest(key string) (*schema.ImageManifest, error) {
key, err := s.ResolveKey(key)
if err != nil {
return nil, fmt.Errorf("error resolving key: %v", err)
}
keyLock, err := lock.SharedKeyLock(ds.imageLockDir, key)
keyLock, err := lock.SharedKeyLock(s.imageLockDir, key)
if err != nil {
return nil, fmt.Errorf("error locking image: %v", err)
}
defer keyLock.Close()
imj, err := ds.stores[imageManifestType].Read(key)
imj, err := s.stores[imageManifestType].Read(key)
if err != nil {
return nil, fmt.Errorf("error retrieving image manifest: %v", err)
}
@@ -440,7 +440,7 @@ func (ds Store) GetImageManifest(key string) (*schema.ImageManifest, error) {
// last one imported in the store).
// If no version label is requested, ACIs marked as latest in the ACIInfo are
// preferred.
func (ds Store) GetACI(name types.ACName, labels types.Labels) (string, error) {
func (s Store) GetACI(name types.ACName, labels types.Labels) (string, error) {
var curaciinfo *ACIInfo
versionRequested := false
if _, ok := labels.Get("version"); ok {
@@ -448,7 +448,7 @@ func (ds Store) GetACI(name types.ACName, labels types.Labels) (string, error) {
}
var aciinfos []*ACIInfo
err := ds.db.Do(func(tx *sql.Tx) error {
err := s.db.Do(func(tx *sql.Tx) error {
var err error
aciinfos, _, err = GetACIInfosWithAppName(tx, name.String())
return err
@@ -459,7 +459,7 @@ func (ds Store) GetACI(name types.ACName, labels types.Labels) (string, error) {
nextKey:
for _, aciinfo := range aciinfos {
im, err := ds.GetImageManifest(aciinfo.BlobKey)
im, err := s.GetImageManifest(aciinfo.BlobKey)
if err != nil {
return "", fmt.Errorf("error getting image manifest: %v", err)
}
@@ -504,8 +504,8 @@ nextKey:
return "", fmt.Errorf("aci not found")
}
func (ds Store) Dump(hex bool) {
for _, s := range ds.stores {
func (s Store) Dump(hex bool) {
for _, s := range s.stores {
var keyCount int
for key := range s.Keys(nil) {
val, err := s.Read(key)
@@ -529,7 +529,7 @@ func (ds Store) Dump(hex bool) {
// HashToKey takes a hash.Hash (which currently _MUST_ represent a full SHA512),
// calculates its sum, and returns a string which should be used as the key to
// store the data matching the hash.
func (ds Store) HashToKey(h hash.Hash) string {
func (s Store) HashToKey(h hash.Hash) string {
return hashToKey(h)
}
+26 -26
View File
@@ -37,17 +37,17 @@ func TestBlobStore(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
for _, valueStr := range []string{
"I am a manually placed object",
} {
ds.stores[blobType].Write(types.NewHashSHA512([]byte(valueStr)).String(), []byte(valueStr))
s.stores[blobType].Write(types.NewHashSHA512([]byte(valueStr)).String(), []byte(valueStr))
}
ds.Dump(false)
s.Dump(false)
}
func TestResolveKey(t *testing.T) {
@@ -56,7 +56,7 @@ func TestResolveKey(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
@@ -77,7 +77,7 @@ func TestResolveKey(t *testing.T) {
}
for _, d := range data {
// Save aciinfo
err := ds.db.Do(func(tx *sql.Tx) error {
err := s.db.Do(func(tx *sql.Tx) error {
aciinfo := &ACIInfo{
BlobKey: d.String(),
AppName: "example.com/app",
@@ -94,7 +94,7 @@ func TestResolveKey(t *testing.T) {
fkl := "sha512-67147019a5b56f5e2ee01e989a8aa4787f56b8445960be2d8678391cf111009bc0780f31001fd181a2b61507547aee4caa44cda4b8bdb238d0e4ba830069ed2c"
fks := "sha512-67147019a5b56f5e2ee01e989a8aa4787f56b8445960be2d8678391cf111009b"
for _, k := range []string{fkl, fks} {
key, err := ds.ResolveKey(k)
key, err := s.ResolveKey(k)
if key != fks {
t.Errorf("expected ResolveKey to return unaltered short key, but got %q", key)
}
@@ -104,7 +104,7 @@ func TestResolveKey(t *testing.T) {
}
// Unambiguous prefix match
k, err := ds.ResolveKey("sha512-123")
k, err := s.ResolveKey("sha512-123")
if k != "sha512-1234567890000000000000000000000000000000000000000000000000000000" {
t.Errorf("expected %q, got %q", "sha512-1234567890000000000000000000000000000000000000000000000000000000", k)
}
@@ -113,7 +113,7 @@ func TestResolveKey(t *testing.T) {
}
// Ambiguous prefix match
k, err = ds.ResolveKey("sha512-abc")
k, err = s.ResolveKey("sha512-abc")
if k != "" {
t.Errorf("expected %q, got %q", "", k)
}
@@ -122,7 +122,7 @@ func TestResolveKey(t *testing.T) {
}
// wrong key prefix
k, err = ds.ResolveKey("badprefix-1")
k, err = s.ResolveKey("badprefix-1")
expectedErr := "wrong key prefix"
if err == nil {
t.Errorf("expected non-nil error!")
@@ -132,7 +132,7 @@ func TestResolveKey(t *testing.T) {
}
// key too short
k, err = ds.ResolveKey("sha512-1")
k, err = s.ResolveKey("sha512-1")
expectedErr = "key too short"
if err == nil {
t.Errorf("expected non-nil error!")
@@ -148,7 +148,7 @@ func TestGetImageManifest(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
@@ -167,13 +167,13 @@ func TestGetImageManifest(t *testing.T) {
if _, err := aci.Seek(0, 0); err != nil {
t.Fatalf("unexpected error %v", err)
}
key, err := ds.WriteACI(aci, false)
key, err := s.WriteACI(aci, false)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
wanted := "example.com/test01"
im, err := ds.GetImageManifest(key)
im, err := s.GetImageManifest(key)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -182,7 +182,7 @@ func TestGetImageManifest(t *testing.T) {
}
// test unexistent key
im, err = ds.GetImageManifest("sha512-aaaaaaaaaaaaaaaaa")
im, err = s.GetImageManifest("sha512-aaaaaaaaaaaaaaaaa")
if err == nil {
t.Fatalf("expected non-nil error!")
}
@@ -205,7 +205,7 @@ func TestGetAci(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("unexpected error %v", err)
}
@@ -307,7 +307,7 @@ func TestGetAci(t *testing.T) {
t.Fatalf("unexpected error %v", err)
}
key, err := ds.WriteACI(aci, ad.latest)
key, err := s.WriteACI(aci, ad.latest)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -315,7 +315,7 @@ func TestGetAci(t *testing.T) {
}
for _, test := range tt.tests {
key, err := ds.GetACI(test.name, test.labels)
key, err := s.GetACI(test.name, test.labels)
if test.expected == -1 {
if err == nil {
t.Fatalf("Expected no key for appName %s, got %s", test.name, key)
@@ -339,7 +339,7 @@ func TestTreeStore(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -401,51 +401,51 @@ func TestTreeStore(t *testing.T) {
}
// Import the new ACI
key, err := ds.WriteACI(aci, false)
key, err := s.WriteACI(aci, false)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Ask the store to render the treestore
err = ds.RenderTreeStore(key, false)
err = s.RenderTreeStore(key, false)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Verify image Hash. Should be the same.
err = ds.CheckTreeStore(key)
err = s.CheckTreeStore(key)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Change a file permission
rootfs := ds.GetTreeStoreRootFS(key)
rootfs := s.GetTreeStoreRootFS(key)
err = os.Chmod(filepath.Join(rootfs, "a"), 0600)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Verify image Hash. Should be different
err = ds.CheckTreeStore(key)
err = s.CheckTreeStore(key)
if err == nil {
t.Fatalf("unexpected error: %v", err)
}
// rebuild the tree
err = ds.RenderTreeStore(key, true)
err = s.RenderTreeStore(key, true)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Add a file
rootfs = ds.GetTreeStoreRootFS(key)
rootfs = s.GetTreeStoreRootFS(key)
err = ioutil.WriteFile(filepath.Join(rootfs, "newfile"), []byte("newfile"), 0644)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Verify image Hash. Should be different
err = ds.CheckTreeStore(key)
err = s.CheckTreeStore(key)
if err == nil {
t.Fatalf("unexpected error: %v", err)
}
+2 -2
View File
@@ -34,7 +34,7 @@ type TreeStore struct {
// Write, to avoid having a rendered ACI with old stale files, requires that
// the destination directory doesn't exist (usually Remove should be called
// before Write)
func (ts *TreeStore) Write(key string, ds *Store) error {
func (ts *TreeStore) Write(key string, s *Store) error {
treepath := filepath.Join(ts.path, key)
fi, _ := os.Stat(treepath)
if fi != nil {
@@ -44,7 +44,7 @@ func (ts *TreeStore) Write(key string, ds *Store) error {
if err != nil {
return fmt.Errorf("treestore: cannot convert key to imageID: %v", err)
}
err = aci.RenderACIWithImageID(*imageID, treepath, ds)
err = aci.RenderACIWithImageID(*imageID, treepath, s)
if err != nil {
return fmt.Errorf("treestore: cannot render aci: %v", err)
}
+11 -11
View File
@@ -9,7 +9,7 @@ import (
"github.com/coreos/rkt/pkg/aci"
)
func treeStoreDSWriteACI(dir string, ds *Store) (string, error) {
func treeStoreWriteACI(dir string, s *Store) (string, error) {
imj := `
{
"acKind": "ImageManifest",
@@ -67,7 +67,7 @@ func treeStoreDSWriteACI(dir string, ds *Store) (string, error) {
}
// Import the new ACI
key, err := ds.WriteACI(aci, false)
key, err := s.WriteACI(aci, false)
if err != nil {
return "", err
}
@@ -80,24 +80,24 @@ func TestTreeStoreWrite(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
key, err := treeStoreDSWriteACI(dir, ds)
key, err := treeStoreWriteACI(dir, s)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Ask the store to render the treestore
err = ds.treestore.Write(key, ds)
err = s.treestore.Write(key, s)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Verify image Hash. Should be the same.
err = ds.treestore.Check(key)
err = s.treestore.Check(key)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -109,29 +109,29 @@ func TestTreeStoreRemove(t *testing.T) {
t.Fatalf("error creating tempdir: %v", err)
}
defer os.RemoveAll(dir)
ds, err := NewStore(dir)
s, err := NewStore(dir)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
key, err := treeStoreDSWriteACI(dir, ds)
key, err := treeStoreWriteACI(dir, s)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Test non existent dir
err = ds.treestore.Remove(key)
err = s.treestore.Remove(key)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
// Test rendered tree
err = ds.treestore.Write(key, ds)
err = s.treestore.Write(key, s)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
err = ds.treestore.Remove(key)
err = s.treestore.Remove(key)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}