Skip to content

Commit b7ad5c9

Browse files
authored
[Core] Replace GitHub URLs with AME Storage for network isolated requirements (#32677)
1 parent 0ce0202 commit b7ad5c9

102 files changed

Lines changed: 263 additions & 228 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/azure-cli-core/azure/cli/core/cloud.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ class CloudNameEnum: # pylint: disable=too-few-public-methods
373373
active_directory_graph_resource_id='https://graph.windows.net/',
374374
microsoft_graph_resource_id='https://graph.microsoft.com/',
375375
active_directory_data_lake_resource_id='https://datalake.azure.net/',
376-
vm_image_alias_doc='https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json',
376+
vm_image_alias_doc='https://azcliprod.blob.core.windows.net/cli/vm/aliases.json',
377377
media_resource_id='https://rest.media.azure.net',
378378
ossrdbms_resource_id='https://ossrdbms-aad.database.windows.net',
379379
app_insights_resource_id='https://api.applicationinsights.io',
@@ -410,7 +410,7 @@ class CloudNameEnum: # pylint: disable=too-few-public-methods
410410
active_directory_resource_id='https://management.core.chinacloudapi.cn/',
411411
active_directory_graph_resource_id='https://graph.chinacloudapi.cn/',
412412
microsoft_graph_resource_id='https://microsoftgraph.chinacloudapi.cn',
413-
vm_image_alias_doc='https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json',
413+
vm_image_alias_doc='https://azcliprod.blob.core.windows.net/cli/vm/aliases.json',
414414
media_resource_id='https://rest.media.chinacloudapi.cn',
415415
ossrdbms_resource_id='https://ossrdbms-aad.database.chinacloudapi.cn',
416416
app_insights_resource_id='https://api.applicationinsights.azure.cn',
@@ -444,7 +444,7 @@ class CloudNameEnum: # pylint: disable=too-few-public-methods
444444
active_directory_resource_id='https://management.core.usgovcloudapi.net/',
445445
active_directory_graph_resource_id='https://graph.microsoftazure.us/',
446446
microsoft_graph_resource_id='https://graph.microsoft.us/',
447-
vm_image_alias_doc='https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json',
447+
vm_image_alias_doc='https://azcliprod.blob.core.windows.net/cli/vm/aliases.json',
448448
media_resource_id='https://rest.media.usgovcloudapi.net',
449449
ossrdbms_resource_id='https://ossrdbms-aad.database.usgovcloudapi.net',
450450
app_insights_resource_id='https://api.applicationinsights.us',
@@ -479,7 +479,7 @@ class CloudNameEnum: # pylint: disable=too-few-public-methods
479479
active_directory_resource_id='https://management.core.cloudapi.de/',
480480
active_directory_graph_resource_id='https://graph.cloudapi.de/',
481481
microsoft_graph_resource_id='https://graph.microsoft.de',
482-
vm_image_alias_doc='https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json',
482+
vm_image_alias_doc='https://azcliprod.blob.core.windows.net/cli/vm/aliases.json',
483483
media_resource_id='https://rest.media.cloudapi.de',
484484
ossrdbms_resource_id='https://ossrdbms-aad.database.cloudapi.de',
485485
portal='https://portal.microsoftazure.de'),

src/azure-cli-core/azure/cli/core/util.py

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@
5252
"sys", "test2", "test3", "user4", "user5"
5353
]
5454

55+
# AME Storage Account URL for version checking and VM image aliases (Network Isolation)
56+
# Files are stored as:
57+
# - https://azcliprod.blob.core.windows.net/cli/{package}/setup.py (CLI versions)
58+
# - https://azcliprod.blob.core.windows.net/cli/vm/aliases.json (VM image aliases)
59+
AME_STORAGE_BASE_URL = "https://azcliprod.blob.core.windows.net/cli"
60+
5561

5662
def handle_exception(ex): # pylint: disable=too-many-locals, too-many-statements, too-many-branches
5763
# For error code, follow guidelines at https://docs.python.org/2/library/sys.html#sys.exit,
@@ -291,14 +297,23 @@ def __init__(self, key, version):
291297
]
292298

293299

294-
def get_latest_from_github(package_path='azure-cli'):
300+
def get_latest_version_from_ame_storage(package_path='azure-cli'):
301+
"""Get the latest version from AME Storage Account.
302+
303+
This replaces get_latest_from_github() due to network isolation requirements.
304+
The setup.py files are uploaded to AME Storage Account during release pipeline.
305+
306+
Args:
307+
package_path: Package name, e.g., 'azure-cli', 'azure-cli-core', 'azure-cli-telemetry', 'azure-cli-testsdk'
308+
"""
295309
try:
296310
import requests
297-
git_url = "https://raw.githubusercontent.com/Azure/azure-cli/main/src/{}/setup.py".format(package_path)
298-
response = requests.get(git_url, timeout=10)
311+
storage_url = "{}/{}/setup.py".format(AME_STORAGE_BASE_URL, package_path)
312+
313+
response = requests.get(storage_url, timeout=10)
299314
if response.status_code != 200:
300315
logger.info("Failed to fetch the latest version from '%s' with status code '%s' and reason '%s'",
301-
git_url, response.status_code, response.reason)
316+
storage_url, response.status_code, response.reason)
302317
return None
303318
for line in response.iter_lines():
304319
txt = line.decode('utf-8', errors='ignore')
@@ -307,16 +322,28 @@ def get_latest_from_github(package_path='azure-cli'):
307322
if match:
308323
return match.group(1)
309324
except Exception as ex: # pylint: disable=broad-except
310-
logger.info("Failed to get the latest version from '%s'. %s", git_url, str(ex))
325+
logger.info("Failed to get the latest version from '%s'. %s", storage_url, str(ex))
311326
return None
312327

