public inbox for pmg-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dietmar Maurer <dietmar@proxmox.com>
To: Stoiko Ivanov <s.ivanov@proxmox.com>, pmg-devel@pve.proxmox.com
Subject: [pmg-devel] applied: [PATCH pmg-api 02/11] Backup: split backup creation and creating tar
Date: Fri, 30 Oct 2020 07:20:46 +0100 (CET)	[thread overview]
Message-ID: <484508641.417.1604038846832@webmail.proxmox.com> (raw)
In-Reply-To: <20201028185432.23067-5-s.ivanov@proxmox.com>

applied - see comment inline

> On 10/28/2020 7:54 PM Stoiko Ivanov <s.ivanov@proxmox.com> wrote:
> 
>  
> In preparation for integrating PMG with PBS split the current creation of
> a PMG backup into 2 methods:
> * create all files in a backup in a target directory
> * create a tarball from a backup in a temporary directory
> 
> use the changed method in the backup API call.
> 
> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
> ---
>  src/PMG/API2/Backup.pm |  2 +-
>  src/PMG/Backup.pm      | 41 ++++++++++++++++++++++++++++++++---------
>  2 files changed, 33 insertions(+), 10 deletions(-)
> 
> diff --git a/src/PMG/API2/Backup.pm b/src/PMG/API2/Backup.pm
> index 0bfcfc9..08c06b5 100644
> --- a/src/PMG/API2/Backup.pm
> +++ b/src/PMG/API2/Backup.pm
> @@ -131,7 +131,7 @@ __PACKAGE__->register_method ({
>  
>  	    print "starting backup to: $filename\n";
>  
> -	    PMG::Backup::pmg_backup($filename, $param->{statistic});
> +	    PMG::Backup::pmg_backup_pack($filename, $param->{statistic});
>  
>  	    print "backup finished\n";
>  
> diff --git a/src/PMG/Backup.pm b/src/PMG/Backup.pm
> index 025bac2..40c41f3 100644
> --- a/src/PMG/Backup.pm
> +++ b/src/PMG/Backup.pm
> @@ -133,10 +133,11 @@ sub dumpstatdb {
>  }
>  
>  sub pmg_backup {
> -    my ($filename, $include_statistics) = @_;
> +    my ($dirname, $include_statistics) = @_;
> +
> +    die "No backupdir provided!\n" if !defined($dirname);
>  
>      my $time = time;
> -    my $dirname = "/tmp/proxbackup_$$.$time";
>      my $dbfn = "Proxmox_ruledb.sql";
>      my $statfn = "Proxmox_statdb.sql";
>      my $tarfn = "config_backup.tar";
> @@ -145,12 +146,7 @@ sub pmg_backup {
>  
>      eval {
>  
> -	my $targetdir = dirname($filename);
> -	mkdir $targetdir; # try to create target dir
> -	-d $targetdir ||
> -	    die "unable to access target directory '$targetdir'\n";
> -
> -	# create a temporary directory
> +	# create backup directory
>  	mkdir $dirname;

seems we do this twice now

>  
>  	# dump the database first
> @@ -197,7 +193,34 @@ sub pmg_backup {
>  	system("cd $dirname; md5sum $tarfn $dbfn $extradb $verfn> $sigfn") == 0 ||
>  	    die "unable to create backup signature: ERROR";
>  
> -	system("rm -f $filename; tar czf $filename -C $dirname $verfn $sigfn $dbfn $extradb $tarfn") == 0 ||
> +    };
> +    my $err = $@;
> +
> +    if ($err) {
> +	die $err;
> +    }
> +}
> +
> +sub pmg_backup_pack {
> +    my ($filename, $include_statistics) = @_;
> +
> +    my $time = time;
> +    my $dirname = "/tmp/proxbackup_$$.$time";
> +
> +    eval {
> +
> +	my $targetdir = dirname($filename);
> +	mkdir $targetdir; # try to create target dir
> +	-d $targetdir ||
> +	    die "unable to access target directory '$targetdir'\n";
> +
> +	rmtree $dirname;
> +	# create backup directory
> +	mkdir $dirname;
> +
> +	pmg_backup($dirname, $include_statistics);
> +
> +	system("rm -f $filename; tar czf $filename --strip-components=1 -C $dirname .") == 0 ||
>  	    die "unable to create backup archive: ERROR";
>      };
>      my $err = $@;
> -- 
> 2.20.1
> 
> 
> 
> _______________________________________________
> pmg-devel mailing list
> pmg-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel




  reply	other threads:[~2020-10-30  6:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-28 18:54 [pmg-devel] [PATCH pve-common/api/gui] add initial PBS integration Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pve-common 1/2] Systemd: add helpers for parsing unit files Stoiko Ivanov
2020-10-30  8:26   ` [pmg-devel] applied: " Dietmar Maurer
2020-11-10  8:34   ` [pmg-devel] " Thomas Lamprecht
2020-10-28 18:54 ` [pmg-devel] [PATCH pve-common 2/2] add helper module for handling PBS Integration Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 01/11] drop left-over commented out code Stoiko Ivanov
2020-10-30  5:58   ` [pmg-devel] applied: " Dietmar Maurer
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 02/11] Backup: split backup creation and creating tar Stoiko Ivanov
2020-10-30  6:20   ` Dietmar Maurer [this message]
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 03/11] Restore: optionally restore from directory Stoiko Ivanov
2020-10-30  6:26   ` [pmg-devel] applied: " Dietmar Maurer
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 04/11] Backup: push restore options to PMG::Backup Stoiko Ivanov
2020-10-30  6:32   ` [pmg-devel] applied: " Dietmar Maurer
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 05/11] debian: add dependency on proxmox-backup-client Stoiko Ivanov
2020-10-30  6:33   ` [pmg-devel] applied: " Dietmar Maurer
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 06/11] add initial SectionConfig for pbs Stoiko Ivanov
2020-10-30  6:38   ` Dietmar Maurer
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 07/11] Add API2 module for PBS configuration Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 08/11] Add API2 module for per-node backups to PBS Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 09/11] pbs-integration: add CLI calls to pmgbackup Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 10/11] add scheduled backup to PBS remotes Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-api 11/11] add daily timer for pruning configured remotes Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-gui 1/3] Make Backup/Restore panel a menuentry Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-gui 2/3] refactor RestoreWindow for PBS Stoiko Ivanov
2020-10-28 18:54 ` [pmg-devel] [PATCH pmg-gui 3/3] add PBSConfig tab to Backup menu Stoiko Ivanov
2020-10-30  5:47 ` [pmg-devel] [PATCH pve-common/api/gui] add initial PBS integration Dietmar Maurer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=484508641.417.1604038846832@webmail.proxmox.com \
    --to=dietmar@proxmox.com \
    --cc=pmg-devel@pve.proxmox.com \
    --cc=s.ivanov@proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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