[pve-devel] [pve-container] vmstatus: define return propertries
Dietmar Maurer
dietmar at proxmox.com
Wed Aug 1 12:17:08 CEST 2018
We can use the same properties in vmlist and vmstatus.
Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
src/PVE/API2/LXC.pm | 44 +----------------------------------------
src/PVE/API2/LXC/Status.pm | 11 ++++++++++-
src/PVE/LXC.pm | 49 ++++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 58 insertions(+), 46 deletions(-)
diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index b65143e..cbcc393 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -74,48 +74,7 @@ __PACKAGE__->register_method({
type => 'array',
items => {
type => "object",
- properties => {
- vmid => get_standard_option('pve-vmid'),
- status => {
- description => "LXC Container status.",
- type => 'string',
- enum => ['stopped', 'running'],
- },
- maxmem => {
- description => "Maximum memory in bytes.",
- type => 'integer',
- optional => 1,
- renderer => 'bytes',
- },
- maxswap => {
- description => "Maximum SWAP memory in bytes.",
- type => 'integer',
- optional => 1,
- renderer => 'bytes',
- },
- maxdisk => {
- description => "Root disk size in bytes.",
- type => 'integer',
- optional => 1,
- renderer => 'bytes',
- },
- name => {
- description => "Container name.",
- type => 'string',
- optional => 1,
- },
- uptime => {
- description => "Uptime.",
- type => 'integer',
- optional => 1,
- renderer => 'duration',
- },
- cpus => {
- description => "Maximum usable CPUs.",
- type => 'number',
- optional => 1,
- },
- },
+ properties => $PVE::LXC::vmstatus_return_properties,
},
links => [ { rel => 'child', href => "{vmid}" } ],
},
@@ -132,7 +91,6 @@ __PACKAGE__->register_method({
next if !$rpcenv->check($authuser, "/vms/$vmid", [ 'VM.Audit' ], 1);
my $data = $vmstatus->{$vmid};
- $data->{vmid} = $vmid;
push @$res, $data;
}
diff --git a/src/PVE/API2/LXC/Status.pm b/src/PVE/API2/LXC/Status.pm
index b98dc24..95775fe 100644
--- a/src/PVE/API2/LXC/Status.pm
+++ b/src/PVE/API2/LXC/Status.pm
@@ -87,7 +87,16 @@ __PACKAGE__->register_method({
vmid => get_standard_option('pve-vmid'),
},
},
- returns => { type => 'object' },
+ returns => {
+ type => 'object',
+ properties => {
+ %$PVE::LXC::vmstatus_return_properties,
+ ha => {
+ description => "HA manager service status.",
+ type => 'object',
+ },
+ },
+ },
code => sub {
my ($param) = @_;
diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index bc03792..1504bd0 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -18,6 +18,7 @@ use PVE::Exception qw(raise_perm_exc);
use PVE::Storage;
use PVE::SafeSyslog;
use PVE::INotify;
+use PVE::JSONSchema qw(get_standard_option);
use PVE::Tools qw($IPV6RE $IPV4RE dir_glob_foreach lock_file lock_file_full O_PATH);
use PVE::CpuSet;
use PVE::Network;
@@ -25,6 +26,7 @@ use PVE::AccessControl;
use PVE::ProcFSTools;
use PVE::Syscall;
use PVE::LXC::Config;
+
use Time::HiRes qw (gettimeofday);
my $nodename = PVE::INotify::nodename();
@@ -42,7 +44,7 @@ sub config_list {
my $d = $ids->{$vmid};
next if !$d->{node} || $d->{node} ne $nodename;
next if !$d->{type} || $d->{type} ne 'lxc';
- $res->{$vmid}->{type} = 'lxc';
+ $res->{$vmid} = { type => 'lxc', vmid => $vmid };
}
return $res;
}
@@ -115,10 +117,53 @@ my $parse_cpuacct_stat = sub {
return $stat;
};
+our $vmstatus_return_properties = {
+ vmid => get_standard_option('pve-vmid'),
+ status => {
+ description => "LXC Container status.",
+ type => 'string',
+ enum => ['stopped', 'running'],
+ },
+ maxmem => {
+ description => "Maximum memory in bytes.",
+ type => 'integer',
+ optional => 1,
+ renderer => 'bytes',
+ },
+ maxswap => {
+ description => "Maximum SWAP memory in bytes.",
+ type => 'integer',
+ optional => 1,
+ renderer => 'bytes',
+ },
+ maxdisk => {
+ description => "Root disk size in bytes.",
+ type => 'integer',
+ optional => 1,
+ renderer => 'bytes',
+ },
+ name => {
+ description => "Container name.",
+ type => 'string',
+ optional => 1,
+ },
+ uptime => {
+ description => "Uptime.",
+ type => 'integer',
+ optional => 1,
+ renderer => 'duration',
+ },
+ cpus => {
+ description => "Maximum usable CPUs.",
+ type => 'number',
+ optional => 1,
+ },
+};
+
sub vmstatus {
my ($opt_vmid) = @_;
- my $list = $opt_vmid ? { $opt_vmid => { type => 'lxc' }} : config_list();
+ my $list = $opt_vmid ? { $opt_vmid => { type => 'lxc', vmid => $opt_vmid }} : config_list();
my $active_hash = list_active_containers();
--
2.11.0
More information about the pve-devel
mailing list