From e5eeaef5e3bfee8b9e31dff11d353fd63e77e9fb Mon Sep 17 00:00:00 2001 From: Jonathan Boulle Date: Sat, 18 Apr 2015 20:31:50 -0700 Subject: [PATCH] store: rename ds -> s ds was a legacy name reflecting the store was once DownloadStore --- store/aciinfo_test.go | 10 ++-- store/remote_test.go | 8 ++-- store/store.go | 108 +++++++++++++++++++++--------------------- store/store_test.go | 52 ++++++++++---------- store/tree.go | 4 +- store/tree_test.go | 22 ++++----- 6 files changed, 102 insertions(+), 102 deletions(-) diff --git a/store/aciinfo_test.go b/store/aciinfo_test.go index 332cb78..46189dd 100644 --- a/store/aciinfo_test.go +++ b/store/aciinfo_test.go @@ -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 { diff --git a/store/remote_test.go b/store/remote_test.go index 3b88c1e..bf23abe 100644 --- a/store/remote_test.go +++ b/store/remote_test.go @@ -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") diff --git a/store/store.go b/store/store.go index be25edf..9a92eea 100644 --- a/store/store.go +++ b/store/store.go @@ -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) } diff --git a/store/store_test.go b/store/store_test.go index 181db4d..17327e6 100644 --- a/store/store_test.go +++ b/store/store_test.go @@ -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) } diff --git a/store/tree.go b/store/tree.go index fc85376..be79c2b 100644 --- a/store/tree.go +++ b/store/tree.go @@ -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) } diff --git a/store/tree_test.go b/store/tree_test.go index 55a9443..488a905 100644 --- a/store/tree_test.go +++ b/store/tree_test.go @@ -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) }