From d3b8b11b48da551f2dbd6234c26acf37f99050dd Mon Sep 17 00:00:00 2001 From: Jan Kaluža Date: Apr 26 2019 06:14:48 +0000 Subject: Merge #1235 `Some mbs-cli tweaks` --- diff --git a/client/mbs-cli b/client/mbs-cli index 63e0eb4..19a5c0e 100755 --- a/client/mbs-cli +++ b/client/mbs-cli @@ -24,17 +24,15 @@ # Jan Kaluza from __future__ import print_function -import sys +import argparse import enum -from pprint import pprint import json -import requests -import argparse +from pprint import pprint import sys -import openidc_client + +import requests import requests.exceptions from six.moves import urllib_parse -import requests_kerberos env_config = { @@ -160,6 +158,7 @@ class MBSCli(object): if self._auth_mech == AuthMech.OpenIDC: headers['Authorization'] = 'Bearer {0}'.format(self._openidc_token) elif self._auth_mech == AuthMech.Kerberos: + import requests_kerberos # MBS server does not support mutual auth, so make it optional. request_data['auth'] = requests_kerberos.HTTPKerberosAuth( mutual_authentication=requests_kerberos.OPTIONAL) @@ -265,9 +264,14 @@ def create_mbs_client(args): mbs_url = args.server auth_mech = MBSCli.get_auth_mech(mbs_url) - openidc_token=None + openidc_token = None if auth_mech == AuthMech.OpenIDC: + try: + import openidc_client + except ImportError: + print('The python-openidc-client package must be installed', file=sys.stderr) + sys.exit(1) id_provider = id_provider_config[args.env] # Get the auth token using the OpenID client. @@ -292,6 +296,12 @@ def create_mbs_client(args): raise return MBSCli(mbs_url, auth_mech=auth_mech, openidc_token=token) + elif auth_mech == AuthMech.Kerberos: + try: + import requests_kerberos # noqa + except ImportError: + print('The python-requests-kerberos package must be installed', file=sys.stderr) + sys.exit(1) return MBSCli(mbs_url, auth_mech=auth_mech, openidc_token=openidc_token)