-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[dataprotection]
dataprotection
migrated to AAZ. (#6385)
* recovery-point and job migrated * Cleaned up client factory for job, recovery-point * Also cleaned up client factory for backup-vault * AKS Test Success * Version changes to 0.8.1 * Added license header in recovery_point.py * Removed unused import in recovery_point.py * Removed unused import in recovery_point.py * Updated dataprotection short summary * Deleted manual version.py * Removed manual VERSION from setup.py * Minor aaz generation change job, recovery-point * Migrated restorable-time-range * Migrated resource-guard * Migrated backup-policy * Edit to pass flaker * Recorded live tests, added sleep in aks workload test * Fixed 'Bad Request' error (absent HTTP response) * Completed backup-instance migration * Fixed adhoc-backup, scenario test recorded * Updated backup-instance create, validate-for-restore, restore trigger to class override * Removed generated dir and made required updates. * Changed for loop range and len to enumerate. * Tests recorded * Removed timestamp prints from scenario test. * Updated version and changelog * recovery-point and job migrated * Cleaned up client factory for job, recovery-point * Also cleaned up client factory for backup-vault * AKS Test Success * Version changes to 0.8.1 * Added license header in recovery_point.py * Removed unused import in recovery_point.py * Updated dataprotection short summary * Deleted manual version.py * Removed manual VERSION from setup.py * Minor aaz generation change job, recovery-point * Migrated restorable-time-range * Migrated resource-guard * Migrated backup-policy * Edit to pass flaker * Recorded live tests, added sleep in aks workload test * Fixed 'Bad Request' error (absent HTTP response) * Completed backup-instance migration * Fixed adhoc-backup, scenario test recorded * Updated backup-instance create, validate-for-restore, restore trigger to class override * Removed generated dir and made required updates. * Changed for loop range and len to enumerate. * Tests recorded * Removed timestamp prints from scenario test. * Updated version and changelog * Updated scenario test recording * Validate for backup help text fixed. * Fix resource-guard update bug * Fixed AAZ error handling for backup-vault update * Updated to verison 0.9.1 * Recorded tests * Static analysis fix * Removed unused import. * Added warning for invalid input for recovery-point list * Fixed cleanup for oss test * Fixed cleanup for oss test * Custom function bug fixes * Fixed backup-vault create BadRequest * Minor update in naming convention * Updated release history * static analysis fixes * Revert "static analysis fixes" This reverts commit 3a9b4a7. * Import sequence fixed. * Import sequence fixed. * Removed error handling workaround * Removed error handling workaround and command regs * Fixed import bug * Removed dataprotection vendored SDK * Removed error handling workaround * Removed use of CLIError * Static analysis fixes. * Resource guard override update * Swagger generated fixes, code cleanup * Recorded tests * Undoed resource-guard edit * Post final swagger changes, enum removed. * resource-guard update used assign_aaz_list_arg()
- Loading branch information
1 parent
c66191a
commit 17d75d0
Showing
99 changed files
with
16,544 additions
and
39,994 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
241 changes: 241 additions & 0 deletions
241
...rotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_adhoc_backup.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,241 @@ | ||
# -------------------------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See License.txt in the project root for license information. | ||
# | ||
# Code generated by aaz-dev-tools | ||
# -------------------------------------------------------------------------------------------- | ||
|
||
# pylint: skip-file | ||
# flake8: noqa | ||
|
||
from azure.cli.core.aaz import * | ||
|
||
|
||
@register_command( | ||
"dataprotection backup-instance adhoc-backup", | ||
is_experimental=True, | ||
) | ||
class AdhocBackup(AAZCommand): | ||
"""Trigger adhoc backup. | ||
:example: Trigger Adhoc Backup | ||
az dataprotection backup-instance adhoc-backup --name "testInstance1" --rule-name "BackupWeekly" --retention-tag-override "yearly" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" | ||
""" | ||
|
||
_aaz_info = { | ||
"version": "2023-01-01", | ||
"resources": [ | ||
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.dataprotection/backupvaults/{}/backupinstances/{}/backup", "2023-01-01"], | ||
] | ||
} | ||
|
||
AZ_SUPPORT_NO_WAIT = True | ||
|
||
def _handler(self, command_args): | ||
super()._handler(command_args) | ||
return self.build_lro_poller(self._execute_operations, self._output) | ||
|
||
_args_schema = None | ||
|
||
@classmethod | ||
def _build_arguments_schema(cls, *args, **kwargs): | ||
if cls._args_schema is not None: | ||
return cls._args_schema | ||
cls._args_schema = super()._build_arguments_schema(*args, **kwargs) | ||
|
||
# define Arg Group "" | ||
|
||
_args_schema = cls._args_schema | ||
_args_schema.backup_instance_name = AAZStrArg( | ||
options=["-n", "--name", "--backup-instance-name"], | ||
help="The name of the backup instance.", | ||
required=True, | ||
id_part="child_name_1", | ||
) | ||
_args_schema.resource_group = AAZResourceGroupNameArg( | ||
required=True, | ||
) | ||
_args_schema.vault_name = AAZStrArg( | ||
options=["--vault-name"], | ||
help="The name of the backup vault.", | ||
required=True, | ||
id_part="name", | ||
) | ||
|
||
# define Arg Group "Backup Rule Options" | ||
|
||
_args_schema = cls._args_schema | ||
_args_schema.rule_name = AAZStrArg( | ||
options=["--rule-name"], | ||
arg_group="Backup Rule Options", | ||
help="Specify backup policy rule name.", | ||
required=True, | ||
) | ||
|
||
# define Arg Group "Backup Rule Options Trigger Option" | ||
|
||
_args_schema = cls._args_schema | ||
_args_schema.retention_tag_override = AAZStrArg( | ||
options=["--retention-tag-override"], | ||
arg_group="Backup Rule Options Trigger Option", | ||
help="Specify retention override tag.", | ||
) | ||
return cls._args_schema | ||
|
||
def _execute_operations(self): | ||
self.pre_operations() | ||
yield self.BackupInstancesAdhocBackup(ctx=self.ctx)() | ||
self.post_operations() | ||
|
||
@register_callback | ||
def pre_operations(self): | ||
pass | ||
|
||
@register_callback | ||
def post_operations(self): | ||
pass | ||
|
||
def _output(self, *args, **kwargs): | ||
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) | ||
return result | ||
|
||
class BackupInstancesAdhocBackup(AAZHttpOperation): | ||
CLIENT_TYPE = "MgmtClient" | ||
|
||
def __call__(self, *args, **kwargs): | ||
request = self.make_request() | ||
session = self.client.send_request(request=request, stream=False, **kwargs) | ||
if session.http_response.status_code in [202]: | ||
return self.client.build_lro_polling( | ||
self.ctx.args.no_wait, | ||
session, | ||
self.on_200, | ||
self.on_error, | ||
lro_options={"final-state-via": "location"}, | ||
path_format_arguments=self.url_parameters, | ||
) | ||
if session.http_response.status_code in [200]: | ||
return self.client.build_lro_polling( | ||
self.ctx.args.no_wait, | ||
session, | ||
self.on_200, | ||
self.on_error, | ||
lro_options={"final-state-via": "location"}, | ||
path_format_arguments=self.url_parameters, | ||
) | ||
|
||
return self.on_error(session.http_response) | ||
|
||
@property | ||
def url(self): | ||
return self.client.format_url( | ||
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/backup", | ||
**self.url_parameters | ||
) | ||
|
||
@property | ||
def method(self): | ||
return "POST" | ||
|
||
@property | ||
def error_format(self): | ||
return "MgmtErrorFormat" | ||
|
||
@property | ||
def url_parameters(self): | ||
parameters = { | ||
**self.serialize_url_param( | ||
"backupInstanceName", self.ctx.args.backup_instance_name, | ||
required=True, | ||
), | ||
**self.serialize_url_param( | ||
"resourceGroupName", self.ctx.args.resource_group, | ||
required=True, | ||
), | ||
**self.serialize_url_param( | ||
"subscriptionId", self.ctx.subscription_id, | ||
required=True, | ||
), | ||
**self.serialize_url_param( | ||
"vaultName", self.ctx.args.vault_name, | ||
required=True, | ||
), | ||
} | ||
return parameters | ||
|
||
@property | ||
def query_parameters(self): | ||
parameters = { | ||
**self.serialize_query_param( | ||
"api-version", "2023-01-01", | ||
required=True, | ||
), | ||
} | ||
return parameters | ||
|
||
@property | ||
def header_parameters(self): | ||
parameters = { | ||
**self.serialize_header_param( | ||
"Content-Type", "application/json", | ||
), | ||
**self.serialize_header_param( | ||
"Accept", "application/json", | ||
), | ||
} | ||
return parameters | ||
|
||
@property | ||
def content(self): | ||
_content_value, _builder = self.new_content_builder( | ||
self.ctx.args, | ||
typ=AAZObjectType, | ||
typ_kwargs={"flags": {"required": True, "client_flatten": True}} | ||
) | ||
_builder.set_prop("backupRuleOptions", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) | ||
|
||
backup_rule_options = _builder.get(".backupRuleOptions") | ||
if backup_rule_options is not None: | ||
backup_rule_options.set_prop("ruleName", AAZStrType, ".rule_name", typ_kwargs={"flags": {"required": True}}) | ||
backup_rule_options.set_prop("triggerOption", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) | ||
|
||
trigger_option = _builder.get(".backupRuleOptions.triggerOption") | ||
if trigger_option is not None: | ||
trigger_option.set_prop("retentionTagOverride", AAZStrType, ".retention_tag_override") | ||
|
||
return self.serialize_content(_content_value) | ||
|
||
def on_200(self, session): | ||
data = self.deserialize_http_content(session) | ||
self.ctx.set_var( | ||
"instance", | ||
data, | ||
schema_builder=self._build_schema_on_200 | ||
) | ||
|
||
_schema_on_200 = None | ||
|
||
@classmethod | ||
def _build_schema_on_200(cls): | ||
if cls._schema_on_200 is not None: | ||
return cls._schema_on_200 | ||
|
||
cls._schema_on_200 = AAZObjectType() | ||
|
||
_schema_on_200 = cls._schema_on_200 | ||
_schema_on_200.job_id = AAZStrType( | ||
serialized_name="jobId", | ||
) | ||
_schema_on_200.object_type = AAZStrType( | ||
serialized_name="objectType", | ||
flags={"required": True}, | ||
) | ||
|
||
return cls._schema_on_200 | ||
|
||
|
||
class _AdhocBackupHelper: | ||
"""Helper class for AdhocBackup""" | ||
|
||
|
||
__all__ = ["AdhocBackup"] |
Oops, something went wrong.