buildsys: update make upload target
[pve-access-control.git] / pveum
diff --git a/pveum b/pveum
index 7c69688..196fb3a 100755 (executable)
--- a/pveum
+++ b/pveum
-#!/usr/bin/perl -w 
+#!/usr/bin/perl
 
 use strict;
-use Getopt::Long;
-use PVE::Tools qw(run_command);
-use PVE::Cluster;
-use PVE::SafeSyslog;
-use PVE::AccessControl;
-use File::Path qw(make_path remove_tree);
-use Term::ReadLine;
-use PVE::INotify;
-use PVE::RPCEnvironment;
-use PVE::API2::User;
-use PVE::API2::Group;
-use PVE::API2::Role;
-use PVE::API2::ACL;
-use PVE::API2::AccessControl;
-use PVE::JSONSchema qw(get_standard_option);
-use PVE::CLIHandler;
+use warnings;
 
-use base qw(PVE::CLIHandler);
+use PVE::CLI::pveum;
 
-use Data::Dumper; # fixme: remove
-
-$ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
-
-initlog('pveum');
-
-#fixme: logging?
-
-die "please run as root\n" if $> != 0;
-
-PVE::INotify::inotify_init();
-
-my $rpcenv = PVE::RPCEnvironment->init('cli');
-
-$rpcenv->init_request();
-$rpcenv->set_language($ENV{LANG});
-$rpcenv->set_user('root@pam'); 
-
-# autmatically generate the private key if it does not already exists
-PVE::Cluster::gen_auth_key();
-
-my $read_password = sub {
-
-    # return $ENV{PVE_PW_TICKET} if defined($ENV{PVE_PW_TICKET});
-
-    my $term = new Term::ReadLine ('pveum');
-    my $attribs = $term->Attribs;
-    $attribs->{redisplay_function} = $attribs->{shadow_redisplay};
-    my $input = $term->readline('Enter new password: ');
-    my $conf = $term->readline('Retype new password: ');
-    die "Passwords do not match.\n" if ($input ne $conf);
-    return $input;
-};
-
-my $cmddef = {
-    ticket => [ 'PVE::API2::AccessControl', 'create_ticket', ['username'], undef,
-               sub {
-                   my ($res) = @_;
-                   print "$res->{ticket}\n";
-               }],
-
-    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'] ],
-
-    groupadd => [ 'PVE::API2::Group', 'create_group', ['groupid'] ],
-    groupmod => [ 'PVE::API2::Group', 'update_group', ['groupid'] ],
-    groupdel => [ 'PVE::API2::Group', 'delete_group', ['groupid'] ],
-
-    roleadd => [ 'PVE::API2::Role', 'create_role', ['roleid'] ],
-    rolemod => [ 'PVE::API2::Role', 'update_role', ['roleid'] ],
-    roledel => [ 'PVE::API2::Role', 'delete_role', ['roleid'] ],
-
-    aclmod => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 0 }],
-    acldel => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }],
+my $prepare = sub {
+    # autmatically generate the private key if it does not already exists
+    PVE::Cluster::gen_auth_key();
 };
 
-my $cmd = shift;
-
-PVE::CLIHandler::handle_cmd($cmddef, "pveum", $cmd, \@ARGV, $read_password, $0);
-
-exit 0;
-
-__END__
-
-=head1 NAME
-
-pveum - PVE User Manager
-
-=head1 SYNOPSIS
-
-=include synopsis
-
-=head1 DESCRIPTION
-
-No description available.
-
-=include pve_copyright
+PVE::CLI::pveum->run_cli_handler(prepare => $prepare);