[pve-devel] r5147 - in qemu-server/pve2: . PVE/API2 PVE/API2/Qemu
svn-commits at proxmox.com
svn-commits at proxmox.com
Tue Sep 14 12:09:49 CEST 2010
Author: dietmar
Date: 2010-09-14 10:09:49 +0000 (Tue, 14 Sep 2010)
New Revision: 5147
Added:
qemu-server/pve2/PVE/API2/Qemu.pm
Modified:
qemu-server/pve2/ChangeLog
qemu-server/pve2/PVE/API2/Makefile
qemu-server/pve2/PVE/API2/Qemu/Config.pm
qemu-server/pve2/PVE/API2/Qemu/Status.pm
Log:
* PVE/API2/Qemu.pm: new index class
Modified: qemu-server/pve2/ChangeLog
===================================================================
--- qemu-server/pve2/ChangeLog 2010-09-14 10:07:26 UTC (rev 5146)
+++ qemu-server/pve2/ChangeLog 2010-09-14 10:09:49 UTC (rev 5147)
@@ -1,9 +1,13 @@
2010-09-14 Proxmox Support Team <support at proxmox.com>
- * PVE/API2/Qemu/Status.pm: use better class name
+ * PVE/API2/Qemu.pm: new index class
- * PVE/API2/Qemu/Config.pm: use better class name
+ * PVE/API2/Qemu/Status.pm: use better class name,
+ impl. list cluster nodes
+ * PVE/API2/Qemu/Config.pm: use better class name,
+ impl. list cluster nodes
+
2010-09-13 Proxmox Support Team <support at proxmox.com>
* nqm: implement vncticket
Modified: qemu-server/pve2/PVE/API2/Makefile
===================================================================
--- qemu-server/pve2/PVE/API2/Makefile 2010-09-14 10:07:26 UTC (rev 5146)
+++ qemu-server/pve2/PVE/API2/Makefile 2010-09-14 10:09:49 UTC (rev 5147)
@@ -1,4 +1,5 @@
.PHONY: install
install:
+ install -D -m 0644 Qemu.pm ${DESTDIR}${PERLDIR}/PVE/API2/Qemu.pm
make -C Qemu install
Modified: qemu-server/pve2/PVE/API2/Qemu/Config.pm
===================================================================
--- qemu-server/pve2/PVE/API2/Qemu/Config.pm 2010-09-14 10:07:26 UTC (rev 5146)
+++ qemu-server/pve2/PVE/API2/Qemu/Config.pm 2010-09-14 10:09:49 UTC (rev 5147)
@@ -19,22 +19,46 @@
## GET /vms/
## GET /vms/index status of all VMs (cluster wide)
-# GET /vms/config/qm/{node}/ list of all Qemu VMs (per node)
-# POST /vms/config/qm/{node}/ create VM
-# GET /vms/config/qm/{node}/{vmid} get VM config
-# PUT /vms/config/qm/{node}/{vmid} set VM config
-# DELETE /vms/config/qm/{node}/{vmid} destroy VM
+# GET /vms/qemu/config/{node}/ list of all Qemu VMs (per node)
+# POST /vms/qemu/config/{node}/ create VM
+# GET /vms/qemu/config/{node}/{vmid} get VM config
+# PUT /vms/qemu/config/{node}/{vmid} set VM config
+# DELETE /vms/qemu/config/{node}/{vmid} destroy VM
-# GET /vms/status/qm status of all Qemu VMs (cluster wide)
-# GET /vms/status/qm/{node}/ status of all Qemu VMs (per node)
-# GET /vms/status/qm/{node}/{vmid} get VM status
-# PUT /vms/status/qm/{node}/{vmid} set VM status
+# GET /vms/qemu/status status of all Qemu VMs (cluster wide)
+# GET /vms/qemu/status/{node}/ status of all Qemu VMs (per node)
+# GET /vms/qemu/status/{node}/{vmid} get VM status
+# PUT /vms/qemu/status/{node}/{vmid} set VM status
-# POST /vms/vncproxy/qm create vnc proxy
+# POST /vms/qemu/vncproxy create vnc proxy
use base qw(PVE::RESTHandler);
__PACKAGE__->register_method ({
+ name => 'index',
+ path => '',
+ method => 'GET',
+ description => "List cluster nodes.",
+ parameters => {
+ additionalProperties => 0,
+ properties => {},
+ },
+ returns => {
+ type => 'array',
+ items => {
+ type => "object",
+ properties => { node => { type => 'string' } },
+ },
+ links => [ { rel => 'child', href => "{node}" } ],
+ },
+ code => sub {
+ my ($param) = @_;
+
+ my $rpcenv = PVE::RPCEnvironment::get();
+ return $rpcenv->get_nodelist();
+ }});
+
+__PACKAGE__->register_method ({
name => 'vmlist',
path => '{node}',
method => 'GET',
Modified: qemu-server/pve2/PVE/API2/Qemu/Status.pm
===================================================================
--- qemu-server/pve2/PVE/API2/Qemu/Status.pm 2010-09-14 10:07:26 UTC (rev 5146)
+++ qemu-server/pve2/PVE/API2/Qemu/Status.pm 2010-09-14 10:09:49 UTC (rev 5147)
@@ -16,7 +16,30 @@
use base qw(PVE::RESTHandler);
+__PACKAGE__->register_method ({
+ name => 'index',
+ path => '',
+ method => 'GET',
+ description => "List cluster nodes.",
+ parameters => {
+ additionalProperties => 0,
+ properties => {},
+ },
+ returns => {
+ type => 'array',
+ items => {
+ type => "object",
+ properties => { node => { type => 'string' } },
+ },
+ links => [ { rel => 'child', href => "{node}" } ],
+ },
+ code => sub {
+ my ($param) = @_;
+ my $rpcenv = PVE::RPCEnvironment::get();
+ return $rpcenv->get_nodelist();
+ }});
+
__PACKAGE__->register_method ({
name => 'vmlist',
path => '{node}',
Added: qemu-server/pve2/PVE/API2/Qemu.pm
===================================================================
--- qemu-server/pve2/PVE/API2/Qemu.pm (rev 0)
+++ qemu-server/pve2/PVE/API2/Qemu.pm 2010-09-14 10:09:49 UTC (rev 5147)
@@ -0,0 +1,65 @@
+package PVE::API2::Qemu;
+
+use strict;
+use warnings;
+
+use PVE::RESTHandler;
+use PVE::API2::Qemu::Config;
+use PVE::API2::Qemu::Status;
+use PVE::API2::Qemu::VNC;
+
+use base qw(PVE::RESTHandler);
+
+__PACKAGE__->register_method ({
+ subclass => "PVE::API2::Qemu::Config",
+ path => 'config',
+});
+
+__PACKAGE__->register_method ({
+ subclass => "PVE::API2::Qemu::Status",
+ path => 'status',
+});
+
+__PACKAGE__->register_method ({
+ subclass => "PVE::API2::Qemu::VNC",
+ path => 'vncproxy',
+});
+
+__PACKAGE__->register_method ({
+ name => 'index',
+ path => '',
+ method => 'GET',
+ description => "Directory index.",
+ parameters => {
+ additionalProperties => 0,
+ properties => {},
+ },
+ returns => {
+ type => 'array',
+ items => {
+ type => "object",
+ properties => {
+ subdir => { type => 'string' },
+ },
+ },
+ links => [ { rel => 'child', href => "{subdir}" } ],
+ },
+ code => sub {
+ my ($param) = @_;
+
+ my $res = [];
+
+ my $ma = __PACKAGE__->method_attributes();
+
+ foreach my $info (@$ma) {
+ next if !$info->{subclass};
+
+ my $subpath = $info->{match_re}->[0];
+
+ push @$res, { subdir => $subpath };
+ }
+
+ return $res;
+ }});
+
+1;
More information about the pve-devel
mailing list