Hi Matthieu,
Likewise, thanks for your response.
On Fri, Jun 14, 2024 at 04:42:38PM +0200, Matthieu Baerts wrote:
Hi Simon,
Thank you for your reply!
On 14/06/2024 12:40, Simon Horman wrote:
On Fri, Jun 07, 2024 at 06:31:03PM +0200, Matthieu Baerts (NGI0) wrote:
Instead of only appending items to the list, removing them when the netns has been deleted.
By doing that, we can make sure 'cleanup_all_ns()' is not trying to remove already deleted netns.
I do wonder if we can go a step further and use an associative array for ns_list (maybe renamed). I think this would reduce remove_ns_list to something like:
unset ns_list["$item"]
I agree that it would ease the removal of one item -- which is not complex to deal with the new helper :) -- but do you see any other benefits?
For the moment, there is no other value to associate with, so we would do something like NS_MAP["$ns"]=1. We could link the name of the global variable, but that's not needed for the tests for the moment.
Also, I don't know if it is important, but when we will iterate over the list of netns, it will not be done following the same order items have been added into the hashmap. So we will change the order in which items are deleted.
I agree that it would probably end up being a NS_MAP["$ns"]=1, i.e. a dummy value as there is no natural one to use.
I had not considered the order issue.
And yes, the benefit I see would be limited to removal. Which as you point out is not a terrible burden with the helper you added. While, OTOH, my idea adds complexity and unknowns elsewhere.
So overall, perhaps it's best left as an idea for later. As the code changes for other reasons (who knows what?) an associative array may make more sense than it does now.
OTOH, perhaps this breaks with older versions of bash that we still care about.
Good point. I don't have the answer, but associative arrays are starting to be quite old now :)
Yes, I think so too. But I also thought it was worth mentioning.