all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH storage] storage/plugin: factoring out regex for backup extension re
@ 2021-06-28  8:37 Lorenz Stechauner
  2021-07-22  7:05 ` Lorenz Stechauner
  0 siblings, 1 reply; 3+ messages in thread
From: Lorenz Stechauner @ 2021-06-28  8:37 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
---
 PVE/Storage.pm        | 12 +++++++-----
 PVE/Storage/Plugin.pm |  4 ++--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index b8e6311..ec29b45 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -105,6 +105,8 @@ our $iso_extension_re = qr/\.(?:iso|img)/i;
 
 our $vztmpl_extension_re = qr/\.tar\.([gx]z)/i;
 
+our $backup_extension_re = qr/\.(tgz|(?:(?:tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?))/i;
+
 #  PVE::Storage utility functions
 
 sub config {
@@ -583,7 +585,7 @@ sub path_to_volume_id {
 	} elsif ($path =~ m!^$privatedir/(\d+)$!) {
 	    my $vmid = $1;
 	    return ('rootdir', "$sid:rootdir/$vmid");
-	} elsif ($path =~ m!^$backupdir/([^/]+\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)))$!) {
+	} elsif ($path =~ m!^$backupdir/([^/]+$backup_extension_re)$!) {
 	    my $name = $1;
 	    return ('backup', "$sid:backup/$name");
 	} elsif ($path =~ m!^$snippetsdir/([^/]+)$!) {
@@ -1468,15 +1470,15 @@ sub archive_info {
     my $info;
 
     my $volid = basename($archive);
-    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+\.(tgz$|tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)$/) {
+    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+$backup_extension_re)$/) {
 	my $filename = "$1"; # untaint
-	my ($type, $format, $comp) = ($2, $3, $4);
-	my $format_re = defined($comp) ? "$format.$comp" : "$format";
+	my ($type, $extension, $comp) = ($2, $3, $4);
+	(my $format = $extension) =~ s/\..*//;
 	$info = decompressor_info($format, $comp);
 	$info->{filename} = $filename;
 	$info->{type} = $type;
 
-	if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${format_re}$/) {
+	if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${extension}$/) {
 	    $info->{logfilename} = "$1.log";
 	    $info->{vmid} = int($2);
 	    $info->{ctime} = timelocal($8, $7, $6, $5, $4 - 1, $3);
diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
index b1865cb..9e7eb7d 100644
--- a/PVE/Storage/Plugin.pm
+++ b/PVE/Storage/Plugin.pm
@@ -522,7 +522,7 @@ sub parse_volname {
 	return ('vztmpl', $1);
     } elsif ($volname =~ m!^rootdir/(\d+)$!) {
 	return ('rootdir', $1, $1);
-    } elsif ($volname =~ m!^backup/([^/]+(?:\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\COMPRESSOR_RE}))?))))$!) {
+    } elsif ($volname =~ m!^backup/([^/]+$PVE::Storage::backup_extension_re)$!) {
 	my $fn = $1;
 	if ($fn =~ m/^vzdump-(openvz|lxc|qemu)-(\d+)-.+/) {
 	    return ('backup', $fn, $2);
@@ -1055,7 +1055,7 @@ my $get_subdir_files = sub {
 	    $info = { volid => "$sid:vztmpl/$1", format => "t$2" };
 
 	} elsif ($tt eq 'backup') {
-	    next if $fn !~ m!/([^/]+\.(tgz|(?:(?:tar|vma)(?:\.(${\COMPRESSOR_RE}))?)))$!;
+	    next if $fn !~ m!/([^/]+$PVE::Storage::backup_extension_re)$!;
 	    my $original = $fn;
 	    my $format = $2;
 	    $fn = $1;
-- 
2.30.2





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

* Re: [pve-devel] [PATCH storage] storage/plugin: factoring out regex for backup extension re
  2021-06-28  8:37 [pve-devel] [PATCH storage] storage/plugin: factoring out regex for backup extension re Lorenz Stechauner
@ 2021-07-22  7:05 ` Lorenz Stechauner
  2021-07-29 15:22   ` Thomas Lamprecht
  0 siblings, 1 reply; 3+ messages in thread
From: Lorenz Stechauner @ 2021-07-22  7:05 UTC (permalink / raw)
  To: Lorenz Stechauner, Proxmox VE development discussion

ping

On 28.06.21 10:37, Lorenz Stechauner wrote:
> Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
> ---
>   PVE/Storage.pm        | 12 +++++++-----
>   PVE/Storage/Plugin.pm |  4 ++--
>   2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/PVE/Storage.pm b/PVE/Storage.pm
> index b8e6311..ec29b45 100755
> --- a/PVE/Storage.pm
> +++ b/PVE/Storage.pm
> @@ -105,6 +105,8 @@ our $iso_extension_re = qr/\.(?:iso|img)/i;
>   
>   our $vztmpl_extension_re = qr/\.tar\.([gx]z)/i;
>   
> +our $backup_extension_re = qr/\.(tgz|(?:(?:tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?))/i;
> +
>   #  PVE::Storage utility functions
>   
>   sub config {
> @@ -583,7 +585,7 @@ sub path_to_volume_id {
>   	} elsif ($path =~ m!^$privatedir/(\d+)$!) {
>   	    my $vmid = $1;
>   	    return ('rootdir', "$sid:rootdir/$vmid");
> -	} elsif ($path =~ m!^$backupdir/([^/]+\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)))$!) {
> +	} elsif ($path =~ m!^$backupdir/([^/]+$backup_extension_re)$!) {
>   	    my $name = $1;
>   	    return ('backup', "$sid:backup/$name");
>   	} elsif ($path =~ m!^$snippetsdir/([^/]+)$!) {
> @@ -1468,15 +1470,15 @@ sub archive_info {
>       my $info;
>   
>       my $volid = basename($archive);
> -    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+\.(tgz$|tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)$/) {
> +    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+$backup_extension_re)$/) {
>   	my $filename = "$1"; # untaint
> -	my ($type, $format, $comp) = ($2, $3, $4);
> -	my $format_re = defined($comp) ? "$format.$comp" : "$format";
> +	my ($type, $extension, $comp) = ($2, $3, $4);
> +	(my $format = $extension) =~ s/\..*//;
>   	$info = decompressor_info($format, $comp);
>   	$info->{filename} = $filename;
>   	$info->{type} = $type;
>   
> -	if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${format_re}$/) {
> +	if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${extension}$/) {
>   	    $info->{logfilename} = "$1.log";
>   	    $info->{vmid} = int($2);
>   	    $info->{ctime} = timelocal($8, $7, $6, $5, $4 - 1, $3);
> diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
> index b1865cb..9e7eb7d 100644
> --- a/PVE/Storage/Plugin.pm
> +++ b/PVE/Storage/Plugin.pm
> @@ -522,7 +522,7 @@ sub parse_volname {
>   	return ('vztmpl', $1);
>       } elsif ($volname =~ m!^rootdir/(\d+)$!) {
>   	return ('rootdir', $1, $1);
> -    } elsif ($volname =~ m!^backup/([^/]+(?:\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\COMPRESSOR_RE}))?))))$!) {
> +    } elsif ($volname =~ m!^backup/([^/]+$PVE::Storage::backup_extension_re)$!) {
>   	my $fn = $1;
>   	if ($fn =~ m/^vzdump-(openvz|lxc|qemu)-(\d+)-.+/) {
>   	    return ('backup', $fn, $2);
> @@ -1055,7 +1055,7 @@ my $get_subdir_files = sub {
>   	    $info = { volid => "$sid:vztmpl/$1", format => "t$2" };
>   
>   	} elsif ($tt eq 'backup') {
> -	    next if $fn !~ m!/([^/]+\.(tgz|(?:(?:tar|vma)(?:\.(${\COMPRESSOR_RE}))?)))$!;
> +	    next if $fn !~ m!/([^/]+$PVE::Storage::backup_extension_re)$!;
>   	    my $original = $fn;
>   	    my $format = $2;
>   	    $fn = $1;




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

* Re: [pve-devel] [PATCH storage] storage/plugin: factoring out regex for backup extension re
  2021-07-22  7:05 ` Lorenz Stechauner
