The code for setting up the firewall was scattered across multiple places and was not straightforward to follow up. Adding support for nftables on top of the existing code would have made things worse, so this PR also includes significant refactoring of that code and associated tests.
I also moved the code from the 'common' subdirectory to 'ga', since it is not needed by the provisioning agent.
Adding support for nftables.
The code for setting up the firewall was scattered across multiple places and was not straightforward to follow up. Adding support for nftables on top of the existing code would have made things worse, so this PR also includes significant refactoring of that code and associated tests.
I also moved the code from the 'common' subdirectory to 'ga', since it is not needed by the provisioning agent.