-
Notifications
You must be signed in to change notification settings - Fork 2
/
service_config.go
91 lines (73 loc) · 1.73 KB
/
service_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
package config
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
)
type ServiceConfig struct {
Server struct {
Name string `yaml:"Name"`
GrpcAddr string `yaml:"GrpcAddr"`
RestAddr string `yaml:"RestAddr"`
CertFile string `yaml:"CertFile"`
KeyFile string `yaml:"KeyFile"`
ServerName string `yaml:"ServerName"`
Nodes []struct {
Name string `yaml:"Name"`
Host string `yaml:"Host"`
Port string `yaml:"Port"`
} `yaml:"Nodes"`
} `yaml:"Server"`
}
func (sc *ServiceConfig) GetNodeAddr(name string) (error, string) {
for _, node := range sc.Server.Nodes {
if node.Name == name {
return nil, fmt.Sprintf("%v:%v", node.Host, node.Port)
}
}
return fmt.Errorf("Node with name %v not found", name), ""
}
func NewServerconfig(configFile string) (*ServiceConfig, error) {
f, err := ioutil.ReadFile(configFile)
if err != nil {
return nil, err
}
sc := &ServiceConfig{}
err = yaml.Unmarshal(f, &sc)
if err != nil {
return nil, err
}
return sc, nil
}
type MediaServiceConfig struct {
ServiceConfig `yaml:"ServiceConfig"`
LocalStore string `yaml:"LocalStore"`
}
func NewMediaSericeConfig(configFile string) (*MediaServiceConfig, error) {
f, err := ioutil.ReadFile(configFile)
if err != nil {
return nil, err
}
sc := &MediaServiceConfig{}
err = yaml.Unmarshal(f, &sc)
if err != nil {
return nil, err
}
return sc, nil
}
type WebServiceConfig struct {
ServiceConfig `yaml:"ServiceConfig"`
AssetsPath string `yaml:"AssetsPath"`
}
func NewWebSericeConfig(configFile string) (*WebServiceConfig, error) {
f, err := ioutil.ReadFile(configFile)
if err != nil {
return nil, err
}
sc := &WebServiceConfig{}
err = yaml.Unmarshal(f, &sc)
if err != nil {
return nil, err
}
return sc, nil
}