]> git.proxmox.com Git - pve-docs.git/blobdiff - gen-pve-firewall-macros-adoc.pl
add auto-generated firewall macro definitions
[pve-docs.git] / gen-pve-firewall-macros-adoc.pl
diff --git a/gen-pve-firewall-macros-adoc.pl b/gen-pve-firewall-macros-adoc.pl
new file mode 100755 (executable)
index 0000000..9137d1f
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use PVE::Firewall;
+
+my ($pve_fw_parsed_macros, $pve_fw_macro_descr) = PVE::Firewall::get_macros();
+
+#use Data::Dumper;
+#print Dumper($pve_fw_macro_descr);
+#print Dumper($pve_fw_parsed_macros);
+
+foreach my $name (sort keys %$pve_fw_parsed_macros) {
+    my $descr = $pve_fw_macro_descr->{$name};
+    die "no description for macro '$name'" if !defined($descr);
+    print "[horizontal]\n'$name':: $descr\n\n";
+    
+    print "[width=\"100%\",options=\"header\"]\n" .
+    "|===========================================================\n" .
+    "|Action|proto|dport|sport\n";
+
+    my $rules = $pve_fw_parsed_macros->{$name};
+
+    foreach my $rule (@$rules) {
+       print "|$rule->{action}|";
+       print (($rule->{proto} || '') . '|');
+       print (($rule->{dport} || '') . '|');
+       print (($rule->{sport} || '') . "\n");
+    }
+       
+    print "|===========================================================\n";
+   
+    print "\n";
+}