@@ -55,8 +55,8 @@ func doCmdAdd(args *skel.CmdArgs, n *NetConf, fenv *subnetEnv) error {
5555 return delegateAdd (hns .GetSandboxContainerID (args .ContainerID , args .Netns ), n .DataDir , n .Delegate )
5656}
5757
58- func doCmdDel (args * skel.CmdArgs , n * NetConf ) error {
59- netconfBytes , err := consumeScratchNetConf (hns .GetSandboxContainerID (args .ContainerID , args .Netns ), n .DataDir )
58+ func doCmdDel (args * skel.CmdArgs , n * NetConf ) ( err error ) {
59+ cleanup , netConfBytes , err := consumeScratchNetConf (hns .GetSandboxContainerID (args .ContainerID , args .Netns ), n .DataDir )
6060 if err != nil {
6161 if os .IsNotExist (err ) {
6262 // Per spec should ignore error if resources are missing / already removed
@@ -65,10 +65,15 @@ func doCmdDel(args *skel.CmdArgs, n *NetConf) error {
6565 return err
6666 }
6767
68+ // cleanup will work when no error happens
69+ defer func () {
70+ cleanup (err )
71+ }()
72+
6873 nc := & types.NetConf {}
69- if err = json .Unmarshal (netconfBytes , nc ); err != nil {
74+ if err = json .Unmarshal (netConfBytes , nc ); err != nil {
7075 return fmt .Errorf ("failed to parse netconf: %v" , err )
7176 }
7277
73- return invoke .DelegateDel (context .TODO (), nc .Type , netconfBytes , nil )
78+ return invoke .DelegateDel (context .TODO (), nc .Type , netConfBytes , nil )
7479}
0 commit comments