createSchema: include type property
[pve-common.git] / src / PVE / RESTHandler.pm
index 4153192..87a2c18 100644 (file)
@@ -275,8 +275,6 @@ sub AUTOLOAD {
     my $sub = $AUTOLOAD;
     (my $method = $sub) =~ s/.*:://;
 
-    $method =~ s/.*:://;
-
     my $info = $this->map_method_by_name($method);
 
     *{$sub} = sub {
@@ -388,16 +386,18 @@ sub handle {
        # warn "validate ". Dumper($param}) . "\n" . Dumper($schema);
        PVE::JSONSchema::validate($param, $schema);
        # untaint data (already validated)
+       my $extra = delete $param->{'extra-args'};
        while (my ($key, $val) = each %$param) {
            ($param->{$key}) = $val =~ /^(.*)$/s;
        }
+       $param->{'extra-args'} = [map { /^(.*)$/ } @$extra] if $extra;
     }
 
     my $result = &$func($param); 
 
     # todo: this is only to be safe - disable?
     if (my $schema = $info->{returns}) {
-       PVE::JSONSchema::validate($result, $schema, "Result verification vailed\n");
+       PVE::JSONSchema::validate($result, $schema, "Result verification failed\n");
     }
 
     return $result;