[pve-devel] r5043 - pve-common/trunk
svn-commits at proxmox.com
svn-commits at proxmox.com
Tue Aug 24 13:05:15 CEST 2010
Author: dietmar
Date: 2010-08-24 11:05:14 +0000 (Tue, 24 Aug 2010)
New Revision: 5043
Added:
pve-common/trunk/RPCEnvironment.pm
Modified:
pve-common/trunk/ChangeLog
pve-common/trunk/Makefile
pve-common/trunk/RESTHandler.pm
Log:
* RESTHandler.pm (handle): remove $conn parameter. We use new
RPCEnvironment class to pass environment values.
Modified: pve-common/trunk/ChangeLog
===================================================================
--- pve-common/trunk/ChangeLog 2010-08-23 06:02:15 UTC (rev 5042)
+++ pve-common/trunk/ChangeLog 2010-08-24 11:05:14 UTC (rev 5043)
@@ -1,3 +1,8 @@
+2010-08-24 Proxmox Support Team <support at proxmox.com>
+
+ * RESTHandler.pm (handle): remove $conn parameter. We use new
+ RPCEnvironment class to pass environment values.
+
2010-08-20 Proxmox Support Team <support at proxmox.com>
* RESTHandler.pm (register_method): allow us to use regex in the
Modified: pve-common/trunk/Makefile
===================================================================
--- pve-common/trunk/Makefile 2010-08-23 06:02:15 UTC (rev 5042)
+++ pve-common/trunk/Makefile 2010-08-24 11:05:14 UTC (rev 5043)
@@ -18,6 +18,7 @@
DEB=${PACKAGE}_${VERSION}-${PKGREL}_${ARCH}.deb
LIB_SOURCES= \
+ RPCEnvironment.pm \
RESTHandler.pm \
JSONSchema.pm \
SafeSyslog.pm \
Modified: pve-common/trunk/RESTHandler.pm
===================================================================
--- pve-common/trunk/RESTHandler.pm 2010-08-23 06:02:15 UTC (rev 5042)
+++ pve-common/trunk/RESTHandler.pm 2010-08-24 11:05:14 UTC (rev 5043)
@@ -51,21 +51,6 @@
push @{$method_registry->{$self}}, $info;
}
-my $call_local_method = sub {
- my ($self, $info, $param) = @_;
-
- # fixme: how do we handle this here?
- # fixme: language ?
- my $conn = {
-# abs_uri => $abs_uri,
-# rel_uri => $rel_uri,
-# user => $username,
- params => $param || {},
- };
-
- return $self->handle($info, $conn);
-};
-
sub AUTOLOAD {
my $this = shift;
@@ -81,7 +66,7 @@
*$AUTOLOAD = sub {
my $self = shift;
- return $self->$call_local_method($info, @_);
+ return $self->handle($info, @_);
};
goto &$AUTOLOAD;
@@ -185,7 +170,7 @@
}
sub handle {
- my ($self, $info, $conn) = @_;
+ my ($self, $info, $param) = @_;
my $func = $info->{code};
@@ -195,11 +180,11 @@
}
if (my $schema = $info->{parameters}) {
- # warn "validate ". Dumper($conn->{params}) . "\n" . Dumper($schema);
- PVE::JSONSchema::validate($conn->{params}, $schema);
+ # warn "validate ". Dumper($param}) . "\n" . Dumper($schema);
+ PVE::JSONSchema::validate($param, $schema);
}
- my $result = &$func($conn, $conn->{params});
+ my $result = &$func($param);
# fixme: this is only to be safe
if (my $schema = $info->{returns}) {
@@ -216,7 +201,7 @@
my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $uri_param, $pwcallback);
- return $self->$call_local_method($info, $param);
+ return $self->handle($info, $param);
}
# utility methods
Added: pve-common/trunk/RPCEnvironment.pm
===================================================================
--- pve-common/trunk/RPCEnvironment.pm (rev 0)
+++ pve-common/trunk/RPCEnvironment.pm 2010-08-24 11:05:14 UTC (rev 5043)
@@ -0,0 +1,43 @@
+package PVE::RPCEnvironment;
+
+use strict;
+use warnings;
+
+# we use this global to pass RPC related environment value
+our $pve_env;
+
+sub init {
+ my ($class) = @_;
+
+ $class = ref($class) || $class;
+
+ die "already initialized" if $pve_env;
+
+ my $self = {
+
+ };
+
+ bless $self, $class;
+
+ $pve_env = $self;
+
+ return $self;
+};
+
+sub set_language {
+ my ($self, $lang) = @_;
+
+ # fixme: initialize I18N
+
+ $self->{language} = $lang;
+}
+
+sub set_user {
+ my ($self, $user) = @_;
+
+ # fixme: get ACLs
+
+ $self->{user} = $user;
+}
+
+1;
More information about the pve-devel
mailing list