github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/creds/dummy/manager_factory.go (about) 1 package dummy 2 3 import ( 4 "fmt" 5 "github.com/pf-qiu/concourse/v6/atc/creds" 6 flags "github.com/jessevdk/go-flags" 7 ) 8 9 type managerFactory struct{} 10 11 func init() { 12 creds.Register("dummy", NewManagerFactory()) 13 } 14 15 func NewManagerFactory() creds.ManagerFactory { 16 return &managerFactory{} 17 } 18 19 func (factory *managerFactory) AddConfig(group *flags.Group) creds.Manager { 20 manager := &Manager{} 21 22 subGroup, err := group.AddGroup("Dummy Credential Management", "", manager) 23 if err != nil { 24 panic(err) 25 } 26 27 subGroup.Namespace = "dummy-creds" 28 29 return manager 30 } 31 32 func (factory *managerFactory) NewInstance(config interface{}) (creds.Manager, error) { 33 configMap, ok := config.(map[string]interface{}) 34 if !ok { 35 return nil, fmt.Errorf("invalid dummy credential manager config: %T", config) 36 } 37 38 vars, ok := configMap["vars"].(map[string]interface{}) 39 if !ok { 40 return nil, fmt.Errorf("invalid vars config: %T", configMap["vars"]) 41 } 42 43 manager := &Manager{} 44 45 for k, v := range vars { 46 manager.Vars = append(manager.Vars, VarFlag{ 47 Name: k, 48 Value: v, 49 }) 50 } 51 52 return manager, nil 53 }