blob: 6d3212a405b0473261747727dce0cdcbe43d7125 [file] [log] [blame]
Samuel A. Falvo IIfd78c302013-06-25 16:35:32 -07001package gophercloud
2
Samuel A. Falvo IIfd78c302013-06-25 16:35:32 -07003type Provider struct {
Samuel A. Falvo II5d0d74c2013-06-25 17:23:18 -07004 AuthEndpoint string
Samuel A. Falvo IIfd78c302013-06-25 16:35:32 -07005}
6
7var providerMap = make(map[string]*Provider)
8
9func (c *Context) RegisterProvider(name string, p *Provider) error {
Samuel A. Falvo II5d0d74c2013-06-25 17:23:18 -070010 if p.AuthEndpoint == "" {
11 return ErrConfiguration
12 }
13
Samuel A. Falvo IIfd78c302013-06-25 16:35:32 -070014 c.providerMap[name] = p
15 return nil
16}
17
18func (c *Context) ProviderByName(name string) (p *Provider, err error) {
19 for provider, descriptor := range c.providerMap {
20 if name == provider {
21 return descriptor, nil
22 }
23 }
24 return nil, ErrProvider
25}