diff --git a/libcni/api.go b/libcni/api.go index 6ac26949..06faaa5e 100644 --- a/libcni/api.go +++ b/libcni/api.go @@ -663,9 +663,9 @@ func (c *CNIConfig) DelNetwork(ctx context.Context, net *PluginConfig, rt *Runti if gtet, err := version.GreaterThanOrEqualTo(net.Network.CNIVersion, "0.4.0"); err != nil { return err } else if gtet { - cachedResult, err = c.getCachedResult(net.Network.Name, net.Network.CNIVersion, rt) - if err != nil { - return fmt.Errorf("failed to get network %q cached result: %w", net.Network.Name, err) + if cachedResult, err = c.getCachedResult(net.Network.Name, net.Network.CNIVersion, rt); err != nil { + _ = c.cacheDel(net.Network.Name, rt) + cachedResult = nil } } diff --git a/libcni/api_test.go b/libcni/api_test.go index 76d20925..193076ca 100644 --- a/libcni/api_test.go +++ b/libcni/api_test.go @@ -837,12 +837,12 @@ var _ = Describe("Invoking plugins", func() { }) Context("result is invalid JSON", func() { - It("returns an error", func() { + It("tolerates the error", func() { err := os.WriteFile(cacheFile, []byte("adfadsfasdfasfdsafaf"), 0o600) Expect(err).NotTo(HaveOccurred()) err = cniConfig.DelNetwork(ctx, netConfig, runtimeConfig) - Expect(err).To(MatchError("failed to get network \"apitest\" cached result: decoding version from network config: invalid character 'a' looking for beginning of value")) + Expect(err).NotTo(HaveOccurred()) }) }) @@ -859,7 +859,7 @@ var _ = Describe("Invoking plugins", func() { Expect(err).NotTo(HaveOccurred()) }) - It("returns an error when the cached result cannot be converted", func() { + It("tolerates the error when the cached result cannot be converted", func() { err := os.WriteFile(cacheFile, []byte(`{ "cniVersion": "0.4567.0", "ips": [{"version": "4", "address": "10.1.2.3/24"}], @@ -868,7 +868,7 @@ var _ = Describe("Invoking plugins", func() { Expect(err).NotTo(HaveOccurred()) err = cniConfig.DelNetwork(ctx, netConfig, runtimeConfig) - Expect(err).To(MatchError("failed to get network \"apitest\" cached result: unsupported CNI result version \"0.4567.0\"")) + Expect(err).NotTo(HaveOccurred()) }) }) })