313328

314-
def _update_latest_from_github(versions):
315-
if not check_connectivity(url='https://raw.githubusercontent.com', max_retries=0):
329+
def get_latest_from_github(package_path='azure-cli'):
330+
"""Deprecated: Use get_latest_version_from_ame_storage() instead.
331+
332+
This function is kept for backward compatibility but now reads from AME Storage Account.
333+
"""
334+
return get_latest_version_from_ame_storage(package_path)
335+
336+
337+
def _update_latest_from_ame_storage(versions):
338+
"""Update versions from AME Storage Account.
339+
340+
This replaces _update_latest_from_github() due to network isolation requirements.
341+
"""
342+
if not check_connectivity(url=AME_STORAGE_BASE_URL, max_retries=0):
316343
return versions, False
317344
success = True
318345
for pkg in ['azure-cli-core', 'azure-cli-telemetry']:
319-
version = get_latest_from_github(pkg)
346+
version = get_latest_version_from_ame_storage(pkg)
320347
if not version:
321348
success = False
322349
else:
@@ -328,6 +355,14 @@ def _update_latest_from_github(versions):
328355
return versions, success
329356

330357

358+
def _update_latest_from_github(versions):
359+
"""Deprecated: Use _update_latest_from_ame_storage() instead.
360+
361+
This function is kept for backward compatibility but now reads from AME Storage Account.
362+
"""
363+
return _update_latest_from_ame_storage(versions)
364+
365+
331366
def get_cached_latest_versions(versions=None):
332367
""" Get the latest versions from a cached file"""
333368
import datetime
@@ -343,7 +378,7 @@ def get_cached_latest_versions(versions=None):
343378
if cache_versions and cache_versions['azure-cli']['local'] == versions['azure-cli']['local']:
344379
return cache_versions.copy(), True
345380

346-
versions, success = _update_latest_from_github(versions)
381+
versions, success = _update_latest_from_ame_storage(versions)
347382
VERSIONS['versions'] = versions
348383
VERSIONS[_VERSION_UPDATE_TIME] = str(datetime.datetime.now())
349384
return versions.copy(), success
@@ -369,7 +404,7 @@ def get_az_version_string(use_cache=False): # pylint: disable=too-many-statemen
369404
versions = _get_local_versions()
370405

371406
# get the versions from pypi
372-
versions, success = get_cached_latest_versions(versions) if use_cache else _update_latest_from_github(versions)
407+
versions, success = get_cached_latest_versions(versions) if use_cache else _update_latest_from_ame_storage(versions)
373408
updates_available_components = []
374409

375410
def _print(val=''):

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_CrossZonalRestore.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ interactions:
462462
User-Agent:
463463
- python-requests/2.32.4
464464
method: GET
465-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
465+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
466466
response:
467467
body:
468468
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -741,7 +741,7 @@ interactions:
741741
User-Agent:
742742
- python-requests/2.32.4
743743
method: GET
744-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
744+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
745745
response:
746746
body:
747747
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_archive.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_container.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -2006,7 +2006,7 @@ interactions:
20062006
User-Agent:
20072007
- python-requests/2.32.4
20082008
method: GET
2009-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
2009+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
20102010
response:
20112011
body:
20122012
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -2289,7 +2289,7 @@ interactions:
22892289
User-Agent:
22902290
- python-requests/2.32.4
22912291
method: GET
2292-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
2292+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
22932293
response:
22942294
body:
22952295
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_disk_exclusion.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_item.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -1902,7 +1902,7 @@ interactions:
19021902
User-Agent:
19031903
- python-requests/2.32.4
19041904
method: GET
1905-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
1905+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
19061906
response:
19071907
body:
19081908
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -2185,7 +2185,7 @@ interactions:
21852185
User-Agent:
21862186
- python-requests/2.32.4
21872187
method: GET
2188-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
2188+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
21892189
response:
21902190
body:
21912191
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_job.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_policy.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ interactions:
579579
User-Agent:
580580
- python-requests/2.32.4
581581
method: GET
582-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
582+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
583583
response:
584584
body:
585585
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -858,7 +858,7 @@ interactions:
858858
User-Agent:
859859
- python-requests/2.32.4
860860
method: GET
861-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
861+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
862862
response:
863863
body:
864864
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -2114,7 +2114,7 @@ interactions:
21142114
User-Agent:
21152115
- python-requests/2.32.4
21162116
method: GET
2117-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
2117+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
21182118
response:
21192119
body:
21202120
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -2397,7 +2397,7 @@ interactions:
23972397
User-Agent:
23982398
- python-requests/2.32.4
23992399
method: GET
2400-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
2400+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
24012401
response:
24022402
body:
24032403
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_protection.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ interactions:
317317
User-Agent:
318318
- python-requests/2.32.4
319319
method: GET
320-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
320+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
321321
response:
322322
body:
323323
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n
@@ -596,7 +596,7 @@ interactions:
596596
User-Agent:
597597
- python-requests/2.32.4
598598
method: GET
599-
uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json
599+
uri: https://azcliprod.blob.core.windows.net/cli/vm/aliases.json
600600
response:
601601
body:
602602
string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\",\n

0 commit comments

Comments
 (0)