12345678910111213141516171819202122232425262728293031323334353637 |
- package plugin
- import (
- "sync"
- "github.com/docker/docker/pkg/plugins"
- "github.com/docker/docker/plugin/v2"
- )
- // Store manages the plugin inventory in memory and on-disk
- type Store struct {
- sync.RWMutex
- plugins map[string]*v2.Plugin
- /* handlers are necessary for transition path of legacy plugins
- * to the new model. Legacy plugins use Handle() for registering an
- * activation callback.*/
- handlers map[string][]func(string, *plugins.Client)
- }
- // NewStore creates a Store.
- func NewStore() *Store {
- return &Store{
- plugins: make(map[string]*v2.Plugin),
- handlers: make(map[string][]func(string, *plugins.Client)),
- }
- }
- // CreateOpt is used to configure specific plugin details when created
- type CreateOpt func(p *v2.Plugin)
- // WithSwarmService is a CreateOpt that flags the passed in a plugin as a plugin
- // managed by swarm
- func WithSwarmService(id string) CreateOpt {
- return func(p *v2.Plugin) {
- p.SwarmServiceID = id
- }
- }
|