Skip to content

Commit 6bf3c23

Browse files
authored
Merge pull request #10479 from prezha/fix-kvm-network-cleanup
improve kvm network delete/cleanup
2 parents 5e90254 + a5f75b4 commit 6bf3c23

File tree

1 file changed

+13
-46
lines changed

1 file changed

+13
-46
lines changed

Diff for: pkg/drivers/kvm/network.go

+13-46
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ func (d *Driver) deleteNetwork() error {
224224
log.Warnf("Network %s does not exist. Skipping deletion", d.PrivateNetwork)
225225
return nil
226226
}
227-
return errors.Wrapf(err, "failed looking for network %s", d.PrivateNetwork)
227+
return errors.Wrapf(err, "failed looking up network %s", d.PrivateNetwork)
228228
}
229229
defer func() { _ = network.Free() }()
230230
log.Debugf("Network %s exists", d.PrivateNetwork)
@@ -236,58 +236,25 @@ func (d *Driver) deleteNetwork() error {
236236

237237
// when we reach this point, it means it is safe to delete the network
238238

239-
// cannot destroy an inactive network - try to activate it first
240-
log.Debugf("Trying to reactivate network %s first (if needed)...", d.PrivateNetwork)
241-
activate := func() error {
239+
log.Debugf("Trying to delete network %s...", d.PrivateNetwork)
240+
delete := func() error {
242241
active, err := network.IsActive()
243-
if err == nil && active {
244-
return nil
245-
}
246242
if err != nil {
247243
return err
248244
}
249-
// inactive, try to activate
250-
if err := network.Create(); err != nil {
251-
return err
252-
}
253-
return errors.Errorf("needs confirmation") // confirm in the next cycle
254-
}
255-
if err := retry.Local(activate, 10*time.Second); err != nil {
256-
log.Debugf("Reactivating network %s failed, will continue anyway...", d.PrivateNetwork)
257-
}
258-
259-
log.Debugf("Trying to destroy network %s...", d.PrivateNetwork)
260-
destroy := func() error {
261-
if err := network.Destroy(); err != nil {
262-
return err
263-
}
264-
active, err := network.IsActive()
265-
if err == nil && !active {
266-
return nil
267-
}
268-
return errors.Errorf("retrying %v", err)
269-
}
270-
if err := retry.Local(destroy, 10*time.Second); err != nil {
271-
return errors.Wrap(err, "destroying network")
272-
}
273-
274-
log.Debugf("Trying to undefine network %s...", d.PrivateNetwork)
275-
undefine := func() error {
276-
if err := network.Undefine(); err != nil {
277-
return err
278-
}
279-
netp, err := conn.LookupNetworkByName(d.PrivateNetwork)
280-
if netp != nil {
281-
_ = netp.Free()
282-
}
283-
if lvErr(err).Code == libvirt.ERR_NO_NETWORK {
284-
return nil
245+
if active {
246+
log.Debugf("Destroying active network %s", d.PrivateNetwork)
247+
if err := network.Destroy(); err != nil {
248+
return err
249+
}
285250
}
286-
return errors.Errorf("retrying %v", err)
251+
log.Debugf("Undefining inactive network %s", d.PrivateNetwork)
252+
return network.Undefine()
287253
}
288-
if err := retry.Local(undefine, 10*time.Second); err != nil {
289-
return errors.Wrap(err, "undefining network")
254+
if err := retry.Local(delete, 10*time.Second); err != nil {
255+
return errors.Wrap(err, "deleting network")
290256
}
257+
log.Debugf("Network %s deleted", d.PrivateNetwork)
291258

292259
return nil
293260
}

0 commit comments

Comments
 (0)