diff options
author | Zuul <zuul@review.openstack.org> | 2018-12-24 10:50:46 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-12-24 10:50:46 +0000 |
commit | c9ea8f7bfa417f6bd82e1e098b7e9060108ed60a (patch) | |
tree | 43b6cb9106efd0fbdc9491af9bb45e028a6e795f | |
parent | 6552c89e3f21800039c55608106e8e03c0505aeb (diff) | |
parent | cc6960be6f8f598ba7e81283e69f6da0d1d9b5f3 (diff) | |
download | oslo-policy-c9ea8f7bfa417f6bd82e1e098b7e9060108ed60a.tar.gz |
Merge "Use oslo.config instead of argparse."1.44.0
-rw-r--r-- | oslo_policy/shell.py | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/oslo_policy/shell.py b/oslo_policy/shell.py index 3fda8de..b030fdf 100644 --- a/oslo_policy/shell.py +++ b/oslo_policy/shell.py @@ -13,12 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -import argparse import collections import sys from oslo_serialization import jsonutils +from oslo_config import cfg from oslo_policy import policy @@ -83,37 +83,41 @@ def tool(policy_file, access_file, apply_rule, is_admin=False, def main(): - parser = argparse.ArgumentParser(sys.argv[0]) - parser.add_argument( - '--policy', + conf = cfg.ConfigOpts() + + conf.register_cli_opt(cfg.StrOpt( + 'policy', required=True, - type=argparse.FileType('rb', 0), - help='path to a policy file') - parser.add_argument( - '--access', + help='path to a policy file')) + + conf.register_cli_opt(cfg.StrOpt( + 'access', required=True, - type=argparse.FileType('rb', 0), - help='path to a file containing OpenStack Identity API' + - ' access info in JSON format') - parser.add_argument( - '--target', - type=argparse.FileType('rb', 0), - help='path to a file containing custom target info in' + - ' JSON format. This will be used to evaluate the policy with.') - parser.add_argument( - '--rule', - help='rule to test') - - parser.add_argument( - '--is_admin', - help='set is_admin=True on the credentials used for the evaluation') - - args = parser.parse_args() - try: - is_admin = args.is_admin.lower() == "true" - except Exception: - is_admin = False - tool(args.policy, args.access, args.rule, is_admin, args.target) + help='path to a file containing OpenStack Identity API ' + 'access info in JSON format')) + + conf.register_cli_opt(cfg.StrOpt( + 'target', + help='path to a file containing custom target info in ' + 'JSON format. This will be used to evaluate the policy with.')) + + conf.register_cli_opt(cfg.StrOpt( + 'rule', + help='rule to test')) + + conf.register_cli_opt(cfg.StrOpt( + 'is_admin', + help='set is_admin=True on the credentials used for the evaluation', + default="")) + + conf() + + policy = open(conf.policy, "rb", 0) + access = open(conf.access, "rb", 0) + target = open(conf.target, "rb", 0) if conf.target else None + is_admin = conf.is_admin.lower() == "true" + + tool(policy, access, conf.rule, is_admin, target) if __name__ == "__main__": |