List of usage examples for org.apache.commons.cli Option getOpt
public String getOpt()
From source file:org.apache.sentry.binding.hive.authz.SentryConfigTool.java
/** * parse arguments/*from ww w . jav a2 s. c o m*/ * * <pre> * -d,--debug Enable debug output * -e,--query <arg> Query privilege verification, requires -u * -h,--help Print usage * -i,--policyIni <arg> Policy file path * -j,--jdbcURL <arg> JDBC URL * -l,--listPrivs,--listPerms List privilges for given user, requires -u * -p,--password <arg> Password * -s,--sentry-site <arg> sentry-site file path * -u,--user <arg> user name * -v,--validate Validate policy file * -I,--import Import policy file * -E,--export Export policy file * -o,--overwrite Overwrite the exist role data when do the import * </pre> * * @param args */ private void parseArgs(String[] args) { boolean enableDebug = false; Options sentryOptions = new Options(); Option helpOpt = new Option("h", "help", false, "Print usage"); helpOpt.setRequired(false); Option validateOpt = new Option("v", "validate", false, "Validate policy file"); validateOpt.setRequired(false); Option queryOpt = new Option("e", "query", true, "Query privilege verification, requires -u"); queryOpt.setRequired(false); Option listPermsOpt = new Option("l", "listPerms", false, "list permissions for given user, requires -u"); listPermsOpt.setRequired(false); Option listPrivsOpt = new Option("listPrivs", false, "list privileges for given user, requires -u"); listPrivsOpt.setRequired(false); Option importOpt = new Option("I", "import", true, "Import policy file"); importOpt.setRequired(false); Option exportOpt = new Option("E", "export", true, "Export policy file"); exportOpt.setRequired(false); // required args OptionGroup sentryOptGroup = new OptionGroup(); sentryOptGroup.addOption(helpOpt); sentryOptGroup.addOption(validateOpt); sentryOptGroup.addOption(queryOpt); sentryOptGroup.addOption(listPermsOpt); sentryOptGroup.addOption(listPrivsOpt); sentryOptGroup.addOption(importOpt); sentryOptGroup.addOption(exportOpt); sentryOptGroup.setRequired(true); sentryOptions.addOptionGroup(sentryOptGroup); // optional args Option jdbcArg = new Option("j", "jdbcURL", true, "JDBC URL"); jdbcArg.setRequired(false); sentryOptions.addOption(jdbcArg); Option sentrySitePath = new Option("s", "sentry-site", true, "sentry-site file path"); sentrySitePath.setRequired(false); sentryOptions.addOption(sentrySitePath); Option globalPolicyPath = new Option("i", "policyIni", true, "Policy file path"); globalPolicyPath.setRequired(false); sentryOptions.addOption(globalPolicyPath); Option userOpt = new Option("u", "user", true, "user name"); userOpt.setRequired(false); sentryOptions.addOption(userOpt); Option passWordOpt = new Option("p", "password", true, "Password"); userOpt.setRequired(false); sentryOptions.addOption(passWordOpt); Option debugOpt = new Option("d", "debug", false, "enable debug output"); debugOpt.setRequired(false); sentryOptions.addOption(debugOpt); Option overwriteOpt = new Option("o", "overwrite", false, "enable import overwrite"); overwriteOpt.setRequired(false); sentryOptions.addOption(overwriteOpt); try { Parser parser = new GnuParser(); CommandLine cmd = parser.parse(sentryOptions, args); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("s")) { setSentrySiteFile(opt.getValue()); } else if (opt.getOpt().equals("i")) { setPolicyFile(opt.getValue()); } else if (opt.getOpt().equals("e")) { setQuery(opt.getValue()); } else if (opt.getOpt().equals("j")) { setJdbcURL(opt.getValue()); } else if (opt.getOpt().equals("u")) { setUser(opt.getValue()); } else if (opt.getOpt().equals("p")) { setPassWord(opt.getValue()); } else if (opt.getOpt().equals("l") || opt.getOpt().equals("listPrivs")) { setListPrivs(true); } else if (opt.getOpt().equals("v")) { setValidate(true); } else if (opt.getOpt().equals("I")) { setImportPolicyFilePath(opt.getValue()); } else if (opt.getOpt().equals("E")) { setExportPolicyFilePath(opt.getValue()); } else if (opt.getOpt().equals("h")) { usage(sentryOptions); } else if (opt.getOpt().equals("d")) { enableDebug = true; } else if (opt.getOpt().equals("o")) { setImportOverwriteRole(true); } } if (isListPrivs() && (getUser() == null)) { throw new ParseException("Can't use -l without -u "); } if ((getQuery() != null) && (getUser() == null)) { throw new ParseException("Must use -u with -e "); } } catch (ParseException e1) { usage(sentryOptions); } if (!enableDebug) { // turn off log LogManager.getRootLogger().setLevel(Level.OFF); } }
From source file:org.apache.sentry.cli.tools.PermissionsMigrationToolCommon.java
/** * parse arguments/*w w w .j av a2s . c om*/ * <pre> * -s,--source Sentry source version * -c,--sentry_conf <filepath> sentry config file path * -p --policy_file <filepath> sentry (source) policy file path * -o --output <filepath> sentry (target) policy file path * -d --dry_run provides the output the migration for inspection without * making any configuration changes. * -h,--help print usage * </pre> * @param args */ protected boolean parseArgs(String[] args) { Options options = new Options(); Option sourceVersionOpt = new Option("s", "source", true, "Source Sentry version"); sourceVersionOpt.setRequired(true); options.addOption(sourceVersionOpt); Option sentryConfPathOpt = new Option("c", "sentry_conf", true, "sentry-site.xml file path (only required in case of Sentry service)"); sentryConfPathOpt.setRequired(false); options.addOption(sentryConfPathOpt); Option sentryPolicyFileOpt = new Option("p", "policy_file", true, "sentry (source) policy file path (only in case of file based Sentry configuration)"); sentryPolicyFileOpt.setRequired(false); options.addOption(sentryPolicyFileOpt); Option sentryOutputFileOpt = new Option("o", "output", true, "sentry (target) policy file path (only in case of file based Sentry configuration)"); sentryOutputFileOpt.setRequired(false); options.addOption(sentryOutputFileOpt); Option dryRunOpt = new Option("d", "dry_run", false, "provides the output the migration for inspection without making actual configuration changes"); dryRunOpt.setRequired(false); options.addOption(dryRunOpt); // help option Option helpOpt = new Option("h", "help", false, "Shell usage"); helpOpt.setRequired(false); options.addOption(helpOpt); // this Option is parsed first for help option Options helpOptions = new Options(); helpOptions.addOption(helpOpt); try { Parser parser = new GnuParser(); // parse help option first CommandLine cmd = parser.parse(helpOptions, args, true); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("h")) { // get the help option, print the usage and exit usage(options); return false; } } // without help option cmd = parser.parse(options, args); String sourceVersionStr = null; for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("s")) { sourceVersionStr = opt.getValue(); } else if (opt.getOpt().equals("c")) { confPath = Optional.of(opt.getValue()); } else if (opt.getOpt().equals("p")) { policyFile = Optional.of(opt.getValue()); } else if (opt.getOpt().equals("o")) { outputFile = Optional.of(opt.getValue()); } else if (opt.getOpt().equals("d")) { dryRun = true; } } sourceVersion = Version.parse(sourceVersionStr); if (!(confPath.isPresent() || policyFile.isPresent())) { System.out.println("Please select either file-based Sentry configuration (-p and -o flags)" + " or Sentry service (-c flag) for migration."); usage(options); return false; } if (confPath.isPresent() && (policyFile.isPresent() || outputFile.isPresent())) { System.out.println("In order to migrate service based Sentry configuration," + " do not specify either -p or -o parameters"); usage(options); return false; } if (!confPath.isPresent() && (policyFile.isPresent() ^ outputFile.isPresent())) { System.out.println("In order to migrate file based Sentry configuration," + " please make sure to specify both -p and -o parameters."); usage(options); return false; } } catch (ParseException | java.text.ParseException pe) { System.out.println(pe.getMessage()); usage(options); return false; } return true; }
From source file:org.apache.sentry.cli.tools.SentryConfigToolCommon.java
/** * parse arguments/* ww w . j a v a 2 s . c o m*/ * <pre> * -conf,--sentry_conf <filepath> sentry config file path * -p,--policy_ini <arg> policy file path * -v,--validate validate policy file * -c,--checkcompat check compatibility with service * -i,--import import policy file * -h,--help print usage * </pre> * @param args */ protected boolean parseArgs(String[] args) { Options options = new Options(); Option globalPolicyPath = new Option("p", "policy_ini", true, "Policy file path"); globalPolicyPath.setRequired(true); options.addOption(globalPolicyPath); Option validateOpt = new Option("v", "validate", false, "Validate policy file"); validateOpt.setRequired(false); options.addOption(validateOpt); Option checkCompatOpt = new Option("c", "checkcompat", false, "Check compatibility with Sentry Service"); checkCompatOpt.setRequired(false); options.addOption(checkCompatOpt); Option importOpt = new Option("i", "import", false, "Import policy file"); importOpt.setRequired(false); options.addOption(importOpt); // file path of sentry-site Option sentrySitePathOpt = new Option("conf", "sentry_conf", true, "sentry-site file path"); sentrySitePathOpt.setRequired(true); options.addOption(sentrySitePathOpt); // help option Option helpOpt = new Option("h", "help", false, "Shell usage"); helpOpt.setRequired(false); options.addOption(helpOpt); // this Options is parsed first for help option Options helpOptions = new Options(); helpOptions.addOption(helpOpt); try { Parser parser = new GnuParser(); // parse help option first CommandLine cmd = parser.parse(helpOptions, args, true); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("h")) { // get the help option, print the usage and exit usage(options); return false; } } // without help option cmd = parser.parse(options, args); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("p")) { policyFile = opt.getValue(); } else if (opt.getOpt().equals("v")) { validate = true; } else if (opt.getOpt().equals("i")) { importPolicy = true; } else if (opt.getOpt().equals("c")) { checkCompat = true; } else if (opt.getOpt().equals("conf")) { confPath = opt.getValue(); } } if (!validate && !importPolicy) { throw new IllegalArgumentException( "No action specified; at least one of action or import must be specified"); } } catch (ParseException pe) { System.out.println(pe.getMessage()); usage(options); return false; } return true; }
From source file:org.apache.sentry.cli.tools.SentryConfigToolIndexer.java
/** * Parses and processes the arguments from the given command line object. * @param cmd/*from w w w . ja va2s . c om*/ */ public void parseOptions(CommandLine cmd) { boolean isToolActive = false; for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("mgr")) { isToolActive = true; } } if (!isToolActive) { return; } for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("f")) { policyFile = opt.getValue(); } else if (opt.getOpt().equals("v")) { validate = true; } else if (opt.getOpt().equals("i")) { importPolicy = true; } else if (opt.getOpt().equals("c")) { checkCompat = true; } else if (opt.getOpt().equals("conf")) { confPath = opt.getValue(); } else if (opt.getOpt().equals("s")) { serviceName = opt.getValue(); } } if (policyFile == null) { throw new IllegalArgumentException("Missing required option: f"); } if (!validate && !importPolicy) { throw new IllegalArgumentException( "No action specified; at least one of action or import must be specified"); } }
From source file:org.apache.sentry.cli.tools.SentryShellCommon.java
/** * parse arguments/*w w w. j ava2s . c o m*/ * * <pre> * -conf,--sentry_conf <filepath> sentry config file path * -cr,--create_role -r <rolename> create role * -dr,--drop_role -r <rolename> drop role * -arg,--add_role_group -r <rolename> -g <groupname> add role to group * -drg,--delete_role_group -r <rolename> -g <groupname> delete role from group * -gpr,--grant_privilege_role -r <rolename> -p <privilege> grant privilege to role * -rpr,--revoke_privilege_role -r <rolename> -p <privilege> revoke privilege from role * -lr,--list_role -g <groupname> list roles for group * -lp,--list_privilege -r <rolename> list privilege for role * -lg,--list_group list all groups associated with all roles * -t,--type <typename> the shell for hive model or generic model * </pre> * * @param args */ protected boolean parseArgs(String[] args) { Options simpleShellOptions = new Options(); setupOptions(simpleShellOptions); // help option Option helpOpt = new Option("h", "help", false, OPTION_DESC_HELP); helpOpt.setRequired(false); simpleShellOptions.addOption(helpOpt); // this Options is parsed first for help option Options helpOptions = new Options(); helpOptions.addOption(helpOpt); try { Parser parser = new GnuParser(); // parse help option first CommandLine cmd = parser.parse(helpOptions, args, true); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("h")) { // get the help option, print the usage and exit usage(simpleShellOptions); return false; } } // without help option cmd = parser.parse(simpleShellOptions, args); parseOptions(cmd); } catch (ParseException pe) { System.out.println(pe.getMessage()); usage(simpleShellOptions); return false; } return true; }
From source file:org.apache.sentry.cli.tools.SentryShellCommon.java
protected void parseOptions(CommandLine cmd) throws ParseException { for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("p")) { privilegeStr = opt.getValue(); } else if (opt.getOpt().equals("g")) { groupName = opt.getValue();//from ww w .j a v a 2 s .c om } else if (opt.getOpt().equals("r")) { roleName = opt.getValue(); } else if (opt.getOpt().equals("s")) { serviceName = opt.getValue(); } else if (opt.getOpt().equals("cr")) { isCreateRole = true; roleNameRequired = true; } else if (opt.getOpt().equals("dr")) { isDropRole = true; roleNameRequired = true; } else if (opt.getOpt().equals("arg")) { isAddRoleGroup = true; roleNameRequired = true; groupNameRequired = true; } else if (opt.getOpt().equals("drg")) { isDeleteRoleGroup = true; roleNameRequired = true; groupNameRequired = true; } else if (opt.getOpt().equals("gpr")) { isGrantPrivilegeRole = true; roleNameRequired = true; privilegeStrRequired = true; } else if (opt.getOpt().equals("rpr")) { isRevokePrivilegeRole = true; roleNameRequired = true; privilegeStrRequired = true; } else if (opt.getOpt().equals("lr")) { isListRole = true; } else if (opt.getOpt().equals("lp")) { isListPrivilege = true; roleNameRequired = true; } else if (opt.getOpt().equals("lg")) { isListGroup = true; } else if (opt.getOpt().equals("conf")) { confPath = opt.getValue(); } else if (opt.getOpt().equals("t")) { type = TYPE.valueOf(opt.getValue()); } } checkRequiredParameter(roleNameRequired, roleName, OPTION_DESC_ROLE_NAME); checkRequiredParameter(groupNameRequired, groupName, OPTION_DESC_GROUP_NAME); checkRequiredParameter(privilegeStrRequired, privilegeStr, OPTION_DESC_PRIVILEGE); }
From source file:org.apache.sentry.cli.tools.SentryShellIndexer.java
@Override protected void parseOptions(CommandLine cmd) throws ParseException { super.parseOptions(cmd); configTool.parseOptions(cmd);/*from ww w .ja v a 2 s. c om*/ for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("mgr")) { isMigration = true; } } }
From source file:org.apache.sentry.provider.db.tools.SentryShellCommon.java
/** * parse arguments/* w w w .jav a2s. co m*/ * * <pre> * -conf,--sentry_conf <filepath> sentry config file path * -cr,--create_role -r <rolename> create role * -dr,--drop_role -r <rolename> drop role * -arg,--add_role_group -r <rolename> -g <groupname> add role to group * -drg,--delete_role_group -r <rolename> -g <groupname> delete role from group * -gpr,--grant_privilege_role -r <rolename> -p <privilege> grant privilege to role * -rpr,--revoke_privilege_role -r <rolename> -p <privilege> revoke privilege from role * -lr,--list_role -g <groupname> list roles for group * -lp,--list_privilege -r <rolename> list privilege for role * -t,--type <typeame> the shell for hive model or generic model * </pre> * * @param args */ protected boolean parseArgs(String[] args) { Options simpleShellOptions = new Options(); Option crOpt = new Option("cr", "create_role", false, "Create role"); crOpt.setRequired(false); Option drOpt = new Option("dr", "drop_role", false, "Drop role"); drOpt.setRequired(false); Option argOpt = new Option("arg", "add_role_group", false, "Add role to group"); argOpt.setRequired(false); Option drgOpt = new Option("drg", "delete_role_group", false, "Delete role from group"); drgOpt.setRequired(false); Option gprOpt = new Option("gpr", "grant_privilege_role", false, "Grant privilege to role"); gprOpt.setRequired(false); Option rprOpt = new Option("rpr", "revoke_privilege_role", false, "Revoke privilege from role"); rprOpt.setRequired(false); Option lrOpt = new Option("lr", "list_role", false, "List role"); lrOpt.setRequired(false); Option lpOpt = new Option("lp", "list_privilege", false, "List privilege"); lpOpt.setRequired(false); // required args group OptionGroup simpleShellOptGroup = new OptionGroup(); simpleShellOptGroup.addOption(crOpt); simpleShellOptGroup.addOption(drOpt); simpleShellOptGroup.addOption(argOpt); simpleShellOptGroup.addOption(drgOpt); simpleShellOptGroup.addOption(gprOpt); simpleShellOptGroup.addOption(rprOpt); simpleShellOptGroup.addOption(lrOpt); simpleShellOptGroup.addOption(lpOpt); simpleShellOptGroup.setRequired(true); simpleShellOptions.addOptionGroup(simpleShellOptGroup); // optional args Option pOpt = new Option("p", "privilege", true, OPTION_DESC_PRIVILEGE); pOpt.setRequired(false); simpleShellOptions.addOption(pOpt); Option gOpt = new Option("g", "groupname", true, OPTION_DESC_GROUP_NAME); gOpt.setRequired(false); simpleShellOptions.addOption(gOpt); Option rOpt = new Option("r", "rolename", true, OPTION_DESC_ROLE_NAME); rOpt.setRequired(false); simpleShellOptions.addOption(rOpt); // this argument should be parsed in the bin/sentryShell Option tOpt = new Option("t", "type", true, "[hive|solr|sqoop|.....]"); tOpt.setRequired(false); simpleShellOptions.addOption(tOpt); // file path of sentry-site Option sentrySitePathOpt = new Option("conf", "sentry_conf", true, OPTION_DESC_CONF); sentrySitePathOpt.setRequired(true); simpleShellOptions.addOption(sentrySitePathOpt); // help option Option helpOpt = new Option("h", "help", false, OPTION_DESC_HELP); helpOpt.setRequired(false); simpleShellOptions.addOption(helpOpt); // this Options is parsed first for help option Options helpOptions = new Options(); helpOptions.addOption(helpOpt); try { Parser parser = new GnuParser(); // parse help option first CommandLine cmd = parser.parse(helpOptions, args, true); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("h")) { // get the help option, print the usage and exit usage(simpleShellOptions); return false; } } // without help option cmd = parser.parse(simpleShellOptions, args); for (Option opt : cmd.getOptions()) { if (opt.getOpt().equals("p")) { privilegeStr = opt.getValue(); } else if (opt.getOpt().equals("g")) { groupName = opt.getValue(); } else if (opt.getOpt().equals("r")) { roleName = opt.getValue(); } else if (opt.getOpt().equals("cr")) { isCreateRole = true; roleNameRequired = true; } else if (opt.getOpt().equals("dr")) { isDropRole = true; roleNameRequired = true; } else if (opt.getOpt().equals("arg")) { isAddRoleGroup = true; roleNameRequired = true; groupNameRequired = true; } else if (opt.getOpt().equals("drg")) { isDeleteRoleGroup = true; roleNameRequired = true; groupNameRequired = true; } else if (opt.getOpt().equals("gpr")) { isGrantPrivilegeRole = true; roleNameRequired = true; privilegeStrRequired = true; } else if (opt.getOpt().equals("rpr")) { isRevokePrivilegeRole = true; roleNameRequired = true; privilegeStrRequired = true; } else if (opt.getOpt().equals("lr")) { isListRole = true; } else if (opt.getOpt().equals("lp")) { isListPrivilege = true; roleNameRequired = true; } else if (opt.getOpt().equals("conf")) { confPath = opt.getValue(); } } checkRequiredParameter(roleNameRequired, roleName, OPTION_DESC_ROLE_NAME); checkRequiredParameter(groupNameRequired, groupName, OPTION_DESC_GROUP_NAME); checkRequiredParameter(privilegeStrRequired, privilegeStr, OPTION_DESC_PRIVILEGE); } catch (ParseException pe) { System.out.println(pe.getMessage()); usage(simpleShellOptions); return false; } return true; }
From source file:org.apache.shiro.tools.hasher.Hasher.java
private static String createMutexMessage(Option... options) { StringBuilder sb = new StringBuilder(); sb.append("The "); for (int i = 0; i < options.length; i++) { if (i > 0) { sb.append(", "); }/*from ww w . j av a 2 s . com*/ Option o = options[0]; sb.append("-").append(o.getOpt()).append("/--").append(o.getLongOpt()); } sb.append(" and generated salt options are mutually exclusive. Only one of them may be used at a time"); return sb.toString(); }
From source file:org.apache.shiro.tools.hasher.Hasher.java
private static int getRequiredPositiveInt(CommandLine line, Option option) { String iterVal = line.getOptionValue(option.getOpt()); try {/*from w w w . ja va 2s . c om*/ return Integer.parseInt(iterVal); } catch (NumberFormatException e) { String msg = "'" + option.getLongOpt() + "' value must be a positive integer."; throw new IllegalArgumentException(msg, e); } }