Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1685,7 +1685,7 @@

helps['webapp log deployment list'] = """
type: command
short-summary: List deployment logs of the deployments associated with web app
short-summary: List deployments associated with web app
examples:
- name: List the deployment logs
text: az webapp log deployment list --name MyWebApp --resource-group MyResourceGroup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,11 @@ def load_command_table(self, _):
g.custom_command('config', 'config_diagnostics', validator=validate_app_or_slot_exists_in_rg)
g.custom_show_command('show', 'show_diagnostic_settings', validator=validate_app_or_slot_exists_in_rg)

with self.command_group('webapp log deployment') as g:
with self.command_group('webapp log deployment', is_preview=True) as g:
g.custom_show_command('show', 'show_deployment_log')
g.custom_command('list', 'list_deployment_logs')

with self.command_group('functionapp log deployment') as g:
with self.command_group('functionapp log deployment', is_preview=True) as g:
g.custom_show_command('show', 'show_deployment_log')
g.custom_command('list', 'list_deployment_logs')

Expand Down
51 changes: 28 additions & 23 deletions src/azure-cli/azure/cli/command_modules/appservice/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -1974,34 +1974,39 @@ def show_diagnostic_settings(cmd, resource_group_name, name, slot=None):


def show_deployment_log(cmd, resource_group, name, slot=None, deployment_id=None):
scm_url = _get_scm_url(cmd, resource_group, name, slot)
if deployment_id:
deployment_log_url = '{}/api/deployments/{}'.format(scm_url, deployment_id)
else:
deployment_log_url = '{}/api/deployments/'.format(scm_url)
username, password = _get_site_credential(cmd.cli_ctx, resource_group, name, slot)

import urllib3
headers = urllib3.util.make_headers(basic_auth='{}:{}'.format(username, password))

import requests
response = requests.get(deployment_log_url, headers=headers)

if response.status_code != 200:
raise CLIError("Failed to connect to '{}' with status code '{}' and reason '{}'".format(
scm_url, response.status_code, response.reason))
scm_url = _get_scm_url(cmd, resource_group, name, slot)
username, password = _get_site_credential(cmd.cli_ctx, resource_group, name, slot)
headers = urllib3.util.make_headers(basic_auth='{}:{}'.format(username, password))

deployment_log_url = ''
if deployment_id:
return response.json() or {}

sortedLogs = sorted(
response.json(),
key=lambda x: x['start_time'],
reverse=True
)
if sortedLogs:
return sortedLogs[0]
return {}
deployment_log_url = '{}/api/deployments/{}/log'.format(scm_url, deployment_id)
else:
deployments_url = '{}/api/deployments/'.format(scm_url)
response = requests.get(deployments_url, headers=headers)

if response.status_code != 200:
raise CLIError("Failed to connect to '{}' with status code '{}' and reason '{}'".format(
deployments_url, response.status_code, response.reason))

sorted_logs = sorted(
response.json(),
key=lambda x: x['start_time'],
reverse=True
)
if sorted_logs and sorted_logs[0]:
deployment_log_url = sorted_logs[0].get('log_url', '')

if deployment_log_url:
response = requests.get(deployment_log_url, headers=headers)
if response.status_code != 200:
raise CLIError("Failed to connect to '{}' with status code '{}' and reason '{}'".format(
deployment_log_url, response.status_code, response.reason))
return response.json()
return []


def list_deployment_logs(cmd, resource_group, name, slot=None):
Expand Down
Loading