public inbox for pmg-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output
@ 2024-02-22 21:06 Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 1/3] pmgdb: highlight active rules Stoiko Ivanov
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-22 21:06 UTC (permalink / raw)
  To: pmg-devel

inspired by the patch from Dominik [0], I prepared the following patchset,
which hopefully improves the readability of the pmgdb dump output when
debugging.
As these dump-tool output UX questions are quite subjective would be
grateful for feedback from someone, who had the opportunity to use it for
debugging.

[0] https://lists.proxmox.com/pipermail/pmg-devel/2024-February/002690.html

Stoiko Ivanov (3):
  pmgdb: highlight active rules
  pmgdb: drop "found" prefixes for each rule and group
  pmgdb: add active parameter to dump

 src/PMG/CLI/pmgdb.pm | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

-- 
2.39.2





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pmg-devel] [PATCH pmg-api 1/3] pmgdb: highlight active rules
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
@ 2024-02-22 21:06 ` Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 2/3] pmgdb: drop "found" prefixes for each rule and group Stoiko Ivanov
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-22 21:06 UTC (permalink / raw)
  To: pmg-devel

by printing the ACTIVE in caps. For me this improves quickly skimming
through a ruleset (in a few support cases I wasted quite a bit of time
on the wrong spot - only to see that the rule in question is inactive
anyways)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 src/PMG/CLI/pmgdb.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/PMG/CLI/pmgdb.pm b/src/PMG/CLI/pmgdb.pm
index bb22965..87c8804 100644
--- a/src/PMG/CLI/pmgdb.pm
+++ b/src/PMG/CLI/pmgdb.pm
@@ -48,7 +48,7 @@ sub print_rule {
 	1 => 'out',
 	2 => 'in+out',
     };
-    my $active = $rule->{active} ? 'active' : 'inactive';
+    my $active = $rule->{active} ? 'ACTIVE' : 'inactive';
     my $dir = $direction->{$rule->{direction}};
     my $rulename = encode('UTF-8', $rule->{name});
 
-- 
2.39.2





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pmg-devel] [PATCH pmg-api 2/3] pmgdb: drop "found" prefixes for each rule and group
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 1/3] pmgdb: highlight active rules Stoiko Ivanov
@ 2024-02-22 21:06 ` Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump Stoiko Ivanov
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-22 21:06 UTC (permalink / raw)
  To: pmg-devel

conveys little information, still clutters the output.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 src/PMG/CLI/pmgdb.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/PMG/CLI/pmgdb.pm b/src/PMG/CLI/pmgdb.pm
index 87c8804..28e9583 100644
--- a/src/PMG/CLI/pmgdb.pm
+++ b/src/PMG/CLI/pmgdb.pm
@@ -52,7 +52,7 @@ sub print_rule {
     my $dir = $direction->{$rule->{direction}};
     my $rulename = encode('UTF-8', $rule->{name});
 
-    print "Found RULE $rule->{id} (prio: $rule->{priority}, $dir, $active): $rulename\n";
+    print "RULE $rule->{id} (prio: $rule->{priority}, $dir, $active): $rulename\n";
 
     my $print_group = sub {
 	my ($type, $og, $print_mode) = @_;
@@ -63,7 +63,7 @@ sub print_rule {
 	    my $invert = $og->{invert} // 0;
 	    $mode = " (and=$and, invert=$invert)";
 	}
-	print "  FOUND $type GROUP $og->{id}${mode}: $oname\n";
+	print "  $type group $og->{id}${mode}: $oname\n";
 	print_objects($ruledb, $og);
     };
 
-- 
2.39.2





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 1/3] pmgdb: highlight active rules Stoiko Ivanov
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 2/3] pmgdb: drop "found" prefixes for each rule and group Stoiko Ivanov
@ 2024-02-22 21:06 ` Stoiko Ivanov
  2024-02-26 19:11   ` Thomas Lamprecht
  2024-02-23 10:40 ` [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Friedrich Weber
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-22 21:06 UTC (permalink / raw)
  To: pmg-devel

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
 src/PMG/CLI/pmgdb.pm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/PMG/CLI/pmgdb.pm b/src/PMG/CLI/pmgdb.pm
index 28e9583..0ac3f82 100644
--- a/src/PMG/CLI/pmgdb.pm
+++ b/src/PMG/CLI/pmgdb.pm
@@ -39,10 +39,11 @@ sub print_objects {
 }
 
 sub print_rule {
-    my ($ruledb, $rule) = @_;
+    my ($ruledb, $rule, $active_only) = @_;
 
     $ruledb->load_rule_attributes($rule);
 
+    return if !$rule->{active} && $active_only;
     my $direction = {
 	0 => 'in',
 	1 => 'out',
@@ -112,7 +113,14 @@ __PACKAGE__->register_method ({
     description => "Print the PMG rule database.",
     parameters => {
 	additionalProperties => 0,
-	properties => {},
+	properties => {
+	    active => {
+		type => 'boolean',
+		description => "Print only active rules",
+		optional => 1,
+		default => 0,
+	    },
+	},
     },
     returns => { type => 'null'},
     code => sub {
@@ -124,7 +132,7 @@ __PACKAGE__->register_method ({
 	my $rules = $ruledb->load_rules();
 
 	foreach my $rule (@$rules) {
-	    print_rule($ruledb, $rule);
+	    print_rule($ruledb, $rule, $param->{active});
 	}
 
 	$ruledb->close();
-- 
2.39.2





^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
                   ` (2 preceding siblings ...)
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump Stoiko Ivanov
@ 2024-02-23 10:40 ` Friedrich Weber
  2024-02-23 11:19   ` Stoiko Ivanov
  2024-02-23 12:53 ` Alexander Zeidler
  2024-02-23 16:46 ` [pmg-devel] applied-series: " Thomas Lamprecht
  5 siblings, 1 reply; 11+ messages in thread
