diff --git a/requestbuilder/auth.py b/requestbuilder/auth.py index 97e8629..2531039 100644 --- a/requestbuilder/auth.py +++ b/requestbuilder/auth.py @@ -53,9 +53,9 @@ class BaseAuth(requests.auth.AuthBase): class HmacKeyAuth(BaseAuth): ARGS = [Arg('-I', '--access-key-id', dest='key_id', metavar='KEY_ID', - default=argparse.SUPPRESS, route_to=AUTH), + route_to=AUTH), Arg('-S', '--secret-key', dest='secret_key', metavar='KEY', - default=argparse.SUPPRESS, route_to=AUTH)] + route_to=AUTH)] def configure(self): # See if an AWS credential file was given in the environment @@ -84,13 +84,15 @@ class HmacKeyAuth(BaseAuth): self.args.setdefault('secret_key', val.strip()) def configure_from_configfile(self): - config_key_id = self.config.get_user_option('key-id') - if config_key_id: - self.args.setdefault('key_id', config_key_id) - config_secret_key = self.config.get_user_option('secret-key', - redact=True) - if config_secret_key: - self.args.setdefault('secret_key', config_secret_key) + if not self.args.get('key_id'): + config_key_id = self.config.get_user_option('key-id') + if config_key_id: + self.args['key_id'] = config_key_id + if not self.args.get('secret_key'): + config_secret_key = self.config.get_user_option('secret-key', + redact=True) + if config_secret_key: + self.args['secret_key'] = config_secret_key class QuerySigV2Auth(HmacKeyAuth): diff --git a/requestbuilder/service.py b/requestbuilder/service.py index 6885531..1a1592f 100644 --- a/requestbuilder/service.py +++ b/requestbuilder/service.py @@ -71,7 +71,8 @@ class BaseService(object): # Environment comes next self.process_url(os.getenv(self.ENV_URL)) # Finally, try the config file - self.process_url(self.config.get_region_option(self.NAME + '-url')) + if self.endpoint is None: + self.process_url(self.config.get_region_option(self.NAME + '-url')) # Ensure everything is okay and finish up self.validate_config()