Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8658748

Browse files
authored
Merge pull request #27293 from anusha-ragunathan/use-pluginv2-authz
Make authz use pluginv2
2 parents aba3a99 + c5393ee commit 8658748

File tree

20 files changed

+74
-76
lines changed

20 files changed

+74
-76
lines changed

cmd/dockerd/daemon.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,12 @@ func (cli *DaemonCli) start(opts daemonOptions) (err error) {
275275
"graphdriver": d.GraphDriverName(),
276276
}).Info("Docker daemon")
277277

278+
cli.d = d
279+
280+
// initMiddlewares needs cli.d to be populated. Dont change this init order.
278281
cli.initMiddlewares(api, serverConfig)
279282
initRouter(api, d, c)
280283

281-
cli.d = d
282284
cli.setupConfigReloadTrap()
283285

284286
// The serve API routine never exits unless an error occurs
@@ -438,6 +440,6 @@ func (cli *DaemonCli) initMiddlewares(s *apiserver.Server, cfg *apiserver.Config
438440
u := middleware.NewUserAgentMiddleware(v)
439441
s.UseMiddleware(u)
440442

441-
cli.authzMiddleware = authorization.NewMiddleware(cli.Config.AuthorizationPlugins)
443+
cli.authzMiddleware = authorization.NewMiddleware(cli.Config.AuthorizationPlugins, cli.d.PluginStore)
442444
s.UseMiddleware(cli.authzMiddleware)
443445
}

