forked from cloudfoundry/bosh-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfactory.go
45 lines (35 loc) · 763 Bytes
/
factory.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
package factory
import (
settings "github.com/cloudfoundry/bosh-agent/settings"
)
type Network struct {
Type settings.NetworkType
IP string
Netmask string
Gateway string
Default []string
DNS *[]string
Mac string
}
func (n Network) Build() settings.Network {
realNetwork := settings.Network{
Type: n.Type,
IP: defaultString(n.IP, "10.10.0.3"),
Netmask: defaultString(n.Netmask, "255.255.254.0"),
Gateway: defaultString(n.Gateway, "10.10.0.1"),
Default: n.Default,
Mac: n.Mac,
}
if n.DNS == nil {
realNetwork.DNS = []string{"10.10.0.1"}
} else {
realNetwork.DNS = *n.DNS
}
return realNetwork
}
func defaultString(s string, defaultValue string) string {
if s == "" {
return defaultValue
}
return s
}