Skip to content

Commit dc7cbb9

Browse files
committed
remove layerstore indexing by OS (used for LCOW)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent b7b7571 commit dc7cbb9

27 files changed

+124
-214
lines changed

daemon/container.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ func (daemon *Daemon) newContainer(name string, operatingSystem string, config *
158158
base.ImageID = imgID
159159
base.NetworkSettings = &network.Settings{IsAnonymousEndpoint: noExplicitName}
160160
base.Name = name
161-
base.Driver = daemon.imageService.GraphDriverForOS(operatingSystem)
161+
base.Driver = daemon.imageService.GraphDriverName()
162162
base.OS = operatingSystem
163163
return base, err
164164
}

daemon/daemon.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ func (daemon *Daemon) restore() error {
250250
}
251251
// Ignore the container if it does not support the current driver being used by the graph
252252
if (c.Driver == "" && daemon.graphDriver == "aufs") || c.Driver == daemon.graphDriver {
253-
rwlayer, err := daemon.imageService.GetLayerByID(c.ID, c.OS)
253+
rwlayer, err := daemon.imageService.GetLayerByID(c.ID)
254254
if err != nil {
255255
log.WithError(err).Error("failed to load container mount")
256256
return
@@ -1003,10 +1003,7 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
10031003
return nil, err
10041004
}
10051005

1006-
// TODO remove multiple imagestores map now that LCOW is no more
1007-
imageStore, err := image.NewImageStore(ifs, map[string]image.LayerGetReleaser{
1008-
runtime.GOOS: layerStore,
1009-
})
1006+
imageStore, err := image.NewImageStore(ifs, layerStore)
10101007
if err != nil {
10111008
return nil, err
10121009
}
@@ -1084,7 +1081,7 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
10841081
DistributionMetadataStore: distributionMetadataStore,
10851082
EventsService: d.EventsService,
10861083
ImageStore: imageStore,
1087-
LayerStores: map[string]layer.Store{runtime.GOOS: layerStore}, // TODO remove multiple LayerStores map now that LCOW is no more
1084+
LayerStore: layerStore,
10881085
MaxConcurrentDownloads: *config.MaxConcurrentDownloads,
10891086
MaxConcurrentUploads: *config.MaxConcurrentUploads,
10901087
MaxDownloadAttempts: *config.MaxDownloadAttempts,
@@ -1231,7 +1228,7 @@ func (daemon *Daemon) Shutdown() error {
12311228
log.WithError(err).Error("failed to shut down container")
12321229
return
12331230
}
1234-
if mountid, err := daemon.imageService.GetLayerMountID(c.ID, c.OS); err == nil {
1231+
if mountid, err := daemon.imageService.GetLayerMountID(c.ID); err == nil {
12351232
daemon.cleanupMountsByID(mountid)
12361233
}
12371234
log.Debugf("shut down container")
@@ -1294,7 +1291,7 @@ func (daemon *Daemon) Mount(container *container.Container) error {
12941291
if runtime.GOOS != "windows" {
12951292
daemon.Unmount(container)
12961293
return fmt.Errorf("Error: driver %s is returning inconsistent paths for container %s ('%s' then '%s')",
1297-
daemon.imageService.GraphDriverForOS(container.OS), container.ID, container.BaseFS, dir)
1294+
daemon.imageService.GraphDriverName(), container.ID, container.BaseFS, dir)
12981295
}
12991296
}
13001297
container.BaseFS = dir // TODO: combine these fields

daemon/export.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func (daemon *Daemon) containerExport(container *container.Container) (arch io.R
5050
if !system.IsOSSupported(container.OS) {
5151
return nil, fmt.Errorf("cannot export %s: %s ", container.ID, system.ErrNotSupportedOperatingSystem)
5252
}
53-
rwlayer, err := daemon.imageService.GetLayerByID(container.ID, container.OS)
53+
rwlayer, err := daemon.imageService.GetLayerByID(container.ID)
5454
if err != nil {
5555
return nil, err
5656
}

daemon/images/image_builder.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func (i *ImageService) GetImageAndReleasableLayer(ctx context.Context, refOrID s
206206
if !system.IsOSSupported(os) {
207207
return nil, nil, system.ErrNotSupportedOperatingSystem
208208
}
209-
layer, err := newROLayerForImage(nil, i.layerStores[os])
209+
layer, err := newROLayerForImage(nil, i.layerStore)
210210
return nil, layer, err
211211
}
212212

@@ -220,7 +220,7 @@ func (i *ImageService) GetImageAndReleasableLayer(ctx context.Context, refOrID s
220220
if !system.IsOSSupported(image.OperatingSystem()) {
221221
return nil, nil, system.ErrNotSupportedOperatingSystem
222222
}
223-
layer, err := newROLayerForImage(image, i.layerStores[image.OperatingSystem()])
223+
layer, err := newROLayerForImage(image, i.layerStore)
224224
return image, layer, err
225225
}
226226
}
@@ -232,7 +232,7 @@ func (i *ImageService) GetImageAndReleasableLayer(ctx context.Context, refOrID s
232232
if !system.IsOSSupported(image.OperatingSystem()) {
233233
return nil, nil, system.ErrNotSupportedOperatingSystem
234234
}
235-
layer, err := newROLayerForImage(image, i.layerStores[image.OperatingSystem()])
235+
layer, err := newROLayerForImage(image, i.layerStore)
236236
return image, layer, err
237237
}
238238

daemon/images/image_commit.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,12 @@ import (
88
"github.com/docker/docker/image"
99
"github.com/docker/docker/layer"
1010
"github.com/docker/docker/pkg/ioutils"
11-
"github.com/docker/docker/pkg/system"
1211
"github.com/pkg/errors"
1312
)
1413

1514
// CommitImage creates a new image from a commit config
1615
func (i *ImageService) CommitImage(c backend.CommitConfig) (image.ID, error) {
17-
layerStore, ok := i.layerStores[c.ContainerOS]
18-
if !ok {
19-
return "", system.ErrNotSupportedOperatingSystem
20-
}
21-
rwTar, err := exportContainerRw(layerStore, c.ContainerID, c.ContainerMountLabel)
16+
rwTar, err := exportContainerRw(i.layerStore, c.ContainerID, c.ContainerMountLabel)
2217
if err != nil {
2318
return "", err
2419
}
@@ -39,11 +34,11 @@ func (i *ImageService) CommitImage(c backend.CommitConfig) (image.ID, error) {
3934
}
4035
}
4136

42-
l, err := layerStore.Register(rwTar, parent.RootFS.ChainID())
37+
l, err := i.layerStore.Register(rwTar, parent.RootFS.ChainID())
4338
if err != nil {
4439
return "", err
4540
}
46-
defer layer.ReleaseAndLog(layerStore, l)
41+
defer layer.ReleaseAndLog(i.layerStore, l)
4742

4843
cc := image.ChildConfig{
4944
ContainerID: c.ContainerID,

daemon/images/image_exporter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ import (
1212
// the same tag are exported. names is the set of tags to export, and
1313
// outStream is the writer which the images are written to.
1414
func (i *ImageService) ExportImage(names []string, outStream io.Writer) error {
15-
imageExporter := tarexport.NewTarExporter(i.imageStore, i.layerStores, i.referenceStore, i)
15+
imageExporter := tarexport.NewTarExporter(i.imageStore, i.layerStore, i.referenceStore, i)
1616
return imageExporter.Save(names, outStream)
1717
}
1818

1919
// LoadImage uploads a set of images into the repository. This is the
2020
// complement of ExportImage. The input stream is an uncompressed tar
2121
// ball containing images and metadata.
2222
func (i *ImageService) LoadImage(inTar io.ReadCloser, outStream io.Writer, quiet bool) error {
23-
imageExporter := tarexport.NewTarExporter(i.imageStore, i.layerStores, i.referenceStore, i)
23+
imageExporter := tarexport.NewTarExporter(i.imageStore, i.layerStore, i.referenceStore, i)
2424
return imageExporter.Load(inTar, outStream, quiet)
2525
}

daemon/images/image_history.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ func (i *ImageService) ImageHistory(name string) ([]*image.HistoryResponseItem,
3636
return nil, system.ErrNotSupportedOperatingSystem
3737
}
3838
rootFS.Append(img.RootFS.DiffIDs[layerCounter])
39-
l, err := i.layerStores[img.OperatingSystem()].Get(rootFS.ChainID())
39+
l, err := i.layerStore.Get(rootFS.ChainID())
4040
if err != nil {
4141
return nil, err
4242
}
4343
layerSize, err = l.DiffSize()
44-
layer.ReleaseAndLog(i.layerStores[img.OperatingSystem()], l)
44+
layer.ReleaseAndLog(i.layerStore, l)
4545
if err != nil {
4646
return nil, err
4747
}

daemon/images/image_import.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,11 @@ func (i *ImageService) ImportImage(src string, repository, os string, tag string
9191
if err != nil {
9292
return err
9393
}
94-
l, err := i.layerStores[os].Register(inflatedLayerData, "")
94+
l, err := i.layerStore.Register(inflatedLayerData, "")
9595
if err != nil {
9696
return err
9797
}
98-
defer layer.ReleaseAndLog(i.layerStores[os], l)
98+
defer layer.ReleaseAndLog(i.layerStore, l)
9999

100100
created := time.Now().UTC()
101101
imgConfig, err := json.Marshal(&image.Image{

daemon/images/image_inspect.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ func (i *ImageService) LookupImage(name string) (*types.ImageInspect, error) {
3737
var layerMetadata map[string]string
3838
layerID := img.RootFS.ChainID()
3939
if layerID != "" {
40-
l, err := i.layerStores[img.OperatingSystem()].Get(layerID)
40+
l, err := i.layerStore.Get(layerID)
4141
if err != nil {
4242
return nil, err
4343
}
44-
defer layer.ReleaseAndLog(i.layerStores[img.OperatingSystem()], l)
44+
defer layer.ReleaseAndLog(i.layerStore, l)
4545
size, err = l.Size()
4646
if err != nil {
4747
return nil, err
@@ -87,7 +87,7 @@ func (i *ImageService) LookupImage(name string) (*types.ImageInspect, error) {
8787
},
8888
}
8989

90-
imageInspect.GraphDriver.Name = i.layerStores[img.OperatingSystem()].DriverName()
90+
imageInspect.GraphDriver.Name = i.layerStore.DriverName()
9191
imageInspect.GraphDriver.Data = layerMetadata
9292

9393
return imageInspect, nil

daemon/images/image_prune.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,7 @@ func (i *ImageService) ImagesPrune(ctx context.Context, pruneFilters filters.Arg
6868
}
6969

7070
// Filter intermediary images and get their unique size
71-
allLayers := make(map[layer.ChainID]layer.Layer)
72-
for _, ls := range i.layerStores {
73-
for k, v := range ls.Map() {
74-
allLayers[k] = v
75-
}
76-
}
71+
allLayers := i.layerStore.Map()
7772
topImages := map[image.ID]*image.Image{}
7873
for id, img := range allImages {
7974
select {

0 commit comments

Comments
 (0)