[pve-devel] [PATCH access-control] pveum: introduce sub-commands
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Oct 10 16:04:26 CEST 2017
Thanks for this, useful to test the other patches.
I am yet in the process of looking at the code changes but tested
a bit around. I noticed three problems:
* when using the `help --verbose` command, e.g.,:
pveum help --verbose
All but the first `USAGE: ...` strings are intended, which wasn't
the case until now and makes it harder to find/distinguish the
different sub commands.
* It would be really nice if the following could work:
# pveum help user add
As with just the quoted version working it can confuse users.
* bash completion does not seem to work anymore
On 10/09/2017 02:35 PM, Philip Abernethy wrote:
> use a sub-command structure instead of abbreviated words, where useful.
> Keep old commands as aliases.
> ---
> In case the sub-commands patch gets applied, here is the first use case.
>
> PVE/CLI/pveum.pm | 41 ++++++++++++++++++++++++++++++-----------
> 1 file changed, 30 insertions(+), 11 deletions(-)
>
> diff --git a/PVE/CLI/pveum.pm b/PVE/CLI/pveum.pm
> index aef7089..a4e584d 100755
> --- a/PVE/CLI/pveum.pm
> +++ b/PVE/CLI/pveum.pm
> @@ -38,6 +38,25 @@ sub read_password {
> }
>
> our $cmddef = {
> + user => {
> + add => [ 'PVE::API2::User', 'create_user', ['userid'] ],
> + modify => [ 'PVE::API2::User', 'update_user', ['userid'] ],
> + delete => [ 'PVE::API2::User', 'delete_user', ['userid'] ],
> + },
> + group => {
> + add => [ 'PVE::API2::Group', 'create_group', ['groupid'] ],
> + modify => [ 'PVE::API2::Group', 'update_group', ['groupid'] ],
> + delete => [ 'PVE::API2::Group', 'delete_group', ['groupid'] ],
> + },
> + role => {
> + add => [ 'PVE::API2::Role', 'create_role', ['roleid'] ],
> + modify => [ 'PVE::API2::Role', 'update_role', ['roleid'] ],
> + delete => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ],
> + },
> + acl => {
> + modify => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }],
> + delete => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }],
> + },
> ticket => [ 'PVE::API2::AccessControl', 'create_ticket', ['username'], undef,
> sub {
> my ($res) = @_;
> @@ -46,20 +65,20 @@ our $cmddef = {
>
> passwd => [ 'PVE::API2::AccessControl', 'change_passsword', ['userid'] ],
>
> - useradd => [ 'PVE::API2::User', 'create_user', ['userid'] ],
> - usermod => [ 'PVE::API2::User', 'update_user', ['userid'] ],
> - userdel => [ 'PVE::API2::User', 'delete_user', ['userid'] ],
> + useradd => { alias => 'user add' },
> + usermod => { alias => 'user modify' },
> + userdel => { alias => 'user delete' },
>
> - groupadd => [ 'PVE::API2::Group', 'create_group', ['groupid'] ],
> - groupmod => [ 'PVE::API2::Group', 'update_group', ['groupid'] ],
> - groupdel => [ 'PVE::API2::Group', 'delete_group', ['groupid'] ],
> + groupadd => { alias => 'group add' },
> + groupmod => { alias => 'group modify' },
> + groupdel => { alias => 'group delete' },
>
> - roleadd => [ 'PVE::API2::Role', 'create_role', ['roleid'] ],
> - rolemod => [ 'PVE::API2::Role', 'update_role', ['roleid'] ],
> - roledel => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ],
> + roleadd => { alias => 'role add' },
> + rolemod => { alias => 'role modify' },
> + roledel => { alias => 'role delete' },
>
> - aclmod => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }],
> - acldel => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }],
> + aclmod => { alias => 'acl modify' },
> + acldel => { alias => 'acl delete' },
> };
>
> 1;
>
More information about the pve-devel
mailing list