-
Notifications
You must be signed in to change notification settings - Fork 11
/
config.go
37 lines (31 loc) · 1004 Bytes
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package nginx
import (
"github.com/ClessLi/bifrost/pkg/resolv/V3/nginx/configuration"
"github.com/marmotedu/errors"
)
type Config struct {
ManagersConfig map[string]*configuration.ManagerConfig
}
func (c *Config) Complete() (*CompletedConfig, error) {
var errs []error
var err error
cc := &CompletedConfig{make(map[string]*configuration.CompletedManagerConfig)}
for svrname, config := range c.ManagersConfig {
cc.ManagersConfig[svrname], err = config.Complete()
errs = append(errs, err)
}
return cc, errors.NewAggregate(errs)
}
type CompletedConfig struct {
ManagersConfig map[string]*configuration.CompletedManagerConfig
}
func (cc *CompletedConfig) NewConfigsManager() (ConfigsManager, error) {
var errs []error
var err error
m := &configsManager{make(map[string]configuration.NginxConfigManager)}
for svrname, config := range cc.ManagersConfig {
m.managerMap[svrname], err = config.NewNginxConfigManager()
errs = append(errs, err)
}
return m, errors.NewAggregate(errs)
}