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
14 changes: 14 additions & 0 deletions src/azure-cli/azure/cli/command_modules/backup/_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,16 @@ def transform_recovery_point(result):
('Consistency', result['properties']['recoveryPointType'])])


def transform_log_chain(result):
columns = []
columns.append(('Name', result['name']))
columns.append(('Resource Group', result['resourceGroup']))
if result['properties']['timeRanges']:
columns.append(('Start Time UTC', result['properties']['timeRanges'][0]['startTime']))
columns.append(('End Time UTC', result['properties']['timeRanges'][0]['endTime']))
return OrderedDict(columns)


def transform_protectable_item(result):
columns = []
columns.append(('Name', result['name']))
Expand Down Expand Up @@ -102,5 +112,9 @@ def transform_recovery_point_list(recovery_point_list):
return [transform_recovery_point(rp) for rp in recovery_point_list]


def transform_log_chain_list(log_chain_list):
return [transform_log_chain(rp) for rp in log_chain_list]


def transform_protectable_item_list(protectable_item_list):
return [transform_protectable_item(i) for i in protectable_item_list]
5 changes: 3 additions & 2 deletions src/azure-cli/azure/cli/command_modules/backup/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
protection_containers_cf, protection_intent_cf # pylint: disable=unused-variable
from azure.cli.command_modules.backup._format import (
transform_container_list, transform_policy_list, transform_item_list, transform_job_list,
transform_recovery_point_list, transform_container, transform_item, transform_protectable_item_list, transform_job)
transform_recovery_point_list, transform_container, transform_item, transform_protectable_item_list, transform_job,
transform_log_chain_list)


# pylint: disable=line-too-long
Expand Down Expand Up @@ -88,7 +89,7 @@ def load_command_table(self, _):
with self.command_group('backup recoverypoint', backup_custom_base, client_factory=recovery_points_cf) as g:
g.show_command('show', 'show_recovery_point')
g.command('list', 'list_recovery_points', table_transformer=transform_recovery_point_list)
g.show_command('show-log-chain', 'list_recovery_points')
g.show_command('show-log-chain', 'list_recovery_points', table_transformer=transform_log_chain_list)

with self.command_group('backup restore', backup_custom_base, client_factory=restores_cf) as g:
g.command('restore-disks', 'restore_disks')
Expand Down
2 changes: 2 additions & 0 deletions src/azure-cli/azure/cli/command_modules/backup/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,8 @@ def show_recovery_point(cmd, client, resource_group_name, vault_name, container_

def list_recovery_points(cmd, client, resource_group_name, vault_name, item, start_date=None, end_date=None,
use_secondary_region=None):
if cmd.name.split()[2] == 'show-log-chain':
raise InvalidArgumentValueError("show-log-chain is supported by AzureWorkload backup management type only.")
# Get container and item URIs
container_uri = _get_protection_container_uri_from_id(item.id)
item_uri = _get_protected_item_uri_from_id(item.id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def restore_AzureFileShare(cmd, client, resource_group_name, vault_name, rp_name
return helper.track_backup_job(cmd.cli_ctx, result, vault_name, resource_group_name)


def list_recovery_points(client, resource_group_name, vault_name, item, start_date=None, end_date=None,
def list_recovery_points(cmd, client, resource_group_name, vault_name, item, start_date=None, end_date=None,
use_secondary_region=None):
if use_secondary_region:
raise InvalidArgumentValueError(
Expand All @@ -206,6 +206,9 @@ def list_recovery_points(client, resource_group_name, vault_name, item, start_da
Please either remove the flag or query for any other backup-management-type.
""")

if cmd.name.split()[2] == 'show-log-chain':
raise InvalidArgumentValueError("show-log-chain is supported by AzureWorkload backup management type only.")

# Get container and item URIs
container_uri = helper.get_protection_container_uri_from_id(item.id)
item_uri = helper.get_protected_item_uri_from_id(item.id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def list_recovery_points(cmd, client, resource_group_name, vault_name, container
use_secondary_region)

if item.properties.backup_management_type.lower() == "azurestorage":
return custom_afs.list_recovery_points(client, resource_group_name, vault_name, item, start_date,
return custom_afs.list_recovery_points(cmd, client, resource_group_name, vault_name, item, start_date,
end_date, use_secondary_region)
if item.properties.backup_management_type.lower() == "azureworkload":
return custom_wl.list_wl_recovery_points(cmd, client, resource_group_name, vault_name, item,
Expand Down