[libvirt] [PATCH 7/7] tests: fix dry run handling in network firewall test

Laine Stump laine at laine.org
Mon Dec 3 16:18:43 UTC 2018


On 11/1/18 8:52 AM, Daniel P. Berrangé wrote:
> The networkxml2firewalltest sets virCommand to dry run mode but doesn't
> provide a callback to fill in stdout/stderr. As a result when the
> firewall code queries rules it gets a NULL output and so never triggers
> the callback to process output.
>
> We only need to return an empty string to make the firewall code work
> and thus trigger adding of the libvirt private chains to the builtin
> chains.


Well, technically it's only adding the jump to the private chains, not
the chains themselves (although I mentioned earlier that I think this
should change).


>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>


Reviewed-by: Laine Stump <laine at laine.org>


but shouldn't this just be squashed in with the patch that originally
changed the code to add the chains?


> ---
>  .../nat-default-linux.args                    | 48 +++++++++++++++++++
>  .../nat-ipv6-linux.args                       | 48 +++++++++++++++++++
>  .../nat-many-ips-linux.args                   | 48 +++++++++++++++++++
>  .../nat-no-dhcp-linux.args                    | 48 +++++++++++++++++++
>  .../nat-tftp-linux.args                       | 48 +++++++++++++++++++
>  .../route-default-linux.args                  | 48 +++++++++++++++++++
>  tests/networkxml2firewalltest.c               | 16 ++++++-
>  7 files changed, 303 insertions(+), 1 deletion(-)
>
> diff --git a/tests/networkxml2firewalldata/nat-default-linux.args b/tests/networkxml2firewalldata/nat-default-linux.args
> index 69995181ad..e7d71817c7 100644
> --- a/tests/networkxml2firewalldata/nat-default-linux.args
> +++ b/tests/networkxml2firewalldata/nat-default-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalldata/nat-ipv6-linux.args b/tests/networkxml2firewalldata/nat-ipv6-linux.args
> index f93d8face2..620ebb8d14 100644
> --- a/tests/networkxml2firewalldata/nat-ipv6-linux.args
> +++ b/tests/networkxml2firewalldata/nat-ipv6-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalldata/nat-many-ips-linux.args b/tests/networkxml2firewalldata/nat-many-ips-linux.args
> index faae4b881c..7c378b8c7e 100644
> --- a/tests/networkxml2firewalldata/nat-many-ips-linux.args
> +++ b/tests/networkxml2firewalldata/nat-many-ips-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalldata/nat-no-dhcp-linux.args b/tests/networkxml2firewalldata/nat-no-dhcp-linux.args
> index cb0d908506..afa8c3a0ca 100644
> --- a/tests/networkxml2firewalldata/nat-no-dhcp-linux.args
> +++ b/tests/networkxml2firewalldata/nat-no-dhcp-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalldata/nat-tftp-linux.args b/tests/networkxml2firewalldata/nat-tftp-linux.args
> index 1243bd1c2d..a45ba545c2 100644
> --- a/tests/networkxml2firewalldata/nat-tftp-linux.args
> +++ b/tests/networkxml2firewalldata/nat-tftp-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalldata/route-default-linux.args b/tests/networkxml2firewalldata/route-default-linux.args
> index 624e589aae..859a342e7d 100644
> --- a/tests/networkxml2firewalldata/route-default-linux.args
> +++ b/tests/networkxml2firewalldata/route-default-linux.args
> @@ -72,6 +72,54 @@ ip6tables \
>  --list POSTROUTING
>  iptables \
>  --table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +iptables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +iptables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +iptables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +ip6tables \
> +--table filter \
> +--insert INPUT \
> +--jump INP_libvirt
> +ip6tables \
> +--table filter \
> +--insert OUTPUT \
> +--jump OUT_libvirt
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_out
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_in
> +ip6tables \
> +--table filter \
> +--insert FORWARD \
> +--jump FWD_libvirt_cross
> +ip6tables \
> +--table nat \
> +--insert POSTROUTING \
> +--jump PRT_libvirt
> +iptables \
> +--table filter \
>  --insert INP_libvirt \
>  --in-interface virbr0 \
>  --protocol tcp \
> diff --git a/tests/networkxml2firewalltest.c b/tests/networkxml2firewalltest.c
> index 505ff0c740..5e3d8906c5 100644
> --- a/tests/networkxml2firewalltest.c
> +++ b/tests/networkxml2firewalltest.c
> @@ -44,6 +44,20 @@ static const char *abs_top_srcdir;
>  #  error "test case not ported to this platform"
>  # endif
>  
> +static void
> +testCommandDryRun(const char *const*args ATTRIBUTE_UNUSED,
> +                  const char *const*env ATTRIBUTE_UNUSED,
> +                  const char *input ATTRIBUTE_UNUSED,
> +                  char **output,
> +                  char **error,
> +                  int *status,
> +                  void *opaque ATTRIBUTE_UNUSED)
> +{
> +    *status = 0;
> +    ignore_value(VIR_STRDUP_QUIET(*output, ""));
> +    ignore_value(VIR_STRDUP_QUIET(*error, ""));
> +}
> +
>  static int testCompareXMLToArgvFiles(const char *xml,
>                                       const char *cmdline)
>  {
> @@ -53,7 +67,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
>      virNetworkDefPtr def = NULL;
>      int ret = -1;
>  
> -    virCommandSetDryRun(&buf, NULL, NULL);
> +    virCommandSetDryRun(&buf, testCommandDryRun, NULL);
>  
>      if (!(def = virNetworkDefParseFile(xml)))
>          goto cleanup;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: pEpkey.asc
Type: application/pgp-keys
Size: 1757 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20181203/bbc195c2/attachment-0001.bin>


More information about the libvir-list mailing list