diff --git a/nfv/nfv-client/nfv_client/openstack/openstack.py b/nfv/nfv-client/nfv_client/openstack/openstack.py index bb22ead4..7e8606cc 100755 --- a/nfv/nfv-client/nfv_client/openstack/openstack.py +++ b/nfv/nfv-client/nfv_client/openstack/openstack.py @@ -1,9 +1,10 @@ # -# Copyright (c) 2016-2022 Wind River Systems, Inc. +# Copyright (c) 2016-2023 Wind River Systems, Inc. # # SPDX-License-Identifier: Apache-2.0 # import json +import os from six.moves import urllib from nfv_client.openstack.objects import Token @@ -25,6 +26,7 @@ class OpenStackServiceTypes(object): SERVICE = OpenStackServices() SERVICE_TYPE = OpenStackServiceTypes() +CAFILE = os.environ.get('REQUESTS_CA_BUNDLE') def get_token(auth_uri, project_name, project_domain_name, username, password, @@ -34,7 +36,7 @@ def get_token(auth_uri, project_name, project_domain_name, username, password, """ try: # handle auth_uri re-direct (300) - urllib.request.urlopen(auth_uri) + urllib.request.urlopen(auth_uri, cafile=CAFILE) except urllib.error.HTTPError as e: if e.code == 300: auth_uri = e.headers['location'] @@ -70,7 +72,7 @@ def get_token(auth_uri, project_name, project_domain_name, username, password, request_info.data = payload.encode() - request = urllib.request.urlopen(request_info, timeout=30) + request = urllib.request.urlopen(request_info, timeout=30, cafile=CAFILE) # Identity API v3 returns token id in X-Subject-Token # response header. token_id = request.headers.get('X-Subject-Token') diff --git a/nfv/nfv-client/nfv_client/openstack/rest_api.py b/nfv/nfv-client/nfv_client/openstack/rest_api.py index df373adb..1c461bb2 100755 --- a/nfv/nfv-client/nfv_client/openstack/rest_api.py +++ b/nfv/nfv-client/nfv_client/openstack/rest_api.py @@ -1,12 +1,15 @@ # -# Copyright (c) 2016-2022 Wind River Systems, Inc. +# Copyright (c) 2016-2023 Wind River Systems, Inc. # # SPDX-License-Identifier: Apache-2.0 # import json +import os from six.moves import http_client as httplib from six.moves import urllib +CAFILE = os.environ.get('REQUESTS_CA_BUNDLE') + def request(token_id, method, api_cmd, api_cmd_headers=None, api_cmd_payload=None, timeout_in_secs=40): @@ -35,7 +38,8 @@ def request(token_id, method, api_cmd, api_cmd_headers=None, request_info.data = api_cmd_payload.encode() url_request = urllib.request.urlopen(request_info, - timeout=timeout_in_secs) + timeout=timeout_in_secs, + cafile=CAFILE) headers = list() # list of tuples for key, value in url_request.info().items():