mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
b2551c619d
Signed-off-by: Ignacio Capurro <icapurrofagian@gmail.com>
74 lines
2 KiB
Go
74 lines
2 KiB
Go
package test
|
|
|
|
import (
|
|
"github.com/docker/docker/api/types"
|
|
"github.com/docker/docker/cli/config/credentials"
|
|
)
|
|
|
|
// fake store implements a credentials.Store that only acts as an in memory map
|
|
type fakeStore struct {
|
|
store map[string]types.AuthConfig
|
|
eraseFunc func(serverAddress string) error
|
|
getFunc func(serverAddress string) (types.AuthConfig, error)
|
|
getAllFunc func() (map[string]types.AuthConfig, error)
|
|
storeFunc func(authConfig types.AuthConfig) error
|
|
}
|
|
|
|
// NewFakeStore creates a new file credentials store.
|
|
func NewFakeStore() credentials.Store {
|
|
return &fakeStore{store: map[string]types.AuthConfig{}}
|
|
}
|
|
|
|
func (c *fakeStore) SetStore(store map[string]types.AuthConfig) {
|
|
c.store = store
|
|
}
|
|
|
|
func (c *fakeStore) SetEraseFunc(eraseFunc func(string) error) {
|
|
c.eraseFunc = eraseFunc
|
|
}
|
|
|
|
func (c *fakeStore) SetGetFunc(getFunc func(string) (types.AuthConfig, error)) {
|
|
c.getFunc = getFunc
|
|
}
|
|
|
|
func (c *fakeStore) SetGetAllFunc(getAllFunc func() (map[string]types.AuthConfig, error)) {
|
|
c.getAllFunc = getAllFunc
|
|
}
|
|
|
|
func (c *fakeStore) SetStoreFunc(storeFunc func(types.AuthConfig) error) {
|
|
c.storeFunc = storeFunc
|
|
}
|
|
|
|
// Erase removes the given credentials from the map store
|
|
func (c *fakeStore) Erase(serverAddress string) error {
|
|
if c.eraseFunc != nil {
|
|
return c.eraseFunc(serverAddress)
|
|
}
|
|
delete(c.store, serverAddress)
|
|
return nil
|
|
}
|
|
|
|
// Get retrieves credentials for a specific server from the map store.
|
|
func (c *fakeStore) Get(serverAddress string) (types.AuthConfig, error) {
|
|
if c.getFunc != nil {
|
|
return c.getFunc(serverAddress)
|
|
}
|
|
authConfig, _ := c.store[serverAddress]
|
|
return authConfig, nil
|
|
}
|
|
|
|
func (c *fakeStore) GetAll() (map[string]types.AuthConfig, error) {
|
|
if c.getAllFunc != nil {
|
|
return c.getAllFunc()
|
|
}
|
|
return c.store, nil
|
|
}
|
|
|
|
// Store saves the given credentials in the map store.
|
|
func (c *fakeStore) Store(authConfig types.AuthConfig) error {
|
|
if c.storeFunc != nil {
|
|
return c.storeFunc(authConfig)
|
|
}
|
|
c.store[authConfig.ServerAddress] = authConfig
|
|
return nil
|
|
}
|