@ 2021-07-29 15:22   ` Thomas Lamprecht
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2021-07-29 15:22 UTC (permalink / raw)
  To: Proxmox VE development discussion, Lorenz Stechauner
  Cc: Fabian Grünbichler, Wolfgang Bumiller

On 22/07/2021 09:05, Lorenz Stechauner wrote:
> ping
> 

seems Ok in general, it's all a bit messy here with those different capture groups usage,
but that was already the case before, just wishing a bit for redoing this the Nice Way™
with, from top of my head, no real idea about what that would look like ;P

Any how, I'll leave that for Fabian or Wolfgang to look at..

> On 28.06.21 10:37, Lorenz Stechauner wrote:
>> Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
>> ---
>>   PVE/Storage.pm        | 12 +++++++-----
>>   PVE/Storage/Plugin.pm |  4 ++--
>>   2 files changed, 9 insertions(+), 7 deletions(-)
>>
>> diff --git a/PVE/Storage.pm b/PVE/Storage.pm
>> index b8e6311..ec29b45 100755
>> --- a/PVE/Storage.pm
>> +++ b/PVE/Storage.pm
>> @@ -105,6 +105,8 @@ our $iso_extension_re = qr/\.(?:iso|img)/i;
>>     our $vztmpl_extension_re = qr/\.tar\.([gx]z)/i;
>>   +our $backup_extension_re = qr/\.(tgz|(?:(?:tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?))/i;
>> +
>>   #  PVE::Storage utility functions
>>     sub config {
>> @@ -583,7 +585,7 @@ sub path_to_volume_id {
>>       } elsif ($path =~ m!^$privatedir/(\d+)$!) {
>>           my $vmid = $1;
>>           return ('rootdir', "$sid:rootdir/$vmid");
>> -    } elsif ($path =~ m!^$backupdir/([^/]+\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)))$!) {
>> +    } elsif ($path =~ m!^$backupdir/([^/]+$backup_extension_re)$!) {
>>           my $name = $1;
>>           return ('backup', "$sid:backup/$name");
>>       } elsif ($path =~ m!^$snippetsdir/([^/]+)$!) {
>> @@ -1468,15 +1470,15 @@ sub archive_info {
>>       my $info;
>>         my $volid = basename($archive);
>> -    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+\.(tgz$|tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)$/) {
>> +    if ($volid =~ /^(vzdump-(lxc|openvz|qemu)-.+$backup_extension_re)$/) {
>>       my $filename = "$1"; # untaint
>> -    my ($type, $format, $comp) = ($2, $3, $4);
>> -    my $format_re = defined($comp) ? "$format.$comp" : "$format";
>> +    my ($type, $extension, $comp) = ($2, $3, $4);
>> +    (my $format = $extension) =~ s/\..*//;
>>       $info = decompressor_info($format, $comp);
>>       $info->{filename} = $filename;
>>       $info->{type} = $type;
>>   -    if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${format_re}$/) {
>> +    if ($volid =~ /^(vzdump-${type}-([1-9][0-9]{2,8})-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2}))\.${extension}$/) {
>>           $info->{logfilename} = "$1.log";
>>           $info->{vmid} = int($2);
>>           $info->{ctime} = timelocal($8, $7, $6, $5, $4 - 1, $3);
>> diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
>> index b1865cb..9e7eb7d 100644
>> --- a/PVE/Storage/Plugin.pm
>> +++ b/PVE/Storage/Plugin.pm
>> @@ -522,7 +522,7 @@ sub parse_volname {
>>       return ('vztmpl', $1);
>>       } elsif ($volname =~ m!^rootdir/(\d+)$!) {
>>       return ('rootdir', $1, $1);
>> -    } elsif ($volname =~ m!^backup/([^/]+(?:\.(?:tgz|(?:(?:tar|vma)(?:\.(?:${\COMPRESSOR_RE}))?))))$!) {
>> +    } elsif ($volname =~ m!^backup/([^/]+$PVE::Storage::backup_extension_re)$!) {
>>       my $fn = $1;
>>       if ($fn =~ m/^vzdump-(openvz|lxc|qemu)-(\d+)-.+/) {
>>           return ('backup', $fn, $2);
>> @@ -1055,7 +1055,7 @@ my $get_subdir_files = sub {
>>           $info = { volid => "$sid:vztmpl/$1", format => "t$2" };
>>         } elsif ($tt eq 'backup') {
>> -        next if $fn !~ m!/([^/]+\.(tgz|(?:(?:tar|vma)(?:\.(${\COMPRESSOR_RE}))?)))$!;
>> +        next if $fn !~ m!/([^/]+$PVE::Storage::backup_extension_re)$!;
>>           my $original = $fn;
>>           my $format = $2;
>>           $fn = $1;
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 





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

end of thread, other threads:[~2021-07-29 15:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-28  8:37 [pve-devel] [PATCH storage] storage/plugin: factoring out regex for backup extension re Lorenz Stechauner
2021-07-22  7:05 ` Lorenz Stechauner
2021-07-29 15:22   ` Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal