mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-01 07:47:15 +00:00
Merge pull request #2296 from tedyu/rm-dev-when-err
vc: Remove device when AddDevice encounters error
This commit is contained in:
commit
e3ba17123a
@ -1779,17 +1779,28 @@ func (s *Sandbox) AddDevice(info config.DeviceInfo) (api.Device, error) {
|
||||
return nil, fmt.Errorf("device manager isn't initialized")
|
||||
}
|
||||
|
||||
var err error
|
||||
b, err := s.devManager.NewDevice(info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
s.devManager.RemoveDevice(b.DeviceID())
|
||||
}
|
||||
}()
|
||||
|
||||
if err := s.devManager.AttachDevice(b.DeviceID(), s); err != nil {
|
||||
if err = s.devManager.AttachDevice(b.DeviceID(), s); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
s.devManager.DetachDevice(b.DeviceID(), s)
|
||||
}
|
||||
}()
|
||||
|
||||
if !s.supportNewStore() {
|
||||
if err := s.storeSandboxDevices(); err != nil {
|
||||
if err = s.storeSandboxDevices(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user