From c94d34f783944ff6586846ccd11e86925fcee171 Mon Sep 17 00:00:00 2001 From: John Howard Date: Thu, 18 Jan 2018 12:56:28 -0800 Subject: [PATCH] Remove OS() from layer interface Signed-off-by: John Howard --- distribution/xfer/download_test.go | 8 -------- image/store.go | 9 ++++++++- layer/empty.go | 4 ---- layer/layer.go | 7 ------- layer/layer_store.go | 4 ---- layer/mounted_layer.go | 4 ---- layer/ro_layer.go | 4 ---- migrate/v1/migratev1_test.go | 4 ---- 8 files changed, 8 insertions(+), 36 deletions(-) diff --git a/distribution/xfer/download_test.go b/distribution/xfer/download_test.go index 21adb594a2..0d86b658c1 100644 --- a/distribution/xfer/download_test.go +++ b/distribution/xfer/download_test.go @@ -57,10 +57,6 @@ func (ml *mockLayer) DiffSize() (size int64, err error) { return 0, nil } -func (ml *mockLayer) OS() string { - return ml.os -} - func (ml *mockLayer) Metadata() (map[string]string, error) { return make(map[string]string), nil } @@ -158,10 +154,6 @@ func (ls *mockLayerStore) DriverName() string { return "mock" } -func (ls *mockLayerStore) OS() string { - return runtime.GOOS -} - type mockDownloadDescriptor struct { currentDownloads *int32 id string diff --git a/image/store.go b/image/store.go index 1e1d5bfe14..60f499c9fe 100644 --- a/image/store.go +++ b/image/store.go @@ -224,6 +224,13 @@ func (is *store) Delete(id ID) ([]layer.Metadata, error) { if imageMeta == nil { return nil, fmt.Errorf("unrecognized image ID %s", id.String()) } + img, err := is.Get(id) + if err != nil { + return nil, fmt.Errorf("unrecognized image %s, %v", id.String(), err) + } + if !system.IsOSSupported(img.OperatingSystem()) { + return nil, fmt.Errorf("unsupported image operating system %q", img.OperatingSystem()) + } for id := range imageMeta.children { is.fs.DeleteMetadata(id.Digest(), "parent") } @@ -238,7 +245,7 @@ func (is *store) Delete(id ID) ([]layer.Metadata, error) { is.fs.Delete(id.Digest()) if imageMeta.layer != nil { - return is.lss[imageMeta.layer.OS()].Release(imageMeta.layer) + return is.lss[img.OperatingSystem()].Release(imageMeta.layer) } return nil, nil } diff --git a/layer/empty.go b/layer/empty.go index e8ae2a7457..80f2c12439 100644 --- a/layer/empty.go +++ b/layer/empty.go @@ -43,10 +43,6 @@ func (el *emptyLayer) Parent() Layer { return nil } -func (el *emptyLayer) OS() string { - return "" -} - func (el *emptyLayer) Size() (size int64, err error) { return 0, nil } diff --git a/layer/layer.go b/layer/layer.go index 12e7c4eb4d..2603ac5921 100644 --- a/layer/layer.go +++ b/layer/layer.go @@ -100,9 +100,6 @@ type Layer interface { // Parent returns the next layer in the layer chain. Parent() Layer - // OS returns the operating system of the layer - OS() string - // Size returns the size of the entire layer chain. The size // is calculated from the total size of all files in the layers. Size() (int64, error) @@ -148,9 +145,6 @@ type RWLayer interface { // Metadata returns the low level metadata for the mutable layer Metadata() (map[string]string, error) - - // OS returns the operating system of the writable layer - OS() string } // Metadata holds information about a @@ -199,7 +193,6 @@ type Store interface { Cleanup() error DriverStatus() [][2]string DriverName() string - OS() string } // DescribableStore represents a layer store capable of storing diff --git a/layer/layer_store.go b/layer/layer_store.go index 8ae559ed76..c6225386d0 100644 --- a/layer/layer_store.go +++ b/layer/layer_store.go @@ -725,10 +725,6 @@ func (ls *layerStore) DriverName() string { return ls.driver.String() } -func (ls *layerStore) OS() string { - return ls.os -} - type naiveDiffPathDriver struct { graphdriver.Driver } diff --git a/layer/mounted_layer.go b/layer/mounted_layer.go index c7decca32e..47ef966987 100644 --- a/layer/mounted_layer.go +++ b/layer/mounted_layer.go @@ -46,10 +46,6 @@ func (ml *mountedLayer) Parent() Layer { return nil } -func (ml *mountedLayer) OS() string { - return ml.layerStore.os -} - func (ml *mountedLayer) Size() (int64, error) { return ml.layerStore.driver.DiffSize(ml.mountID, ml.cacheParent()) } diff --git a/layer/ro_layer.go b/layer/ro_layer.go index 848d6742ce..29fa85362a 100644 --- a/layer/ro_layer.go +++ b/layer/ro_layer.go @@ -69,10 +69,6 @@ func (rl *roLayer) Parent() Layer { return rl.parent } -func (rl *roLayer) OS() string { - return rl.layerStore.os -} - func (rl *roLayer) Size() (size int64, err error) { if rl.parent != nil { size, err = rl.parent.Size() diff --git a/migrate/v1/migratev1_test.go b/migrate/v1/migratev1_test.go index 65804ffaf2..28b7df3f3d 100644 --- a/migrate/v1/migratev1_test.go +++ b/migrate/v1/migratev1_test.go @@ -432,10 +432,6 @@ func (l *mockLayer) DiffSize() (int64, error) { return 0, nil } -func (l *mockLayer) OS() string { - return "" -} - func (l *mockLayer) Metadata() (map[string]string, error) { return nil, nil }