daemon/daemon.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ import (
4040
"github.com/docker/docker/pkg/fileutils"
4141
"github.com/docker/docker/pkg/graphdb"
4242
"github.com/docker/docker/pkg/idtools"
43+
"github.com/docker/docker/pkg/plugingetter"
4344
"github.com/docker/docker/pkg/progress"
4445
"github.com/docker/docker/pkg/registrar"
4546
"github.com/docker/docker/pkg/signal"
4647
"github.com/docker/docker/pkg/streamformatter"
4748
"github.com/docker/docker/pkg/sysinfo"
4849
"github.com/docker/docker/pkg/system"
4950
"github.com/docker/docker/pkg/truncindex"
50-
plugingetter "github.com/docker/docker/plugin/getter"
5151
pluginstore "github.com/docker/docker/plugin/store"
5252
"github.com/docker/docker/reference"
5353
"github.com/docker/docker/registry"
@@ -96,7 +96,7 @@ type Daemon struct {
9696
gidMaps []idtools.IDMap
9797
layerStore layer.Store
9898
imageStore image.Store
99-
pluginStore *pluginstore.Store
99+
PluginStore *pluginstore.Store
100100
nameIndex *registrar.Registrar
101101
linkIndex *linkIndex
102102
containerd libcontainerd.Client
@@ -559,7 +559,7 @@ func NewDaemon(config *Config, registryService registry.Service, containerdRemot
559559
driverName = config.GraphDriver
560560
}
561561

562-
d.pluginStore = pluginstore.NewStore(config.Root)
562+
d.PluginStore = pluginstore.NewStore(config.Root)
563563

564564
d.layerStore, err = layer.NewStoreFromOptions(layer.StoreOptions{
565565
StorePath: config.Root,
@@ -568,7 +568,7 @@ func NewDaemon(config *Config, registryService registry.Service, containerdRemot
568568
GraphDriverOptions: config.GraphOptions,
569569
UIDMaps: uidMaps,
570570
GIDMaps: gidMaps,
571-
PluginGetter: d.pluginStore,
571+
PluginGetter: d.PluginStore,
572572
})
573573
if err != nil {
574574
return nil, err
@@ -926,7 +926,7 @@ func (daemon *Daemon) configureVolumes(rootUID, rootGID int) (*store.VolumeStore
926926
return nil, err
927927
}
928928

929-
volumedrivers.RegisterPluginGetter(daemon.pluginStore)
929+
volumedrivers.RegisterPluginGetter(daemon.PluginStore)
930930

931931
if !volumedrivers.Register(volumesDriver, volumesDriver.Name()) {
932932
return nil, fmt.Errorf("local volume driver could not be registered")
@@ -1102,7 +1102,7 @@ func (daemon *Daemon) reloadClusterDiscovery(config *Config) error {
11021102
if daemon.netController == nil {
11031103
return nil
11041104
}
1105-
netOptions, err := daemon.networkOptions(daemon.configStore, daemon.pluginStore, nil)
1105+
netOptions, err := daemon.networkOptions(daemon.configStore, daemon.PluginStore, nil)
11061106
if err != nil {
11071107
logrus.WithError(err).Warnf("failed to get options with network controller")
11081108
return nil

daemon/daemon_experimental.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func (daemon *Daemon) verifyExperimentalContainerSettings(hostConfig *container.
1313
}
1414

1515
func pluginInit(d *Daemon, cfg *Config, remote libcontainerd.Remote) error {
16-
return plugin.Init(cfg.Root, d.pluginStore, remote, d.RegistryService, cfg.LiveRestoreEnabled, d.LogPluginEvent)
16+
return plugin.Init(cfg.Root, d.PluginStore, remote, d.RegistryService, cfg.LiveRestoreEnabled, d.LogPluginEvent)
1717
}
1818

1919
func pluginShutdown() {

daemon/daemon_unix.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ func configureKernelSecuritySupport(config *Config, driverName string) error {
613613
}
614614

615615
func (daemon *Daemon) initNetworkController(config *Config, activeSandboxes map[string]interface{}) (libnetwork.NetworkController, error) {
616-
netOptions, err := daemon.networkOptions(config, daemon.pluginStore, activeSandboxes)
616+
netOptions, err := daemon.networkOptions(config, daemon.PluginStore, activeSandboxes)
617617
if err != nil {
618618
return nil, err
619619
}

daemon/graphdriver/driver.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212

1313
"github.com/docker/docker/pkg/archive"
1414
"github.com/docker/docker/pkg/idtools"
15-
"github.com/docker/docker/plugin/getter"
15+
"github.com/docker/docker/pkg/plugingetter"
1616
)
1717

1818
// FsMagic unsigned id of the filesystem in use.
@@ -135,11 +135,11 @@ func Register(name string, initFunc InitFunc) error {
135135
}
136136

137137
// GetDriver initializes and returns the registered driver
138-
func GetDriver(name, home string, options []string, uidMaps, gidMaps []idtools.IDMap, plugingetter getter.PluginGetter) (Driver, error) {
138+
func GetDriver(name, home string, options []string, uidMaps, gidMaps []idtools.IDMap, pg plugingetter.PluginGetter) (Driver, error) {
139139
if initFunc, exists := drivers[name]; exists {
140140
return initFunc(filepath.Join(home, name), options, uidMaps, gidMaps)
141141
}
142-
if pluginDriver, err := lookupPlugin(name, home, options, plugingetter); err == nil {
142+
if pluginDriver, err := lookupPlugin(name, home, options, pg); err == nil {
143143
return pluginDriver, nil
144144
}
145145
logrus.Errorf("Failed to GetDriver graph %s %s", name, home)
@@ -156,10 +156,10 @@ func getBuiltinDriver(name, home string, options []string, uidMaps, gidMaps []id
156156
}
157157

158158
// New creates the driver and initializes it at the specified root.
159-
func New(root string, name string, options []string, uidMaps, gidMaps []idtools.IDMap, plugingetter getter.PluginGetter) (Driver, error) {
159+
func New(root string, name string, options []string, uidMaps, gidMaps []idtools.IDMap, pg plugingetter.PluginGetter) (Driver, error) {
160160
if name != "" {
161161
logrus.Debugf("[graphdriver] trying provided driver: %s", name) // so the logs show specified driver
162-
return GetDriver(name, root, options, uidMaps, gidMaps, plugingetter)
162+
return GetDriver(name, root, options, uidMaps, gidMaps, pg)
163163
}
164164

165165
// Guess for prior driver

daemon/graphdriver/plugin.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"fmt"
77
"io"
88

9-
"github.com/docker/docker/plugin/getter"
9+
"github.com/docker/docker/pkg/plugingetter"
1010
)
1111

1212
type pluginClient interface {
@@ -18,8 +18,8 @@ type pluginClient interface {
1818
SendFile(string, io.Reader, interface{}) error
1919
}
2020

21-
func lookupPlugin(name, home string, opts []string, pluginGetter getter.PluginGetter) (Driver, error) {
22-
pl, err := pluginGetter.Get(name, "GraphDriver", getter.LOOKUP)
21+
func lookupPlugin(name, home string, opts []string, pg plugingetter.PluginGetter) (Driver, error) {
22+
pl, err := pg.Get(name, "GraphDriver", plugingetter.LOOKUP)
2323
if err != nil {
2424
return nil, fmt.Errorf("Error looking up graphdriver plugin %s: %v", name, err)
2525
}

daemon/graphdriver/plugin_unsupported.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
package graphdriver
44

5-
import "github.com/docker/docker/plugin/getter"
5+
import "github.com/docker/docker/pkg/plugingetter"
66

7-
func lookupPlugin(name, home string, opts []string, plugingetter getter.PluginGetter) (Driver, error) {
7+
func lookupPlugin(name, home string, opts []string, pg plugingetter.PluginGetter) (Driver, error) {
88
return nil, ErrNotSupported
99
}

hack/vendor.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ clone git github.com/RackSec/srslog 365bf33cd9acc21ae1c355209865f17228ca534e
7070
clone git github.com/imdario/mergo 0.2.1
7171

7272
#get libnetwork packages
73-
clone git github.com/docker/libnetwork 7b74403be4241aea5b01b56adab5eab82a80698b
73+
clone git github.com/docker/libnetwork 848cd92ec23e3ab15a36412030ed61e3844b40e1
7474
clone git github.com/docker/go-events 18b43f1bc85d9cdd42c05a6cd2d444c7a200a894
7575
clone git github.com/armon/go-radix e39d623f12e8e41c7b5529e9a9dd67a1e2261f80
7676
clone git github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec

layer/layer_store.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import (
1313
"github.com/docker/docker/daemon/graphdriver"
1414
"github.com/docker/docker/pkg/archive"
1515
"github.com/docker/docker/pkg/idtools"
16+
"github.com/docker/docker/pkg/plugingetter"
1617
"github.com/docker/docker/pkg/stringid"
17-
"github.com/docker/docker/plugin/getter"
1818
"github.com/vbatts/tar-split/tar/asm"
1919
"github.com/vbatts/tar-split/tar/storage"
2020
)
@@ -45,7 +45,7 @@ type StoreOptions struct {
4545
GraphDriverOptions []string
4646
UIDMaps []idtools.IDMap
4747
GIDMaps []idtools.IDMap
48-
PluginGetter getter.PluginGetter
48+
PluginGetter plugingetter.PluginGetter
4949
}
5050

5151
// NewStoreFromOptions creates a new Store instance

pkg/authorization/middleware.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"sync"
66

77
"github.com/Sirupsen/logrus"
8+
"github.com/docker/docker/pkg/plugingetter"
89
"golang.org/x/net/context"
910
)
1011

@@ -17,7 +18,8 @@ type Middleware struct {
1718

1819
// NewMiddleware creates a new Middleware
1920
// with a slice of plugins names.
20-
func NewMiddleware(names []string) *Middleware {
21+
func NewMiddleware(names []string, pg plugingetter.PluginGetter) *Middleware {
22+
SetPluginGetter(pg)
2123
return &Middleware{
2224
plugins: newPlugins(names),
2325
}

0 commit comments

Comments
 (0)