[pve-devel] [PATCH 1/4] refactor pveam to use it with our CLI Handler.
Emmanuel Kasper
e.kasper at proxmox.com
Wed Feb 24 12:27:37 CET 2016
By the way what do pveam stand for ? Is that for pve appliance manager ?
( helps to remember purpose of command)
On 02/24/2016 12:10 PM, Wolfgang Link wrote:
> ---
> PVE/CLI/Makefile | 2 +-
> PVE/CLI/pveam.pm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> bin/Makefile | 7 ++---
> bin/pveam | 21 ++------------
> 4 files changed, 95 insertions(+), 23 deletions(-)
> create mode 100644 PVE/CLI/pveam.pm
>
> diff --git a/PVE/CLI/Makefile b/PVE/CLI/Makefile
> index 6ec4dd1..b005a8f 100644
> --- a/PVE/CLI/Makefile
> +++ b/PVE/CLI/Makefile
> @@ -1,6 +1,6 @@
> include ../../defines.mk
>
> -SOURCES=vzdump.pm pvesubscription.pm pveceph.pm
> +SOURCES=vzdump.pm pvesubscription.pm pveceph.pm pveam.pm
>
> all:
>
> diff --git a/PVE/CLI/pveam.pm b/PVE/CLI/pveam.pm
> new file mode 100644
> index 0000000..407d629
> --- /dev/null
> +++ b/PVE/CLI/pveam.pm
> @@ -0,0 +1,88 @@
> +package PVE::CLI::pveam;
> +
> +use strict;
> +use warnings;
> +
> +use PVE::Cluster;
> +use PVE::APLInfo;
> +use Data::Dumper;
> +use PVE::SafeSyslog;
> +use PVE::Tools qw(extract_param);
> +use PVE::Cluster;
> +use PVE::INotify;
> +use PVE::RPCEnvironment;
> +use PVE::JSONSchema qw(get_standard_option);
> +use PVE::CLIHandler;
> +
> +use base qw(PVE::CLIHandler);
> +
> +my $nodename = PVE::INotify::nodename();
> +
> +my $upid_exit = sub {
> + my $upid = shift;
> + my $status = PVE::Tools::upid_read_status($upid);
> + exit($status eq 'OK' ? 0 : -1);
> +};
> +
> +__PACKAGE__->register_method ({
> + name => 'update',
> + path => 'update',
> + method => 'PUT',
> + description => "Update Container Template Database.",
> + parameters => {
> + additionalProperties => 0,
> + },
> + returns => { type => 'null'},
> + code => sub {
> +
> + my $dccfg = PVE::Cluster::cfs_read_file('datacenter.cfg');
> + print Data::Dumper::Dumper $dccfg;
> + print STDERR "update failed - see /var/log/pveam.log for details\n"
> + if !PVE::APLInfo::update($dccfg->{http_proxy});
> +
> + return undef;
> +
> + }});
> +
> +our $cmddef = {
> + update => [ __PACKAGE__, 'update', []],
> +};
> +
> +1;
> +
> +__END__
> +
> +=head1 NAME
> +
> +pveam Tool to manage Linux Container templates on Proxmox VE
> +
> +=head1 SYNOPSIS
> +
> +=include synopsis
> +
> +=head1 DESCRIPTION
> +
> +pveam can manage Container templates like updating the Database,
> +destroying, downloading and showing templates.
> +This tool support bash completion
> +
> +=head1 EXAMPLES
> +
> +Updating the DB
> +pveam update
> +
> +downloading a template in background
> +pveam download debian-8.0-standard --storage local --bg 1
> +
> +removing a template
> +pveam destroy debian-8.0-standard --storage local
> +
> +showing all templates what are available
> +pveam show
> +
> +=head1 FILES
> +
> +Log-files
> +/var/log/pveam.log
> +
> +=include pve_copyright
> diff --git a/bin/Makefile b/bin/Makefile
> index 827e30d..6826c7c 100644
> --- a/bin/Makefile
> +++ b/bin/Makefile
> @@ -3,13 +3,12 @@ include ../defines.mk
> SUBDIRS = init.d ocf test
>
> SERVICES = pvestatd pveproxy pvedaemon spiceproxy
> -CLITOOLS = vzdump pvesubscription pveceph
> +CLITOOLS = vzdump pvesubscription pveceph pveam
>
> SCRIPTS = \
> ${SERVICES} \
> ${CLITOOLS} \
> pvesh \
> - pveam \
> pvebanner \
> pveversion \
> pvemailforward.pl \
> @@ -25,9 +24,9 @@ CLI_MANS = \
> $(addsuffix .1, ${CLITOOLS}) \
> pveversion.1 \
> pveupgrade.1 \
> - pveperf.1 \
> + pveperf.1 \
> pvesh.1 \
> - pvereport.1
> + pvereport.1 \
>
> CLI_PODS = $(addsuffix .pod, ${CLI_MANS})
>
> diff --git a/bin/pveam b/bin/pveam
> index adf1de6..8b55adf 100755
> --- a/bin/pveam
> +++ b/bin/pveam
> @@ -1,23 +1,8 @@
> -#!/usr/bin/perl
> +#!/usr/bin/perl -T
>
> use strict;
> use warnings;
> -use PVE::Cluster;
> -use PVE::APLInfo;
>
> -if (scalar (@ARGV) != 1) {
> - print STDERR "usage: $0 CMD\n";
> - exit (-1);
> -}
> +use PVE::CLI::pveam;
>
> -my $cmd = shift;
> -
> -if ($cmd eq 'update') {
> - my $dccfg = PVE::Cluster::cfs_read_file('datacenter.cfg');
> - exit (0) if PVE::APLInfo::update($dccfg->{http_proxy});
> - print STDERR "update failed - see /var/log/pveam.log for details\n";
> - exit (-1);
> -} else {
> - print STDERR "unknown CMD '$cmd'\n";
> - exit (-1);
> -}
> +PVE::CLI::pveam->run_cli();
>
More information about the pve-devel
mailing list