+ my $msg = "Permission check failed";
+
+ $msg .= " ($what)" if $what;
+
+ my $exc = PVE::APIClient::Exception->new("$msg\n", %$param);
+
+ my ($pkg, $filename, $line) = caller;
+
+ $exc->{filename} = $filename;
+ $exc->{line} = $line;
+
+ die $exc;
+}
+
+sub is_param_exc {
+ my ($self) = @_;
+
+ return $self->{code} && $self->{code} eq HTTP_BAD_REQUEST;
+}
+
+sub raise_param_exc {
+ my ($errors, $usage) = @_;
+
+ my $param = {
+ code => HTTP_BAD_REQUEST,
+ errors => $errors,
+ };
+
+ $param->{usage} = $usage if $usage;
+
+ my $exc = PVE::APIClient::Exception->new("Parameter verification failed.\n", %$param);
+