Skip to content

Commit 5cec8fb

Browse files
committed
Take cacert from cacert parameter only, not from verify
Signed-off-by: Matthias Büchse <matthias.buechse@alasca.cloud>
1 parent 02c43f2 commit 5cec8fb

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

Tests/iaas/scs_0123_mandatory_services/mandatory_services.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ def s3_conn(creds, conn):
3030
"""Return an s3 client conn"""
3131
cfg = conn.config.config
3232
# Take insecure/verify/cacert parameter from clouds.yaml and pass it to boto3.resource.
33-
# Deliberately do un-Pythonic `is True` and `is False` here because of type mayhem:
34-
# for instance, handle verify=False differently from verify=None (or not set) or verify='some.ca'.
35-
if cfg.get("insecure") is True or cfg.get("verify") is False:
33+
# If verify is True in clouds.yaml, fall back to cacert or None. In the latter case,
34+
# the default boto3 behavior is applied (e.g., REQUESTS_CA_BUNDLE can still be used);
35+
# but for that, verify must be `None` instead of boto3's default `True`.
36+
# Note: cacert must be used to pass the certificate; don't use verify for that; cf.
37+
# https://docs.openstack.org/openstacksdk/latest/user/config/configuration.html#ssl-settings
38+
if cfg.get("insecure") or not cfg.get("verify", True):
3639
verify = False
3740
else:
38-
verify = cfg.get("cacert") or cfg.get("verify")
41+
verify = cfg.get("cacert")
3942
return boto3.resource(
4043
's3', endpoint_url=creds["HOST"], verify=verify,
4144
aws_access_key_id=creds["AK"], aws_secret_access_key=creds["SK"],

0 commit comments

Comments
 (0)