From: Friedrich Weber @ 2024-02-23 10:40 UTC (permalink / raw)
  To: Stoiko Ivanov, pmg-devel

All three patches look good to me!

* 1/3 is nice. I've also spent some time analyzing inactive rules, I'd
expect the all-caps active flag to help here.
* 2/3 is nice as well.
* 3/3 sounds potentially useful! Wouldn't pass this flag when generating
the report though, as I'd like to see active and inactive rules there.

Tested-by: Friedrich Weber <f.weber@proxmox.com>

On 22/02/2024 22:06, Stoiko Ivanov wrote:
> inspired by the patch from Dominik [0], I prepared the following patchset,
> which hopefully improves the readability of the pmgdb dump output when
> debugging.
> As these dump-tool output UX questions are quite subjective would be
> grateful for feedback from someone, who had the opportunity to use it for
> debugging.
> 
> [0] https://lists.proxmox.com/pipermail/pmg-devel/2024-February/002690.html
> 
> Stoiko Ivanov (3):
>   pmgdb: highlight active rules
>   pmgdb: drop "found" prefixes for each rule and group
>   pmgdb: add active parameter to dump
> 
>  src/PMG/CLI/pmgdb.pm | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
> 




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output
  2024-02-23 10:40 ` [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Friedrich Weber
@ 2024-02-23 11:19   ` Stoiko Ivanov
  0 siblings, 0 replies; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-23 11:19 UTC (permalink / raw)
  To: Friedrich Weber; +Cc: pmg-devel

On Fri, 23 Feb 2024 11:40:35 +0100
Friedrich Weber <f.weber@proxmox.com> wrote:

> All three patches look good to me!
> 
> * 1/3 is nice. I've also spent some time analyzing inactive rules, I'd
> expect the all-caps active flag to help here.
> * 2/3 is nice as well.
> * 3/3 sounds potentially useful! Wouldn't pass this flag when generating
> the report though, as I'd like to see active and inactive rules there.
yes - I agree with that - it's something we can ask users to run
explicitly in case their ruleset warrants it


> 
> Tested-by: Friedrich Weber <f.weber@proxmox.com>
> 
> On 22/02/2024 22:06, Stoiko Ivanov wrote:
> > inspired by the patch from Dominik [0], I prepared the following patchset,
> > which hopefully improves the readability of the pmgdb dump output when
> > debugging.
> > As these dump-tool output UX questions are quite subjective would be
> > grateful for feedback from someone, who had the opportunity to use it for
> > debugging.
> > 
> > [0] https://lists.proxmox.com/pipermail/pmg-devel/2024-February/002690.html
> > 
> > Stoiko Ivanov (3):
> >   pmgdb: highlight active rules
> >   pmgdb: drop "found" prefixes for each rule and group
> >   pmgdb: add active parameter to dump
> > 
> >  src/PMG/CLI/pmgdb.pm | 20 ++++++++++++++------
> >  1 file changed, 14 insertions(+), 6 deletions(-)
> >   





