Skip to content

Commit 21791ac

Browse files
fix cli deploy and release workflow
1 parent c8f0e0f commit 21791ac

File tree

2 files changed

+53
-39
lines changed

2 files changed

+53
-39
lines changed

client/tc/azext_tc/_deploy_utils.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ def zip_deploy_app(cli_ctx, resource_group_name, name, zip_url, slot=None, app_i
166166

167167
def deploy_arm_template_at_resource_group(cmd, resource_group_name=None, template_file=None,
168168
template_uri=None, parameters=None, no_wait=False):
169+
169170
from azure.cli.command_modules.resource.custom import _prepare_deployment_properties_unmodified
170171

171172
properties = _prepare_deployment_properties_unmodified(cmd, 'resourceGroup', template_file=template_file,
@@ -178,16 +179,11 @@ def deploy_arm_template_at_resource_group(cmd, resource_group_name=None, templat
178179
try:
179180
deployment_name = random_string(length=14, force_lower=True) + str(try_number)
180181

181-
if cmd.supported_api_version(min_api='2019-10-01', resource_type=ResourceType.MGMT_RESOURCE_RESOURCES):
182-
Deployment = cmd.get_models(
183-
'Deployment', resource_type=ResourceType.MGMT_RESOURCE_RESOURCES)
182+
Deployment = cmd.get_models('Deployment', resource_type=ResourceType.MGMT_RESOURCE_RESOURCES)
183+
deployment = Deployment(properties=properties)
184184

185-
deployment = Deployment(properties=properties)
186-
deploy_poll = sdk_no_wait(no_wait, client.create_or_update, resource_group_name,
187-
deployment_name, deployment)
188-
else:
189-
deploy_poll = sdk_no_wait(no_wait, client.create_or_update, resource_group_name,
190-
deployment_name, properties)
185+
deploy_poll = sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name,
186+
deployment_name, deployment)
191187

192188
result = LongRunningOperation(cmd.cli_ctx, start_msg='Deploying ARM template',
193189
finish_msg='Finished deploying ARM template')(deploy_poll)

client/tc/azext_tc/custom.py

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

7391
def teamcloud_deploy(cmd, client, name, location=None, resource_group_name='TeamCloud',

0 commit comments

Comments
 (0)