зеркало из https://github.com/microsoft/docker.git
35 строки
654 B
Go
35 строки
654 B
Go
package layer
|
|
|
|
import "errors"
|
|
|
|
// GetLayerPath returns the path to a layer
|
|
func GetLayerPath(s Store, layer ChainID) (string, error) {
|
|
ls, ok := s.(*layerStore)
|
|
if !ok {
|
|
return "", errors.New("unsupported layer store")
|
|
}
|
|
ls.layerL.Lock()
|
|
defer ls.layerL.Unlock()
|
|
|
|
rl, ok := ls.layerMap[layer]
|
|
if !ok {
|
|
return "", ErrLayerDoesNotExist
|
|
}
|
|
|
|
path, err := ls.driver.Get(rl.cacheID, "")
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
if err := ls.driver.Put(rl.cacheID); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return path, nil
|
|
}
|
|
|
|
func (ls *layerStore) mountID(name string) string {
|
|
// windows has issues if container ID doesn't match mount ID
|
|
return name
|
|
}
|