File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,26 @@ func defaultConfigBytes() ([]byte, error) {
51
51
return textutil .ExecuteTemplate (defaultConfigTemplate , args )
52
52
}
53
53
54
+ func fillDefaults (nwYaml YAML ) (YAML , error ) {
55
+ usernetFound := false
56
+ if nwYaml .Networks == nil {
57
+ nwYaml .Networks = make (map [string ]Network )
58
+ }
59
+ for nw := range nwYaml .Networks {
60
+ if nwYaml .Networks [nw ].Mode == ModeUserV2 {
61
+ usernetFound = true
62
+ }
63
+ }
64
+ if ! usernetFound {
65
+ defaultConfig , err := DefaultConfig ()
66
+ if err != nil {
67
+ return nwYaml , err
68
+ }
69
+ nwYaml .Networks [ModeUserV2 ] = defaultConfig .Networks [ModeUserV2 ]
70
+ }
71
+ return nwYaml , nil
72
+ }
73
+
54
74
func DefaultConfig () (YAML , error ) {
55
75
var config YAML
56
76
defaultConfig , err := defaultConfigBytes ()
@@ -116,6 +136,10 @@ func loadCache() {
116
136
if cache .err != nil {
117
137
cache .err = fmt .Errorf ("cannot parse %q: %w" , configFile , cache .err )
118
138
}
139
+ cache .config , cache .err = fillDefaults (cache .config )
140
+ if cache .err != nil {
141
+ cache .err = fmt .Errorf ("cannot fill default %q: %w" , configFile , cache .err )
142
+ }
119
143
})
120
144
}
121
145
Original file line number Diff line number Diff line change
1
+ package networks
2
+
3
+ import (
4
+ "net"
5
+ "testing"
6
+
7
+ "gotest.tools/v3/assert"
8
+ )
9
+
10
+ func TestFillDefault (t * testing.T ) {
11
+ nwYaml := YAML {}
12
+ newYaml , err := fillDefaults (nwYaml )
13
+ assert .Check (t , err == nil )
14
+
15
+ userNet := newYaml .Networks [ModeUserV2 ]
16
+ assert .Equal (t , userNet .Mode , ModeUserV2 )
17
+ assert .Equal (t , userNet .Interface , "" )
18
+ assert .DeepEqual (t , userNet .NetMask , net.IP {})
19
+ assert .DeepEqual (t , userNet .Gateway , net.IP {})
20
+ assert .DeepEqual (t , userNet .DHCPEnd , net.IP {})
21
+ }
You can’t perform that action at this time.
0 commit comments