mirror of
https://git.proxmox.com/git/pve-common
synced 2025-07-26 22:31:42 +00:00
rest/cli: rename param mapping related variable to shorter versions
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
4842b65105
commit
968bcf45be
@ -51,7 +51,6 @@ my $standard_mappings = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
sub get_standard_mapping {
|
sub get_standard_mapping {
|
||||||
my ($name, $base) = @_;
|
my ($name, $base) = @_;
|
||||||
|
|
||||||
@ -185,7 +184,7 @@ sub generate_usage_str {
|
|||||||
$separator //= '';
|
$separator //= '';
|
||||||
$indent //= '';
|
$indent //= '';
|
||||||
|
|
||||||
my $param_mapping_func = $gen_param_mapping_func->($cli_handler_class);
|
my $param_cb = $gen_param_mapping_func->($cli_handler_class);
|
||||||
|
|
||||||
my ($subcmd, $def, undef, undef, $cmdstr) = resolve_cmd($cmd);
|
my ($subcmd, $def, undef, undef, $cmdstr) = resolve_cmd($cmd);
|
||||||
$abort->("unknown command '$cmdstr'") if !defined($def) && ref($cmd) eq 'ARRAY';
|
$abort->("unknown command '$cmdstr'") if !defined($def) && ref($cmd) eq 'ARRAY';
|
||||||
@ -205,8 +204,7 @@ sub generate_usage_str {
|
|||||||
$str .= $separator if $oldclass && $oldclass ne $class;
|
$str .= $separator if $oldclass && $oldclass ne $class;
|
||||||
$str .= $indent;
|
$str .= $indent;
|
||||||
$str .= $class->usage_str($name, "$prefix $cmd", $arg_param,
|
$str .= $class->usage_str($name, "$prefix $cmd", $arg_param,
|
||||||
$fixed_param, $format,
|
$fixed_param, $format, $param_cb);
|
||||||
$param_mapping_func);
|
|
||||||
$oldclass = $class;
|
$oldclass = $class;
|
||||||
|
|
||||||
} elsif (defined($def->{$cmd}->{alias}) && ($format eq 'asciidoc')) {
|
} elsif (defined($def->{$cmd}->{alias}) && ($format eq 'asciidoc')) {
|
||||||
@ -229,8 +227,7 @@ sub generate_usage_str {
|
|||||||
$abort->("unknown command '$cmd'") if !$class;
|
$abort->("unknown command '$cmd'") if !$class;
|
||||||
|
|
||||||
$str .= $indent;
|
$str .= $indent;
|
||||||
$str .= $class->usage_str($name, $prefix, $arg_param, $fixed_param, $format,
|
$str .= $class->usage_str($name, $prefix, $arg_param, $fixed_param, $format, $param_cb);
|
||||||
$param_mapping_func);
|
|
||||||
}
|
}
|
||||||
return $str;
|
return $str;
|
||||||
};
|
};
|
||||||
@ -666,7 +663,7 @@ sub setup_environment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $handle_cmd = sub {
|
my $handle_cmd = sub {
|
||||||
my ($args, $preparefunc, $param_mapping_func) = @_;
|
my ($args, $preparefunc, $param_cb) = @_;
|
||||||
|
|
||||||
$cmddef->{help} = [ __PACKAGE__, 'help', ['extra-args'] ];
|
$cmddef->{help} = [ __PACKAGE__, 'help', ['extra-args'] ];
|
||||||
|
|
||||||
@ -696,7 +693,7 @@ my $handle_cmd = sub {
|
|||||||
my ($class, $name, $arg_param, $uri_param, $outsub) = @{$def || []};
|
my ($class, $name, $arg_param, $uri_param, $outsub) = @{$def || []};
|
||||||
$abort->("unknown command '$cmd_str'") if !$class;
|
$abort->("unknown command '$cmd_str'") if !$class;
|
||||||
|
|
||||||
my $res = $class->cli_handler($cmd_str, $name, $cmd_args, $arg_param, $uri_param, $param_mapping_func);
|
my $res = $class->cli_handler($cmd_str, $name, $cmd_args, $arg_param, $uri_param, $param_cb);
|
||||||
|
|
||||||
if (defined $outsub) {
|
if (defined $outsub) {
|
||||||
my $result_schema = $class->map_method_by_name($name)->{returns};
|
my $result_schema = $class->map_method_by_name($name)->{returns};
|
||||||
@ -705,7 +702,7 @@ my $handle_cmd = sub {
|
|||||||
};
|
};
|
||||||
|
|
||||||
my $handle_simple_cmd = sub {
|
my $handle_simple_cmd = sub {
|
||||||
my ($args, $preparefunc, $param_mapping_func) = @_;
|
my ($args, $preparefunc, $param_cb) = @_;
|
||||||
|
|
||||||
my ($class, $name, $arg_param, $uri_param, $outsub) = @{$cmddef};
|
my ($class, $name, $arg_param, $uri_param, $outsub) = @{$cmddef};
|
||||||
die "no class specified" if !$class;
|
die "no class specified" if !$class;
|
||||||
@ -734,7 +731,7 @@ my $handle_simple_cmd = sub {
|
|||||||
|
|
||||||
&$preparefunc() if $preparefunc;
|
&$preparefunc() if $preparefunc;
|
||||||
|
|
||||||
my $res = $class->cli_handler($name, $name, \@ARGV, $arg_param, $uri_param, $param_mapping_func);
|
my $res = $class->cli_handler($name, $name, \@ARGV, $arg_param, $uri_param, $param_cb);
|
||||||
|
|
||||||
if (defined $outsub) {
|
if (defined $outsub) {
|
||||||
my $result_schema = $class->map_method_by_name($name)->{returns};
|
my $result_schema = $class->map_method_by_name($name)->{returns};
|
||||||
@ -758,7 +755,7 @@ sub run_cli_handler {
|
|||||||
|
|
||||||
my $preparefunc = $params{prepare};
|
my $preparefunc = $params{prepare};
|
||||||
|
|
||||||
my $param_mapping_func = $gen_param_mapping_func->($cli_handler_class);
|
my $param_cb = $gen_param_mapping_func->($cli_handler_class);
|
||||||
|
|
||||||
$exename = &$get_exe_name($class);
|
$exename = &$get_exe_name($class);
|
||||||
|
|
||||||
@ -768,9 +765,9 @@ sub run_cli_handler {
|
|||||||
$cmddef = ${"${class}::cmddef"};
|
$cmddef = ${"${class}::cmddef"};
|
||||||
|
|
||||||
if (ref($cmddef) eq 'ARRAY') {
|
if (ref($cmddef) eq 'ARRAY') {
|
||||||
$handle_simple_cmd->(\@ARGV, $preparefunc, $param_mapping_func);
|
$handle_simple_cmd->(\@ARGV, $preparefunc, $param_cb);
|
||||||
} else {
|
} else {
|
||||||
$handle_cmd->(\@ARGV, $preparefunc, $param_mapping_func);
|
$handle_cmd->(\@ARGV, $preparefunc, $param_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit 0;
|
exit 0;
|
||||||
|
@ -576,9 +576,9 @@ my $compute_param_mapping_hash = sub {
|
|||||||
# 'short' ... command line only (text, one line)
|
# 'short' ... command line only (text, one line)
|
||||||
# 'full' ... text, include description
|
# 'full' ... text, include description
|
||||||
# 'asciidoc' ... generate asciidoc for man pages (like 'full')
|
# 'asciidoc' ... generate asciidoc for man pages (like 'full')
|
||||||
# $param_mapping_func ... mapping for string parameters to file path parameters
|
# $param_cb ... mapping for string parameters to file path parameters
|
||||||
sub usage_str {
|
sub usage_str {
|
||||||
my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $param_mapping_func) = @_;
|
my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $param_cb) = @_;
|
||||||
|
|
||||||
$format = 'long' if !$format;
|
$format = 'long' if !$format;
|
||||||
|
|
||||||
@ -623,12 +623,12 @@ sub usage_str {
|
|||||||
|
|
||||||
my $type_text = $prop->{$k}->{type} || 'string';
|
my $type_text = $prop->{$k}->{type} || 'string';
|
||||||
|
|
||||||
my $param_mapping_hash = {};
|
my $param_map = {};
|
||||||
|
|
||||||
if (defined($param_mapping_func)) {
|
if (defined($param_cb)) {
|
||||||
my $mapping = $param_mapping_func->($name);
|
my $mapping = $param_cb->($name);
|
||||||
$param_mapping_hash = $compute_param_mapping_hash->($mapping);
|
$param_map = $compute_param_mapping_hash->($mapping);
|
||||||
next if $k eq 'password' && $param_mapping_hash->{$k} && !$prop->{$k}->{optional};
|
next if $k eq 'password' && $param_map->{$k} && !$prop->{$k}->{optional};
|
||||||
}
|
}
|
||||||
|
|
||||||
my $base = $k;
|
my $base = $k;
|
||||||
@ -642,8 +642,7 @@ sub usage_str {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$opts .= $get_property_description->($base, 'arg', $prop->{$k}, $format,
|
$opts .= $get_property_description->($base, 'arg', $prop->{$k}, $format, $param_map->{$k});
|
||||||
$param_mapping_hash->{$k});
|
|
||||||
|
|
||||||
if (!$prop->{$k}->{optional}) {
|
if (!$prop->{$k}->{optional}) {
|
||||||
$args .= " " if $args;
|
$args .= " " if $args;
|
||||||
@ -727,9 +726,9 @@ sub dump_properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $replace_file_names_with_contents = sub {
|
my $replace_file_names_with_contents = sub {
|
||||||
my ($param, $param_mapping_hash) = @_;
|
my ($param, $param_map) = @_;
|
||||||
|
|
||||||
while (my ($k, $d) = each %$param_mapping_hash) {
|
while (my ($k, $d) = each %$param_map) {
|
||||||
next if $d->{interactive}; # handled by the JSONSchema's get_options code
|
next if $d->{interactive}; # handled by the JSONSchema's get_options code
|
||||||
$param->{$k} = $d->{func}->($param->{$k})
|
$param->{$k} = $d->{func}->($param->{$k})
|
||||||
if defined($param->{$k});
|
if defined($param->{$k});
|
||||||
@ -739,18 +738,18 @@ my $replace_file_names_with_contents = sub {
|
|||||||
};
|
};
|
||||||
|
|
||||||
sub cli_handler {
|
sub cli_handler {
|
||||||
my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $param_mapping_func) = @_;
|
my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $param_cb) = @_;
|
||||||
|
|
||||||
my $info = $self->map_method_by_name($name);
|
my $info = $self->map_method_by_name($name);
|
||||||
|
|
||||||
my $res;
|
my $res;
|
||||||
eval {
|
eval {
|
||||||
my $param_mapping_hash = {};
|
my $param_map = {};
|
||||||
$param_mapping_hash = $compute_param_mapping_hash->($param_mapping_func->($name)) if $param_mapping_func;
|
$param_map = $compute_param_mapping_hash->($param_cb->($name)) if $param_cb;
|
||||||
my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $arg_param, $fixed_param, $param_mapping_hash);
|
my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $arg_param, $fixed_param, $param_map);
|
||||||
|
|
||||||
if (defined($param_mapping_hash)) {
|
if (defined($param_map)) {
|
||||||
&$replace_file_names_with_contents($param, $param_mapping_hash);
|
$replace_file_names_with_contents->($param, $param_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $self->handle($info, $param);
|
$res = $self->handle($info, $param);
|
||||||
@ -760,7 +759,7 @@ sub cli_handler {
|
|||||||
|
|
||||||
die $err if !$ec || $ec ne "PVE::Exception" || !$err->is_param_exc();
|
die $err if !$ec || $ec ne "PVE::Exception" || !$err->is_param_exc();
|
||||||
|
|
||||||
$err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short', $param_mapping_func);
|
$err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short', $param_cb);
|
||||||
|
|
||||||
die $err;
|
die $err;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user