Skip to content

Commit 4027314

Browse files
NFT: Do not error when desire no elems and set/map doesnt exist
NFT will return error if set/map doesnt exist and we attempt to flush. Do not fail because in certain scenerios the set/map does not exist and that is not an error. Signed-off-by: Martin Kennelly <[email protected]>
1 parent a3d0a2b commit 4027314

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

go-controller/pkg/node/gateway_nftables.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,12 @@ func recreateNFTSet(setName string, keepNFTElems []*knftables.Element) error {
122122
tx.Add(elem)
123123
}
124124
}
125-
return nft.Run(context.TODO(), tx)
125+
err = nft.Run(context.TODO(), tx)
126+
// no error if set is not created and we desire zero NFT elements
127+
if knftables.IsNotFound(err) && len(keepNFTElems) == 0 {
128+
return nil
129+
}
130+
return err
126131
}
127132

128133
func recreateNFTMap(mapName string, keepNFTElems []*knftables.Element) error {
@@ -139,7 +144,12 @@ func recreateNFTMap(mapName string, keepNFTElems []*knftables.Element) error {
139144
tx.Add(elem)
140145
}
141146
}
142-
return nft.Run(context.TODO(), tx)
147+
err = nft.Run(context.TODO(), tx)
148+
// no error if set is not created and we desire zero NFT elements
149+
if knftables.IsNotFound(err) && len(keepNFTElems) == 0 {
150+
return nil
151+
}
152+
return err
143153
}
144154

145155
// getGatewayNFTRules returns nftables rules for service. This must be used in conjunction

0 commit comments

Comments
 (0)