Merge pull request #509 from lifupan/kata-integration

virtconainers: rollback the NetNs when createNetwork failed
This commit is contained in:
Eric Ernst
2018-07-24 08:13:16 -07:00
committed by GitHub

View File

@@ -925,8 +925,20 @@ func (s *Sandbox) Delete() error {
}
func (s *Sandbox) createNetwork() error {
var netNsPath string
var netNsCreated bool
var networkNS NetworkNamespace
var err error
//rollback the NetNs when createNetwork failed
defer func() {
if err != nil && netNsPath != "" && netNsCreated {
deleteNetNS(netNsPath)
}
}()
// Initialize the network.
netNsPath, netNsCreated, err := s.network.init(s.config.NetworkConfig)
netNsPath, netNsCreated, err = s.network.init(s.config.NetworkConfig)
if err != nil {
return err
}
@@ -939,14 +951,16 @@ func (s *Sandbox) createNetwork() error {
}
// Add the network
networkNS, err := s.network.add(s, s.config.NetworkConfig, netNsPath, netNsCreated)
networkNS, err = s.network.add(s, s.config.NetworkConfig, netNsPath, netNsCreated)
if err != nil {
return err
}
s.networkNS = networkNS
// Store the network
return s.storage.storeSandboxNetwork(s.id, networkNS)
err = s.storage.storeSandboxNetwork(s.id, networkNS)
return err
}
func (s *Sandbox) removeNetwork() error {