@@ -27,7 +27,7 @@ import (
27
27
const maxLayerDepth = 125
28
28
29
29
type layerStore struct {
30
- store MetadataStore
30
+ store * fileMetadataStore
31
31
driver graphdriver.Driver
32
32
useTarSplit bool
33
33
@@ -65,18 +65,15 @@ func NewStoreFromOptions(options StoreOptions) (Store, error) {
65
65
}
66
66
logrus .Debugf ("Initialized graph driver %s" , driver )
67
67
68
- fms , err := NewFSMetadataStore (fmt .Sprintf (options .MetadataStorePathTemplate , driver ))
69
- if err != nil {
70
- return nil , err
71
- }
68
+ root := fmt .Sprintf (options .MetadataStorePathTemplate , driver )
72
69
73
- return NewStoreFromGraphDriver ( fms , driver , options .OS )
70
+ return newStoreFromGraphDriver ( root , driver , options .OS )
74
71
}
75
72
76
- // NewStoreFromGraphDriver creates a new Store instance using the provided
73
+ // newStoreFromGraphDriver creates a new Store instance using the provided
77
74
// metadata store and graph driver. The metadata store will be used to restore
78
75
// the Store.
79
- func NewStoreFromGraphDriver ( store MetadataStore , driver graphdriver.Driver , os string ) (Store , error ) {
76
+ func newStoreFromGraphDriver ( root string , driver graphdriver.Driver , os string ) (Store , error ) {
80
77
if ! system .IsOSSupported (os ) {
81
78
return nil , fmt .Errorf ("failed to initialize layer store as operating system '%s' is not supported" , os )
82
79
}
@@ -85,16 +82,21 @@ func NewStoreFromGraphDriver(store MetadataStore, driver graphdriver.Driver, os
85
82
caps = capDriver .Capabilities ()
86
83
}
87
84
85
+ ms , err := newFSMetadataStore (root )
86
+ if err != nil {
87
+ return nil , err
88
+ }
89
+
88
90
ls := & layerStore {
89
- store : store ,
91
+ store : ms ,
90
92
driver : driver ,
91
93
layerMap : map [ChainID ]* roLayer {},
92
94
mounts : map [string ]* mountedLayer {},
93
95
useTarSplit : ! caps .ReproducesExactDiffs ,
94
96
os : os ,
95
97
}
96
98
97
- ids , mounts , err := store .List ()
99
+ ids , mounts , err := ms .List ()
98
100
if err != nil {
99
101
return nil , err
100
102
}
@@ -225,7 +227,7 @@ func (ls *layerStore) loadMount(mount string) error {
225
227
return nil
226
228
}
227
229
228
- func (ls * layerStore ) applyTar (tx MetadataTransaction , ts io.Reader , parent string , layer * roLayer ) error {
230
+ func (ls * layerStore ) applyTar (tx * fileMetadataTransaction , ts io.Reader , parent string , layer * roLayer ) error {
229
231
digester := digest .Canonical .Digester ()
230
232
tr := io .TeeReader (ts , digester .Hash ())
231
233
0 commit comments