[pmg-devel] superseded: [PATCH pmg-api] fix #2452: pmgqm: allow <x>h to be used as a timespan

Hannes Laimer h.laimer at proxmox.com
Fri Aug 8 12:30:55 CEST 2025


superseded-by: 
https://lore.proxmox.com/pmg-devel/20250808102836.50441-1-h.laimer@proxmox.com/T/#u

On 04.08.25 13:03, Hannes Laimer wrote:
> Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
> ---
> came up in enterprise support
> 
>   src/PMG/CLI/pmgqm.pm | 8 ++++----
>   src/PMG/Utils.pm     | 4 ++++
>   2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/src/PMG/CLI/pmgqm.pm b/src/PMG/CLI/pmgqm.pm
> index 23968f2..9ff6097 100755
> --- a/src/PMG/CLI/pmgqm.pm
> +++ b/src/PMG/CLI/pmgqm.pm
> @@ -90,9 +90,9 @@ __PACKAGE__->register_method({
>           additionalProperties => 0,
>           properties => {
>               timespan => {
> -                description => "Select time span.",
> +                description => "Select time span. <x>h refers to the past x hours.",
>                   type => 'string',
> -                enum => ['today', 'yesterday', 'week'],
> +                pattern => '^(today|yesterday|week|(?:[1-9]|1[0-9]|2[0-3])h)$',
>                   default => 'today',
>                   optional => 1,
>               },
> @@ -167,9 +167,9 @@ __PACKAGE__->register_method({
>                   },
>               ),
>               timespan => {
> -                description => "Select time span.",
> +                description => "Select time span. <x>h refers to the past x hours.",
>                   type => 'string',
> -                enum => ['today', 'yesterday', 'week'],
> +                pattern => '^(today|yesterday|week|(?:[1-9]|1[0-9]|2[0-3])h)$',
>                   default => 'today',
>                   optional => 1,
>               },
> diff --git a/src/PMG/Utils.pm b/src/PMG/Utils.pm
> index 890096f..d922e7c 100644
> --- a/src/PMG/Utils.pm
> +++ b/src/PMG/Utils.pm
> @@ -1407,6 +1407,10 @@ sub lookup_timespan {
>       } elsif ($timespan eq 'week') {
>           $end = $daystart;
>           $start = $end - 7 * 86400;
> +    } elsif ($timespan =~ /^(\d+)h$/) {
> +        my $hours = $1;
> +        $end = time();
> +        $start = $end - ($hours * 3600);
>       } else {
>           die "internal error";
>       }





More information about the pmg-devel mailing list