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  }