@@ -29,45 +29,63 @@ def teamcloud_update(cmd, version=None, prerelease=False):
2929 from azure .cli .core import CommandIndex
3030 from azure .cli .core .extension import get_extension
3131 from azure .cli .core .extension .operations import _add_whl_ext , _augment_telemetry_with_ext_info
32+ from azure .cli .core .extension .operations import update_extension
3233 from ._deploy_utils import get_github_release
3334
3435 release = get_github_release (cmd .cli_ctx , 'TeamCloud' , version = version , prerelease = prerelease )
35- asset = next ((a for a in release ['assets' ]
36- if 'py3-none-any.whl' in a ['browser_download_url' ]), None )
3736
38- download_url = asset ['browser_download_url' ] if asset else None
37+ index = next ((a for a in release ['assets' ]
38+ if 'index.json' in a ['browser_download_url' ]), None )
3939
40- if not download_url :
40+ index_url = index ['browser_download_url' ] if index else None
41+
42+ if not index_url :
4143 raise CLIError (
42- 'Could not find extension .whl asset on release {}. '
44+ 'Could not find index.json asset on release {}. '
4345 'Specify a specific prerelease version with --version '
4446 'or use latest prerelease with --pre' .format (release ['tag_name' ]))
4547
46- extension_name = 'tc'
47- ext = get_extension (extension_name )
48- cur_version = ext .get_version ()
49- # Copy current version of extension to tmp directory in case we need to restore it after a failed install.
50- backup_dir = os .path .join (tempfile .mkdtemp (), extension_name )
51- extension_path = ext .path
52- logger .debug ('Backing up the current extension: %s to %s' , extension_path , backup_dir )
53- shutil .copytree (extension_path , backup_dir )
54- # Remove current version of the extension
55- shutil .rmtree (extension_path )
56- # Install newer version
57- try :
58- _add_whl_ext (cli_ctx = cmd .cli_ctx , source = download_url )
59- logger .debug ('Deleting backup of old extension at %s' , backup_dir )
60- shutil .rmtree (backup_dir )
61- # This gets the metadata for the extension *after* the update
62- _augment_telemetry_with_ext_info (extension_name )
63- except Exception as err :
64- logger .error ('An error occurred whilst updating.' )
65- logger .error (err )
66- logger .debug ('Copying %s to %s' , backup_dir , extension_path )
67- shutil .copytree (backup_dir , extension_path )
68- raise CLIError ('Failed to update. Rolled {} back to {}.' .format (
69- extension_name , cur_version )) from err
70- CommandIndex ().invalidate ()
48+ update_extension (cmd , extension_name = 'tc' , index_url = index_url )
49+
50+ # asset = next((a for a in release['assets']
51+ # if 'py3-none-any.whl' in a['browser_download_url']), None)
52+
53+ # download_url = asset['browser_download_url'] if asset else None
54+
55+ # logger.warning(index_url)
56+ # return index_url
57+
58+ # if not download_url:
59+ # raise CLIError(
60+ # 'Could not find extension .whl asset on release {}. '
61+ # 'Specify a specific prerelease version with --version '
62+ # 'or use latest prerelease with --pre'.format(release['tag_name']))
63+
64+ # extension_name = 'tc'
65+ # ext = get_extension(extension_name)
66+ # cur_version = ext.get_version()
67+ # # Copy current version of extension to tmp directory in case we need to restore it after a failed install.
68+ # backup_dir = os.path.join(tempfile.mkdtemp(), extension_name)
69+ # extension_path = ext.path
70+ # logger.debug('Backing up the current extension: %s to %s', extension_path, backup_dir)
71+ # shutil.copytree(extension_path, backup_dir)
72+ # # Remove current version of the extension
73+ # shutil.rmtree(extension_path)
74+ # # Install newer version
75+ # try:
76+ # _add_whl_ext(cli_ctx=cmd.cli_ctx, source=download_url)
77+ # logger.debug('Deleting backup of old extension at %s', backup_dir)
78+ # shutil.rmtree(backup_dir)
79+ # # This gets the metadata for the extension *after* the update
80+ # _augment_telemetry_with_ext_info(extension_name)
81+ # except Exception as err:
82+ # logger.error('An error occurred whilst updating.')
83+ # logger.error(err)
84+ # logger.debug('Copying %s to %s', backup_dir, extension_path)
85+ # shutil.copytree(backup_dir, extension_path)
86+ # raise CLIError('Failed to update. Rolled {} back to {}.'.format(
87+ # extension_name, cur_version)) from err
88+ # CommandIndex().invalidate()
7189
7290
7391def teamcloud_deploy (cmd , client , name , location = None , resource_group_name = 'TeamCloud' ,
0 commit comments