[pve-devel] applied [qemu-server] vmstatus: define return propertries

Dietmar Maurer dietmar at proxmox.com
Wed Aug 1 12:58:58 CEST 2018


We can use the same properties in vmlist and vmstatus.

Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
 PVE/API2/Qemu.pm  | 69 +++++++++++++++++--------------------------------------
 PVE/QemuServer.pm | 49 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 69 insertions(+), 49 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 614f239..b3f8134 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -365,52 +365,7 @@ __PACKAGE__->register_method({
 	type => 'array',
 	items => {
 	    type => "object",
-	    properties => {
-		vmid => get_standard_option('pve-vmid'),
-		status => {
-		    description => "Qemu process status.",
-		    type => 'string',
-		    enum => ['stopped', 'running'],
-		},
-		maxmem => {
-		    description => "Maximum memory in bytes.",
-		    type => 'integer',
-		    optional => 1,
-		    renderer => 'bytes',
-		},
-		maxdisk => {
-		    description => "Root disk size in bytes.",
-		    type => 'integer',
-		    optional => 1,
-		    renderer => 'bytes',
-		},
-		name => {
-		    description => "VM name.",
-		    type => 'string',
-		    optional => 1,
-		},
-		qmpstatus => {
-		    description => "Qemu QMP agent status.",
-		    type => 'string',
-		    optional => 1,
-		},
-		pid => {
-		    description => "PID of running qemu process.",
-		    type => 'integer',
-		    optional => 1,
-		},
-		uptime => {
-		    description => "Uptime.",
-		    type => 'integer',
-		    optional => 1,
-		    renderer => 'duration',
-		},
-		cpus => {
-		    description => "Maximum usable CPUs.",
-		    type => 'number',
-		    optional => 1,
-		},
-	    },
+	    properties => $PVE::QemuServer::vmstatus_return_properties,
 	},
 	links => [ { rel => 'child', href => "{vmid}" } ],
     },
@@ -427,7 +382,6 @@ __PACKAGE__->register_method({
 	    next if !$rpcenv->check($authuser, "/vms/$vmid", [ 'VM.Audit' ], 1);
 
 	    my $data = $vmstatus->{$vmid};
-	    $data->{vmid} = int($vmid);
 	    push @$res, $data;
 	}
 
@@ -1908,7 +1862,26 @@ __PACKAGE__->register_method({
 	    vmid => get_standard_option('pve-vmid'),
 	},
     },
-    returns => { type => 'object' },
+    returns => {
+	type => 'object',
+	properties => {
+	    %$PVE::QemuServer::vmstatus_return_properties,
+	    ha => {
+		description => "HA manager service status.",
+		type => 'object',
+	    },
+	    spice => {
+		description => "Qemu VGA configuration supports spice.",
+		type => 'boolean',
+		optional => 1,
+	    },
+	    agent => {
+		description => "Qemu GuestAgent enabled in config.",
+		type => 'boolean',
+		optional => 1,
+	    },
+	},
+    },
     code => sub {
 	my ($param) = @_;
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index a4ab11e..ba09fc3 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2764,6 +2764,53 @@ sub disksize {
     return $drive->{size};
 }
 
+our $vmstatus_return_properties = {
+    vmid => get_standard_option('pve-vmid'),
+    status => {
+	description => "Qemu process status.",
+	type => 'string',
+	enum => ['stopped', 'running'],
+    },
+    maxmem => {
+	description => "Maximum memory in bytes.",
+	type => 'integer',
+	optional => 1,
+	renderer => 'bytes',
+    },
+    maxdisk => {
+	description => "Root disk size in bytes.",
+	type => 'integer',
+	optional => 1,
+	renderer => 'bytes',
+    },
+    name => {
+	description => "VM name.",
+	type => 'string',
+	optional => 1,
+    },
+    qmpstatus => {
+	description => "Qemu QMP agent status.",
+	type => 'string',
+	optional => 1,
+    },
+    pid => {
+	description => "PID of running qemu process.",
+	type => 'integer',
+	optional => 1,
+    },
+    uptime => {
+	description => "Uptime.",
+	type => 'integer',
+	optional => 1,
+	renderer => 'duration',
+    },
+    cpus => {
+	description => "Maximum usable CPUs.",
+	type => 'number',
+	optional => 1,
+    },
+};
+
 my $last_proc_pid_stat;
 
 # get VM status information
@@ -2789,7 +2836,7 @@ sub vmstatus {
 	my $cfspath = PVE::QemuConfig->cfs_config_path($vmid);
 	my $conf = PVE::Cluster::cfs_read_file($cfspath) || {};
 
-	my $d = {};
+	my $d = { vmid => $vmid };
 	$d->{pid} = $list->{$vmid}->{pid};
 
 	# fixme: better status?
-- 
2.11.0




More information about the pve-devel mailing list