Files
gocast/config/config.go
Mayuresh Gaitonde e076c04edb add apps from config
2018-11-05 14:28:53 -08:00

46 lines
1.0 KiB
Go

package config
import (
"github.com/golang/glog"
"gopkg.in/yaml.v2"
"io/ioutil"
"path/filepath"
"time"
)
type Config struct {
Agent struct {
ListenAddr string `yaml:"listen_addr"`
MonitorInterval time.Duration `yaml:"monitor_interval"`
CleanupTimer time.Duration `yaml:"cleanup_timer"`
ConsulAddr string `yaml:"consul_addr"`
ConsulQueryInterval time.Duration `yaml:"consul_query_interval"`
}
Bgp struct {
LocalAS int `yaml:"local_as"`
PeerAS int `yaml:"peer_as"`
PeerIP string `yaml:"peer_ip"`
Communities []string
Origin string
}
Apps []struct {
Name string
Vip string
Monitors []string
Nats []string
}
}
func GetConfig(file string) *Config {
absPath, _ := filepath.Abs(file)
data, err := ioutil.ReadFile(absPath)
if err != nil {
glog.Exitf("FATAL: Unable to read config file: %v", err)
}
config := &Config{}
if err := yaml.Unmarshal(data, config); err != nil {
glog.Exitf("FATAL: Unable to decode yaml: %v", err)
}
return config
}