From b1739bf37efa6c4dda17629877b735088e2aa1c9 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: May 04 2020 11:01:28 +0000 Subject: ODCS client: accept OpenIDC token stored in file. --- diff --git a/client/contrib/odcs b/client/contrib/odcs index c876553..812fca9 100755 --- a/client/contrib/odcs +++ b/client/contrib/odcs @@ -1,6 +1,7 @@ #!/usr/bin/env python from __future__ import print_function +import os import argparse import sys @@ -61,6 +62,8 @@ parser.add_argument( parser.add_argument( '--server', default=None, help="Use custom ODCS server.") parser.add_argument( + '--token', default=None, help="OpenIDC token to use or path to token file") +parser.add_argument( '--no-wait', action='store_true', help='When used, odcs client will not wait for the action to finish.') parser.add_argument( @@ -258,30 +261,37 @@ else: odcs_url = args.server if args.infra == 'fedora': - id_provider = id_provider_config[args.env] - - # Get the auth token using the OpenID client. - oidc = openidc_client.OpenIDCClient( - 'odcs', - id_provider, - {'Token': 'Token', 'Authorization': 'Authorization'}, - 'odcs-authorizer', - 'notsecret', - ) + if args.token: + if os.path.exists(args.token): + with open(args.token, "r") as token_file: + token = token_file.readline().strip() + else: + token = args.token + else: + id_provider = id_provider_config[args.env] + + # Get the auth token using the OpenID client. + oidc = openidc_client.OpenIDCClient( + 'odcs', + id_provider, + {'Token': 'Token', 'Authorization': 'Authorization'}, + 'odcs-authorizer', + 'notsecret', + ) - scopes = [ - 'openid', - 'https://id.fedoraproject.org/scope/groups', - 'https://pagure.io/odcs/new-compose', - 'https://pagure.io/odcs/renew-compose', - 'https://pagure.io/odcs/delete-compose', - ] - try: - token = oidc.get_token(scopes, new_token=True) - token = oidc.report_token_issue() - except requests.exceptions.HTTPError as e: - print(e.response.text) - raise + scopes = [ + 'openid', + 'https://id.fedoraproject.org/scope/groups', + 'https://pagure.io/odcs/new-compose', + 'https://pagure.io/odcs/renew-compose', + 'https://pagure.io/odcs/delete-compose', + ] + try: + token = oidc.get_token(scopes, new_token=True) + token = oidc.report_token_issue() + except requests.exceptions.HTTPError as e: + print(e.response.text) + raise client = odcs.client.odcs.ODCS( odcs_url,