^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
                   ` (3 preceding siblings ...)
  2024-02-23 10:40 ` [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Friedrich Weber
@ 2024-02-23 12:53 ` Alexander Zeidler
  2024-02-23 16:46 ` [pmg-devel] applied-series: " Thomas Lamprecht
  5 siblings, 0 replies; 11+ messages in thread
From: Alexander Zeidler @ 2024-02-23 12:53 UTC (permalink / raw)
  To: Stoiko Ivanov, pmg-devel

On Thu, 2024-02-22 at 22:06 +0100, Stoiko Ivanov wrote:
> inspired by the patch from Dominik [0], I prepared the following patchset,
> which hopefully improves the readability of the pmgdb dump output when
> debugging.
> As these dump-tool output UX questions are quite subjective would be
> grateful for feedback from someone, who had the opportunity to use it for
> debugging.
Just tested, definitely an improvement in my opinion, thanks!
> 
> [0] https://lists.proxmox.com/pipermail/pmg-devel/2024-February/002690.html
> 
> Stoiko Ivanov (3):
>   pmgdb: highlight active rules
>   pmgdb: drop "found" prefixes for each rule and group
>   pmgdb: add active parameter to dump
> 
>  src/PMG/CLI/pmgdb.pm | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
> 





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pmg-devel] applied-series: [PATCH pmg-api 0/3] small improvments to pmgdb dump output
  2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
                   ` (4 preceding siblings ...)
  2024-02-23 12:53 ` Alexander Zeidler
@ 2024-02-23 16:46 ` Thomas Lamprecht
  5 siblings, 0 replies; 11+ messages in thread
From: Thomas Lamprecht @ 2024-02-23 16:46 UTC (permalink / raw)
  To: Stoiko Ivanov, pmg-devel

Am 22/02/2024 um 22:06 schrieb Stoiko Ivanov:
> inspired by the patch from Dominik [0], I prepared the following patchset,
> which hopefully improves the readability of the pmgdb dump output when
> debugging.
> As these dump-tool output UX questions are quite subjective would be
> grateful for feedback from someone, who had the opportunity to use it for
> debugging.
> 
> [0] https://lists.proxmox.com/pipermail/pmg-devel/2024-February/002690.html
> 
> Stoiko Ivanov (3):
>   pmgdb: highlight active rules
>   pmgdb: drop "found" prefixes for each rule and group
>   pmgdb: add active parameter to dump
> 
>  src/PMG/CLI/pmgdb.pm | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
> 


applied series, with Friedrich's and Alexander's T-b, thanks!




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump
  2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump Stoiko Ivanov
@ 2024-02-26 19:11   ` Thomas Lamprecht
  2024-02-27 12:53     ` Stoiko Ivanov
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Lamprecht @ 2024-02-26 19:11 UTC (permalink / raw)
  To: Stoiko Ivanov, pmg-devel

Am 22/02/2024 um 22:06 schrieb Stoiko Ivanov:
> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
> ---
>  src/PMG/CLI/pmgdb.pm | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/src/PMG/CLI/pmgdb.pm b/src/PMG/CLI/pmgdb.pm
> index 28e9583..0ac3f82 100644
> --- a/src/PMG/CLI/pmgdb.pm
> +++ b/src/PMG/CLI/pmgdb.pm
> @@ -39,10 +39,11 @@ sub print_objects {
>  }
>  
>  sub print_rule {
> -    my ($ruledb, $rule) = @_;
> +    my ($ruledb, $rule, $active_only) = @_;
>  
>      $ruledb->load_rule_attributes($rule);
>  
> +    return if !$rule->{active} && $active_only;
>      my $direction = {
>  	0 => 'in',
>  	1 => 'out',
> @@ -112,7 +113,14 @@ __PACKAGE__->register_method ({
>      description => "Print the PMG rule database.",
>      parameters => {
>  	additionalProperties => 0,
> -	properties => {},
> +	properties => {
> +	    active => {
> +		type => 'boolean',
> +		description => "Print only active rules",
> +		optional => 1,
> +		default => 0,
> +	    },
> +	},
>      },
>      returns => { type => 'null'},
>      code => sub {
> @@ -124,7 +132,7 @@ __PACKAGE__->register_method ({
>  	my $rules = $ruledb->load_rules();
>  
>  	foreach my $rule (@$rules) {
> -	    print_rule($ruledb, $rule);
> +	    print_rule($ruledb, $rule, $param->{active});
>  	}
>  
>  	$ruledb->close();


If I call this with active set to disabled, i.e. as `pmgdb dump --active 0`, then
I still get the active rules, which feels rather a bit wrong.

IMO this could be interpreted as ternary:

1. undef (not passed) -> both
2. true (--active[=1]) -> active only
3. false (--active=0) -> incative only




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump
  2024-02-26 19:11   ` Thomas Lamprecht
