]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/RESTHandler.pm
remove read_password_func from cli handler
[pve-common.git] / src / PVE / RESTHandler.pm
index 61dee20072090ac1f0aaf7f30eeb2ff2543b6282..c315813a02f2e88bbe51534accf2de3a869adc85 100644 (file)
@@ -432,7 +432,7 @@ sub handle {
 # $style: 'config', 'config-sub', 'arg' or 'fixed'
 # $mapdef: parameter mapping ({ desc => XXX, func => sub {...} })
 my $get_property_description = sub {
-    my ($name, $style, $phash, $format, $hidepw, $mapdef) = @_;
+    my ($name, $style, $phash, $format, $mapdef) = @_;
 
     my $res = '';
 
@@ -449,10 +449,6 @@ my $get_property_description = sub {
 
     my $type_text = PVE::JSONSchema::schema_get_type_text($phash, $style);
 
-    if ($hidepw && $name eq 'password') {
-       $type_text = '';
-    }
-
     if ($mapdef && $phash->{type} eq 'string') {
        $type_text = $mapdef->{desc};
     }
@@ -580,10 +576,9 @@ my $compute_param_mapping_hash = sub {
 #   'short'    ... command line only (text, one line)
 #   'full'     ... text, include description
 #   'asciidoc' ... generate asciidoc for man pages (like 'full')
-# $hidepw      ... hide password option (use this if you provide a read passwork callback)
 # $param_mapping_func ... mapping for string parameters to file path parameters
 sub usage_str {
-    my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $hidepw, $param_mapping_func) = @_;
+    my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $param_mapping_func) = @_;
 
     $format = 'long' if !$format;
 
@@ -616,7 +611,7 @@ sub usage_str {
     foreach my $k (@$arg_param) {
        next if defined($fixed_param->{$k}); # just to be sure
        next if !$prop->{$k}; # just to be sure
-       $argdescr .= &$get_property_description($k, 'fixed', $prop->{$k}, $format, 0);
+       $argdescr .= $get_property_description->($k, 'fixed', $prop->{$k}, $format);
     }
 
     my $idx_param = {}; # -vlan\d+ -scsi\d+
@@ -628,7 +623,13 @@ sub usage_str {
 
        my $type_text = $prop->{$k}->{type} || 'string';
 
-       next if $hidepw && ($k eq 'password') && !$prop->{$k}->{optional};
+       my $param_mapping_hash = {};
+
+       if (defined($param_mapping_func)) {
+           my $mapping = $param_mapping_func->($name);
+           $param_mapping_hash = $compute_param_mapping_hash->($mapping);
+           next if $k eq 'password' && $param_mapping_hash->{$k} && !$prop->{$k}->{optional};
+       }
 
        my $base = $k;
        if ($k =~ m/^([a-z]+)(\d+)$/) {
@@ -640,11 +641,9 @@ sub usage_str {
            }
        }
 
-       my $param_mapping_hash = $compute_param_mapping_hash->(&$param_mapping_func($name))
-           if $param_mapping_func;
 
-       $opts .= &$get_property_description($base, 'arg', $prop->{$k}, $format,
-                                           $hidepw, $param_mapping_hash->{$k});
+       $opts .= $get_property_description->($base, 'arg', $prop->{$k}, $format,
+                                           $param_mapping_hash->{$k});
 
        if (!$prop->{$k}->{optional}) {
            $args .= " " if $args;
@@ -707,7 +706,7 @@ sub dump_properties {
            }
        }
 
-       $raw .= &$get_property_description($base, $style, $phash, $format, 0);
+       $raw .= $get_property_description->($base, $style, $phash, $format);
 
        next if $style ne 'config';
 
@@ -740,14 +739,15 @@ my $replace_file_names_with_contents = sub {
 };
 
 sub cli_handler {
-    my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $read_password_func, $param_mapping_func) = @_;
+    my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $param_mapping_func) = @_;
 
     my $info = $self->map_method_by_name($name);
 
     my $res;
     eval {
-       my $param_mapping_hash = $compute_param_mapping_hash->($param_mapping_func->($name)) if $param_mapping_func;
-       my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $arg_param, $fixed_param, $read_password_func, $param_mapping_hash);
+       my $param_mapping_hash = {};
+       $param_mapping_hash = $compute_param_mapping_hash->($param_mapping_func->($name)) if $param_mapping_func;
+       my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $arg_param, $fixed_param, $param_mapping_hash);
 
        if (defined($param_mapping_hash)) {
            &$replace_file_names_with_contents($param, $param_mapping_hash);
@@ -760,7 +760,7 @@ sub cli_handler {
 
        die $err if !$ec || $ec ne "PVE::Exception" || !$err->is_param_exc();
        
-       $err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short', $read_password_func, $param_mapping_func);
+       $err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short',  $param_mapping_func);
 
        die $err;
     }