[pve-devel] [PATCH v2 container] Fix #1924: add snapshot parameter
Wolfgang Bumiller
w.bumiller at proxmox.com
Thu Jan 3 10:26:19 CET 2019
On Mon, Nov 19, 2018 at 12:20:20PM +0100, Rhonda D'Vine wrote:
> The config CLI command offer the config and showcmd functions. The
> output of that may vary with respect to a given snapshot. This adds a
> switch that shows the corresponding snapshot's config.
>
> This patch needs the one in pve-guest-common applied first, and have the
> versioned dependency in debian/rules adjusted.
>
> Signed-off-by: Rhonda D'Vine <rhonda at proxmox.com>
> ---
> debian/control | 2 +-
> src/PVE/API2/LXC/Config.pm | 19 +++++++++++++++++++
> 2 files changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/debian/control b/debian/control
> index 15f42ad..42a07df 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -4,7 +4,7 @@ Priority: extra
> Maintainer: Proxmox Support Team <support at proxmox.com>
> Build-Depends: debhelper (>= 7.0.50~),
> libpve-common-perl,
> - libpve-guest-common-perl | libpve-common-perl (<= 4.0-89),
> + libpve-guest-common-perl (>> 2.0-18) | libpve-common-perl (<= 4.0-89),
> libpve-storage-perl,
> libtest-mockmodule-perl,
> lxc (>= 3.0.2-1) | lxc-pve (>= 3.0.1+pve1-1),
> diff --git a/src/PVE/API2/LXC/Config.pm b/src/PVE/API2/LXC/Config.pm
> index 1ba0ffd..1bff1cf 100644
> --- a/src/PVE/API2/LXC/Config.pm
> +++ b/src/PVE/API2/LXC/Config.pm
> @@ -35,6 +35,14 @@ __PACKAGE__->register_method({
> properties => {
> node => get_standard_option('pve-node'),
> vmid => get_standard_option('pve-vmid', { completion => \&PVE::LXC::complete_ctid }),
> + snapshot => get_standard_option('pve-snapshot-name', {
> + description => "Fetch config values from given snapshot.",
> + optional => 1,
> + completion => sub {
> + my $vmid = $_[3][0];
It's easier to read when actually using the function signature here, so
please start the sub with the usual:
my ($cmd, $pname, $cur, $args) = @_;
line.
Same in the qemu-server patch.
> + PVE::LXC::Config->snapshot_list($vmid);
> + },
> + }),
> },
> },
> returns => {
> @@ -57,6 +65,17 @@ __PACKAGE__->register_method({
>
> my $conf = PVE::LXC::Config->load_config($param->{vmid});
>
> + my $snapname = $param->{snapshot};
> + if ($snapname) {
> + my $snapshot = $conf->{snapshots}->{$snapname};
> + die "snapshot '$snapname' does not exist\n"
> + if !defined($snapshot);
> +
> + # we need the digest of the file
> + $snapshot->{digest} = $conf->{digest};
> + $conf = $snapshot;
> + }
> +
> delete $conf->{snapshots};
>
> return $conf;
> --
> 2.11.0
More information about the pve-devel
mailing list