Skip to content

Commit b9ea964

Browse files
authored
Merge pull request #1590 from balajiv113/usernet-default
Support for adding user-v2 network by default
2 parents 1e891ed + 99fdff8 commit b9ea964

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

pkg/networks/config.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,26 @@ func defaultConfigBytes() ([]byte, error) {
5151
return textutil.ExecuteTemplate(defaultConfigTemplate, args)
5252
}
5353

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+
5474
func DefaultConfig() (YAML, error) {
5575
var config YAML
5676
defaultConfig, err := defaultConfigBytes()
@@ -116,6 +136,10 @@ func loadCache() {
116136
if cache.err != nil {
117137
cache.err = fmt.Errorf("cannot parse %q: %w", configFile, cache.err)
118138
}
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+
}
119143
})
120144
}
121145

pkg/networks/config_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
}

0 commit comments

Comments
 (0)