Skip to content

Commit b54950f

Browse files
dlorencdlorenc
dlorenc
authored andcommitted
Start the default network for the kvm2 driver.
1 parent fe971d8 commit b54950f

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

pkg/drivers/kvm/network.go

+40-8
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,34 @@ const networkTmpl = `
4343
</network>
4444
`
4545

46+
func setupNetwork(conn *libvirt.Connect, name string) error {
47+
n, err := conn.LookupNetworkByName(defaultNetworkName)
48+
if err != nil {
49+
return errors.Wrapf(err, "checking network %s", name)
50+
}
51+
autostart, err := n.GetAutostart()
52+
if err != nil {
53+
return errors.Wrapf(err, "checking network %s autostart", name)
54+
}
55+
if !autostart {
56+
if err := n.SetAutostart(true); err != nil {
57+
return errors.Wrapf(err, "setting autostart for network %s", name)
58+
}
59+
}
60+
61+
active, err := n.IsActive()
62+
if err != nil {
63+
return errors.Wrapf(err, "checking network status for %s", name)
64+
}
65+
if !active {
66+
if err := n.Create(); err != nil {
67+
return errors.Wrapf(err, "starting network %s", name)
68+
}
69+
}
70+
return nil
71+
72+
}
73+
4674
func (d *Driver) createNetwork() error {
4775
if d.MAC == "" {
4876
mac, err := randomMAC()
@@ -59,11 +87,16 @@ func (d *Driver) createNetwork() error {
5987

6088
tmpl := template.Must(template.New("network").Parse(networkTmpl))
6189
var networkXML bytes.Buffer
62-
err = tmpl.Execute(&networkXML, d)
63-
if err != nil {
90+
if err := tmpl.Execute(&networkXML, d); err != nil {
6491
return errors.Wrap(err, "executing network template")
6592
}
6693

94+
// Start the default network
95+
log.Infof("Setting up network %s", defaultNetworkName)
96+
if err := setupNetwork(conn, defaultNetworkName); err != nil {
97+
return err
98+
}
99+
67100
//Check if network already exists
68101
if _, err := conn.LookupNetworkByName(d.PrivateNetwork); err == nil {
69102
return nil
@@ -73,14 +106,13 @@ func (d *Driver) createNetwork() error {
73106
if err != nil {
74107
return errors.Wrapf(err, "defining network from xml: %s", networkXML.String())
75108
}
76-
err = network.SetAutostart(true)
77-
if err != nil {
78-
return errors.Wrap(err, "setting network to autostart")
109+
if err := network.Create(); err != nil {
110+
return errors.Wrapf(err, "creating network %s", d.PrivateNetwork)
79111
}
80112

81-
err = network.Create()
82-
if err != nil {
83-
return errors.Wrap(err, "creating network")
113+
log.Infof("Setting up network %s", d.PrivateNetwork)
114+
if err := setupNetwork(conn, d.PrivateNetwork); err != nil {
115+
return err
84116
}
85117

86118
return nil

0 commit comments

Comments
 (0)