[pve-devel] [PATCH qemu-server 4/8] add 'set-user-password' to qm
Thomas Lamprecht
t.lamprecht at proxmox.com
Mon Jun 11 11:23:48 CEST 2018
On 6/7/18 1:16 PM, Dominik Csapak wrote:
> and implement read_password for qm.pm
>
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> PVE/CLI/qm.pm | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm
> index c017a59..ee52c4b 100755
> --- a/PVE/CLI/qm.pm
> +++ b/PVE/CLI/qm.pm
> @@ -665,6 +665,14 @@ my $print_agent_result = sub {
> print to_json($result, { pretty => 1, canonical => 1});
> };
>
> +sub read_password {
> + # return $ENV{PVE_PW_TICKET} if defined($ENV{PVE_PW_TICKET});
is above line left over?
> + my $pw = PVE::PTY::read_password('New VM user password: ');
> + my $pw2 = PVE::PTY::read_password('Repeat password: ');
See: [1]: https://pve.proxmox.com/pipermail/pve-devel/2018-June/032228.html
Maybe we could try to align more with passwd, as I'd like to have
the enter/retype dialog the same on the CLI as much as possible.
Maybe we could add a helper (to PTY?) which gets a confirmed
passwords, so we do not have to duplicate this code everywhere, but simply
add do:
sub read_password {
return PVE::PTY::get_confirmed_password(); # or however you'd like to call it
}
everywhere we need it.
oh an, passwd uses 'Retype' so maybe we should stick to that as it was
earlier in [1], sample output could then look like:
# qm qga passwd 200 tom
Changing password for user 'tom' in VM 200.
Enter new password: ****
Retype new password: ****
Password changed / OK / Sorry, passwords do not match
(yes, I wrote much more than this maybe seen worth it, sorry, but IMO details
are somewhat important and it's faster if we get it already in a good shape
in than having to fix 10 inconsistencies which have grown hidden over time)
> + die "passwords do not match\n" if $pw ne $pw2;
> + return $pw;
> +}
> +
> sub param_mapping {
> my ($name) = @_;
>
> @@ -815,6 +823,8 @@ our $cmddef = {
> agent => [ "PVE::API2::Qemu::Agent", 'agent', ['vmid', 'command'],
> { node => $nodename }, $print_agent_result ],
>
> + 'set-user-password' => [ "PVE::API2::Qemu::Agent", 'set-user-password', [ 'vmid', 'username' ], { node => $nodename }],
> +
> mtunnel => [ __PACKAGE__, 'mtunnel', []],
>
> nbdstop => [ __PACKAGE__, 'nbdstop', ['vmid']],
>
More information about the pve-devel
mailing list