[pve-devel] [PATCH common v3 0/5] sub command for CLI helper
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Jan 9 13:25:28 CET 2018
v3 of the sub command for CLI series. v2 can be found here:
https://pve.proxmox.com/pipermail/pve-devel/2017-December/029916.html
This are the remaining, not yet applied, patches from the sub command
series, which was initially developed by Philip and reworked and
split up by myself.
This version should address the comments from Wolfgangs review (thanks
for that again!). More details in the specific patches.
Attached at the end of this cover letter is a patch for implementing
sub commands and their aliases for the pveum tool (pve-access-control
repo).
Thomas Lamprecht (5):
cli: refactor print_bash_completion
cli: factor out generate usage string
cli: allow specifying sub commands through $cmddef
cli: allow to pass sub commands to help as array
cli: document $cmddef structure
src/PVE/CLIHandler.pm | 306 +++++++++++++++++++++++++++++++++-----------------
1 file changed, 201 insertions(+), 105 deletions(-)
--
2.11.0
----8<----
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;
---->8----
More information about the pve-devel
mailing list