@ 2024-02-27 12:53     ` Stoiko Ivanov
  2024-02-27 13:21       ` Thomas Lamprecht
  0 siblings, 1 reply; 11+ messages in thread
From: Stoiko Ivanov @ 2024-02-27 12:53 UTC (permalink / raw)
  To: Thomas Lamprecht; +Cc: pmg-devel

Thanks for the suggestion - comment in-line:

On Mon, 26 Feb 2024 20:11:28 +0100
Thomas Lamprecht <t.lamprecht@proxmox.com> wrote:

>..snip..
> 
> If I call this with active set to disabled, i.e. as `pmgdb dump --active 0`, then
> I still get the active rules, which feels rather a bit wrong.
> 
> IMO this could be interpreted as ternary:
> 
> 1. undef (not passed) -> both
> 2. true (--active[=1]) -> active only
> 3. false (--active=0) -> incative only

this does break how booleans behave across most of our CLI tools (afaict).
can be fine, especially with this particular call, which is mostly for
debugging.
Alternatively - why not make this a regular enum (--rules
<all|active|inactive>, defaulting to all)?







^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump
  2024-02-27 12:53     ` Stoiko Ivanov
@ 2024-02-27 13:21       ` Thomas Lamprecht
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Lamprecht @ 2024-02-27 13:21 UTC (permalink / raw)
  To: Stoiko Ivanov; +Cc: pmg-devel

Am 27/02/2024 um 13:53 schrieb Stoiko Ivanov:
> On Mon, 26 Feb 2024 20:11:28 +0100
> Thomas Lamprecht <t.lamprecht@proxmox.com> wrote:
>> If I call this with active set to disabled, i.e. as `pmgdb dump --active 0`, then
>> I still get the active rules, which feels rather a bit wrong.
>>
>> IMO this could be interpreted as ternary:
>>
>> 1. undef (not passed) -> both
>> 2. true (--active[=1]) -> active only
>> 3. false (--active=0) -> incative only
> 
> this does break how booleans behave across most of our CLI tools (afaict).

I did not check, but I think we hardly have a very strong coherent behavior
here, but yeah, a tri-state behavior for a boolean flag isn't fully ideal
either.

> can be fine, especially with this particular call, which is mostly for
> debugging.
> Alternatively - why not make this a regular enum (--rules
> <all|active|inactive>, defaulting to all)?

That would be more explicit and avoid all misinterpretation potential, i.e.,
more than fine with me.




^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-02-27 13:22 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-22 21:06 [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Stoiko Ivanov
2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 1/3] pmgdb: highlight active rules Stoiko Ivanov
2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 2/3] pmgdb: drop "found" prefixes for each rule and group Stoiko Ivanov
2024-02-22 21:06 ` [pmg-devel] [PATCH pmg-api 3/3] pmgdb: add active parameter to dump Stoiko Ivanov
2024-02-26 19:11   ` Thomas Lamprecht
2024-02-27 12:53     ` Stoiko Ivanov
2024-02-27 13:21       ` Thomas Lamprecht
2024-02-23 10:40 ` [pmg-devel] [PATCH pmg-api 0/3] small improvments to pmgdb dump output Friedrich Weber
2024-02-23 11:19   ` Stoiko Ivanov
2024-02-23 12:53 ` Alexander Zeidler
2024-02-23 16:46 ` [pmg-devel] applied-series: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal