Skip to content

Commit 8d0e88c

Browse files
authored
Fix error where cdpy reports missing credentials when used with CDPCLI 0.9.42 (#29)
cdpcli 0.9.42 introduced the mandatory 'region' argument to the client_builder in release 0.9.42. Our client builder was using implicit argument ordering. Change client builder to use explicit argument names. Change client builder to prefer new method of client creation, and fall back to legacy if 'region' causes a TypeError. Signed-off-by: Daniel Chaffelson <[email protected]>
1 parent 93e3b00 commit 8d0e88c

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/cdpy/common.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def __init__(self, access_key_id, private_key, access_token='', method='static')
112112

113113
class CdpcliWrapper(object):
114114
def __init__(self, debug=False, tls_verify=False, strict_errors=False, tls_warnings=False, client_endpoint=None,
115-
cdp_credentials=None, error_handler=None, warning_handler=None, scrub_inputs=True):
115+
cdp_credentials=None, error_handler=None, warning_handler=None, scrub_inputs=True, cp_region='default'):
116116
# Init Params
117117
self.debug = debug
118118
self.tls_verify = tls_verify
@@ -121,6 +121,7 @@ def __init__(self, debug=False, tls_verify=False, strict_errors=False, tls_warni
121121
self.client_endpoint = client_endpoint
122122
self.cdp_credentials = cdp_credentials
123123
self.scrub_inputs = scrub_inputs
124+
self.cp_region = cp_region
124125

125126
# Setup
126127
self.throw_error = error_handler if error_handler else self._default_throw_error
@@ -260,12 +261,23 @@ def _setup_logger(self, log_level, log_format):
260261
def _build_client(self, service):
261262
if not self.cdp_credentials:
262263
self.cdp_credentials = self._client_creator.context.get_credentials()
263-
return self._client_creator.create_client(
264-
service,
265-
self.client_endpoint,
266-
self.tls_verify,
267-
self.cdp_credentials
268-
)
264+
try:
265+
# region introduced in client version 0.9.42
266+
client = self._client_creator.create_client(
267+
service_name=service,
268+
region=self.cp_region,
269+
explicit_endpoint_url=self.client_endpoint,
270+
tls_verification=self.tls_verify,
271+
credentials=self.cdp_credentials
272+
)
273+
except TypeError:
274+
client = self._client_creator.create_client(
275+
service_name=service,
276+
explicit_endpoint_url=self.client_endpoint,
277+
tls_verification=self.tls_verify,
278+
credentials=self.cdp_credentials
279+
)
280+
return client
269281

270282
@staticmethod
271283
def _default_throw_error(error: 'CdpError'):

0 commit comments

Comments
 (0)