This method return a map associating a chain ID to its layer object
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
| ... | ... |
@@ -71,6 +71,16 @@ func createChainIDFromParent(parent layer.ChainID, dgsts ...layer.DiffID) layer. |
| 71 | 71 |
return createChainIDFromParent(layer.ChainID(dgst), dgsts[1:]...) |
| 72 | 72 |
} |
| 73 | 73 |
|
| 74 |
+func (ls *mockLayerStore) Map() map[layer.ChainID]layer.Layer {
|
|
| 75 |
+ layers := map[layer.ChainID]layer.Layer{}
|
|
| 76 |
+ |
|
| 77 |
+ for k, v := range ls.layers {
|
|
| 78 |
+ layers[k] = v |
|
| 79 |
+ } |
|
| 80 |
+ |
|
| 81 |
+ return layers |
|
| 82 |
+} |
|
| 83 |
+ |
|
| 74 | 84 |
func (ls *mockLayerStore) Register(reader io.Reader, parentID layer.ChainID) (layer.Layer, error) {
|
| 75 | 85 |
return ls.RegisterWithDescriptor(reader, parentID, distribution.Descriptor{})
|
| 76 | 86 |
} |
| ... | ... |
@@ -170,6 +170,7 @@ type MountInit func(root string) error |
| 170 | 170 |
type Store interface {
|
| 171 | 171 |
Register(io.Reader, ChainID) (Layer, error) |
| 172 | 172 |
Get(ChainID) (Layer, error) |
| 173 |
+ Map() map[ChainID]Layer |
|
| 173 | 174 |
Release(Layer) ([]Metadata, error) |
| 174 | 175 |
|
| 175 | 176 |
CreateRWLayer(id string, parent ChainID, mountLabel string, initFunc MountInit, storageOpt map[string]string) (RWLayer, error) |
| ... | ... |
@@ -360,6 +360,19 @@ func (ls *layerStore) Get(l ChainID) (Layer, error) {
|
| 360 | 360 |
return layer.getReference(), nil |
| 361 | 361 |
} |
| 362 | 362 |
|
| 363 |
+func (ls *layerStore) Map() map[ChainID]Layer {
|
|
| 364 |
+ ls.layerL.Lock() |
|
| 365 |
+ defer ls.layerL.Unlock() |
|
| 366 |
+ |
|
| 367 |
+ layers := map[ChainID]Layer{}
|
|
| 368 |
+ |
|
| 369 |
+ for k, v := range ls.layerMap {
|
|
| 370 |
+ layers[k] = v |
|
| 371 |
+ } |
|
| 372 |
+ |
|
| 373 |
+ return layers |
|
| 374 |
+} |
|
| 375 |
+ |
|
| 363 | 376 |
func (ls *layerStore) deleteLayer(layer *roLayer, metadata *Metadata) error {
|
| 364 | 377 |
err := ls.driver.Remove(layer.cacheID) |
| 365 | 378 |
if err != nil {
|