/
parse_config.go
92 lines (83 loc) · 2.02 KB
/
parse_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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package conf
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
"os"
)
func ParseConfInfo() GlobalConfig {
var g GlobalConfig
fmt.Println(Configure)
err := yaml.Unmarshal([]byte(Configure),&g)
if err != nil {
panic("Global Config Error!")
}
fmt.Println(g.Port)
path,err := GetDir(g.GatewayConfPath)
if err != nil {
panic("Gateway Config Path Error!")
}
fmt.Println(path)
gatewayList := GetGatewayList(path)
g.GatewayList = gatewayList
return g
}
func GetGatewayList(path []string) []GatewayInfo {
gatewayList := make([]GatewayInfo,0)
PthSep := string(os.PathSeparator)
for _,p := range path {
var gateway GatewayInfo
c,err := ioutil.ReadFile(p + PthSep + "gateway.conf")
if err != nil {
panic("Gateway Config Path Error! Error path: " + p)
}
err = yaml.Unmarshal(c,&gateway)
if err != nil {
panic("Gateway Config Error! Error path: " + p)
}
if gateway.GatewayStatus != "on" {
continue
}
gateway.ApiList = GetApiList(gateway.ApiConfPath)
gateway.StrategyList = GetStrategyList(gateway.StrategyConfPath)
gateway.BackendList = GetBackendList(gateway.BackendConfPath)
gatewayList = append(gatewayList,gateway)
}
return gatewayList
}
func GetStrategyList(path string) Strategy {
var strategy Strategy
c,err := ioutil.ReadFile(path)
if err != nil {
panic("Strategy Config Path Error! Error path: " + path)
}
err = yaml.Unmarshal(c,&strategy)
if err != nil {
panic("Strategy Config Error! Error path: " + path)
}
return strategy
}
func GetApiList(path string) Api {
var api Api
c,err := ioutil.ReadFile(path)
if err != nil {
panic("Api Config Path Error! Error path: " + path)
}
err = yaml.Unmarshal(c,&api)
if err != nil {
panic("Api Config Error! Error path: " + path)
}
return api
}
func GetBackendList(path string) Backend {
var backend Backend
c,err := ioutil.ReadFile(path)
if err != nil {
panic("Backend Config Path Error! Error path: " + path)
}
err = yaml.Unmarshal(c,&backend)
if err != nil {
panic("Error backend config! Error path: " + path)
}
return backend
}