Skip to content

Commit f7667c7

Browse files
committed
update
1 parent 1bc8703 commit f7667c7

File tree

1 file changed

+19
-5
lines changed
  • src/azure-cli/azure/cli/command_modules/acs

1 file changed

+19
-5
lines changed

src/azure-cli/azure/cli/command_modules/acs/custom.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ def wait_then_open(url):
462462
"""
463463
for _ in range(1, 10):
464464
try:
465-
urlopen(url, context=_ssl_context())
465+
_urlopen_read(url)
466466
except URLError:
467467
time.sleep(1)
468468
break
@@ -1888,7 +1888,7 @@ def k8s_install_kubectl(cmd, client_version='latest', install_location=None, sou
18881888
if client_version == 'latest':
18891889
latest_version_url = source_url + '/stable.txt'
18901890
logger.warning('No version specified, will get the latest version of kubectl from "%s"', latest_version_url)
1891-
version = urlopen(source_url + '/stable.txt', context=_ssl_context()).read()
1891+
version = _urlopen_read(source_url + '/stable.txt')
18921892
client_version = version.decode('UTF-8').strip()
18931893
else:
18941894
client_version = "v%s" % client_version
@@ -1954,7 +1954,7 @@ def k8s_install_kubelogin(cmd, client_version='latest', install_location=None, s
19541954
if cloud_name.lower() == 'azurechinacloud':
19551955
latest_release_url = 'https://mirror.azure.cn/kubernetes/kubelogin/latest'
19561956
logger.warning('No version specified, will get the latest version of kubelogin from "%s"', latest_release_url)
1957-
latest_release = urlopen(latest_release_url, context=_ssl_context()).read()
1957+
latest_release = _urlopen_read(latest_release_url)
19581958
client_version = json.loads(latest_release)['tag_name'].strip()
19591959
else:
19601960
client_version = "v%s" % client_version
@@ -2017,10 +2017,24 @@ def _ssl_context():
20172017
return ssl.create_default_context()
20182018

20192019

2020+
def _urlopen_read(url, context=None):
2021+
if context is None:
2022+
context = _ssl_context()
2023+
try:
2024+
return urlopen(url, context=context).read()
2025+
except Exception as ex:
2026+
if "[SSL: CERTIFICATE_VERIFY_FAILED]" in ex and "unable to get local issuer certificate" in ex:
2027+
raise ClientRequestError(
2028+
"SSL certificate verification failed. Please ensure that the python interpreter used by azure-cli uses "
2029+
"the appropriate cert store when making requests. For more details, please refer to "
2030+
"https://github.com/Azure/azure-cli/issues/19305"
2031+
)
2032+
raise ex
2033+
2034+
20202035
def _urlretrieve(url, filename):
2021-
req = urlopen(url, context=_ssl_context())
20222036
with open(filename, "wb") as f:
2023-
f.write(req.read())
2037+
f.write(_urlopen_read(url))
20242038

20252039

20262040
def _unzip(src, dest):

0 commit comments

Comments
 (0)