[pve-devel] r4846 - in pve-manager/pve2: . lib/PVE
svn-commits at proxmox.com
svn-commits at proxmox.com
Fri Jun 25 17:02:32 CEST 2010
Author: dietmar
Date: 2010-06-25 15:02:32 +0000 (Fri, 25 Jun 2010)
New Revision: 4846
Modified:
pve-manager/pve2/ChangeLog
pve-manager/pve2/lib/PVE/API2Client.pm
pve-manager/pve2/lib/PVE/REST.pm
Log:
impl. PUT/DELETE
Modified: pve-manager/pve2/ChangeLog
===================================================================
--- pve-manager/pve2/ChangeLog 2010-06-25 14:28:36 UTC (rev 4845)
+++ pve-manager/pve2/ChangeLog 2010-06-25 15:02:32 UTC (rev 4846)
@@ -1,5 +1,7 @@
2010-06-25 Proxmox Support Team <support at proxmox.com>
+ * lib/PVE/REST.pm (proxy_handler): impl. PUT/DELETE
+
* lib/PVE/JSONSchema.pm: add 'protected' property to method_shema
* lib/PVE/REST.pm (proxy_handler): automatically proxy protected
Modified: pve-manager/pve2/lib/PVE/API2Client.pm
===================================================================
--- pve-manager/pve2/lib/PVE/API2Client.pm 2010-06-25 14:28:36 UTC (rev 4845)
+++ pve-manager/pve2/lib/PVE/API2Client.pm 2010-06-25 15:02:32 UTC (rev 4846)
@@ -21,6 +21,18 @@
return $self->call('POST', $path, $param);
}
+sub put {
+ my ($self, $path, $param) = @_;
+
+ return $self->call('PUT', $path, $param);
+}
+
+sub delete {
+ my ($self, $path, $param) = @_;
+
+ return $self->call('DELETE', $path, $param);
+}
+
sub call {
my ($self, $method, $path, $param) = @_;
@@ -58,22 +70,25 @@
$uri->port($self->{port});
$uri->path($path);
+ # print $ua->{cookie_jar}->as_string;
- print $ua->{cookie_jar}->as_string;
-
+ print "CALL $method : " . $uri->as_string() . "\n";
+
my $response;
if ($method eq 'GET') {
$uri->query_form($param);
- print "CALL GET : " . $uri->as_string() . "\n";
- $response = $ua->get($uri);
- print "RESP: " . Dumper($response) . "\n";
+ $response = $ua->request(HTTP::Request::Common::GET($uri));
} elsif ($method eq 'POST') {
- print "CALL POST : " . $uri->as_string() . "\n";
- $response = $ua->post($uri, $param);
- print "RESP: " . Dumper($response) . "\n";
+ $response = $ua->request(HTTP::Request::Common::POST($uri, Content => $param));
+ } elsif ($method eq 'PUT') {
+ $response = $ua->request(HTTP::Request::Common::PUT($uri, Content => $param));
+ } elsif ($method eq 'DELETE') {
+ $response = $ua->request(HTTP::Request::Common::DELETE($uri));
} else {
die "method $method not implemented\n";
}
+
+ print "RESP: " . Dumper($response) . "\n";
if ($response->is_success) {
my $ct = $response->header('Content-Type');
Modified: pve-manager/pve2/lib/PVE/REST.pm
===================================================================
--- pve-manager/pve2/lib/PVE/REST.pm 2010-06-25 14:28:36 UTC (rev 4845)
+++ pve-manager/pve2/lib/PVE/REST.pm 2010-06-25 15:02:32 UTC (rev 4846)
@@ -9,6 +9,8 @@
use CGI;
use mod_perl2;
use JSON;
+use LWP::UserAgent;
+use HTTP::Request::Common;
use Data::Dumper; # fixme: remove
@@ -102,9 +104,13 @@
my $response;
if ($method eq 'GET') {
$uri->query_form($params);
- $response = $ua->get($uri);
+ $response = $ua->request(HTTP::Request::Common::GET($uri));
} elsif ($method eq 'POST') {
- $response = $ua->post($uri, $params);
+ $response = $ua->request(HTTP::Request::Common::POST($uri, Content => $params));
+ } elsif ($method eq 'PUT') {
+ $response = $ua->request(HTTP::Request::Common::PUT($uri, Content => $params));
+ } elsif ($method eq 'DELETE') {
+ $response = $ua->request(HTTP::Request::Common::DELETE($uri));
} else {
my $code = HTTP_NOT_IMPLEMENTED;
$r->status_line("$code proxy method '$method' not implemented");
More information about the pve-devel
mailing list