def act_on_users(logger: logging.Logger, server: object, action_name: str, server_method: Callable, args: argparse.Namespace) -> None: n_users_handled: int = 0 number_of_errors: int = 0 n_users_listed: int = UserCommand.validate_file_for_import( args.users, logger, strict=args.require_all_valid) logger.debug( _("importcsvsummary.line.processed").format(n_users_listed)) group = None try: group = UserCommand.find_group(logger, server, args.name) except TSC.ServerResponseError as e: Errors.exit_with_error( logger, _("errors.reportable.impersonation.group_not_found").format( args.name), exception=e) error_list = [] user_obj_list: List[TSC.UserItem] = UserCommand.get_users_from_file( args.users) logger.debug( _("tabcmd.result.success.parsed_users").format(len(user_obj_list))) for user_obj in user_obj_list: username: str = user_obj.name or "unknown user" try: user_id: str = UserCommand.find_user_id( logger, server, username) logger.debug("{} user {} ({})".format(action_name, username, user_id)) except TSC.ServerResponseError as e: Errors.check_common_error_codes_and_explain(logger, e) number_of_errors += 1 error_list.append(e) logger.debug(_("tabcmd.result.failure.user").format(username)) continue try: server_method(group, user_id) n_users_handled += 1 logger.info( _("tabcmd.result.success.user_actions").format( action_name, username, group)) except TSC.ServerResponseError as e: Errors.check_common_error_codes_and_explain(logger, e) number_of_errors += 1 error_list.append(e) logger.info(_("session.monitorjob.percent_complete").format(100)) logger.info( _("importcsvsummary.errors.count").format(number_of_errors)) if number_of_errors > 0: logger.info(_("importcsvsummary.error.details").format(error_list))
def run_command(args): logger = log(__class__.__name__, args.logging_level) logger.debug(_("tabcmd.launching")) session = Session() server = session.create_session(args) logger.info(_("deleteusers.status").format(args.filename.name)) UserCommand.validate_file_for_import(args.filename, logger, strict=args.require_all_valid) number_of_users_deleted = 0 number_of_errors = 0 user_obj_list = UserCommand.get_users_from_file(args.filename, logger) logger.debug("Users: {}".format(len(user_obj_list))) error_list = [] for user_obj in user_obj_list: logger.info( _("importcsvsummary.line.processed").format( number_of_users_deleted)) try: user_id = UserCommand.find_user_id(logger, server, user_obj.name) server.users.remove(user_id) logger.debug( _("tabcmd.result.success.delete_user").format( user_obj.name, user_id)) number_of_users_deleted += 1 except Exception as e: Errors.check_common_error_codes_and_explain(logger, e) number_of_errors += 1 error_list.append(e) logger.info( _("importcsvsummary.line.processed").format( number_of_users_deleted)) logger.info( _("importcsvsummary.errors.count").format(number_of_errors)) if number_of_errors > 0: logger.info(_("importcsvsummary.error.details").format(error_list))