1717 AzureWorkloadBackupRequest , ProtectedItemResource , AzureRecoveryServiceVaultProtectionIntent , TargetRestoreInfo , \
1818 RestoreRequestResource , BackupRequestResource , ProtectionIntentResource , SQLDataDirectoryMapping , \
1919 ProtectionContainerResource , AzureWorkloadSAPHanaRestoreRequest , AzureWorkloadSQLRestoreRequest , \
20- AzureWorkloadSAPHanaPointInTimeRestoreRequest , AzureWorkloadSQLPointInTimeRestoreRequest , \
21- AzureVmWorkloadSAPHanaDatabaseProtectedItem , AzureVmWorkloadSQLDatabaseProtectedItem , MoveRPAcrossTiersRequest , \
20+ AzureWorkloadSAPAseRestoreRequest , AzureWorkloadSAPHanaPointInTimeRestoreRequest , \
21+ AzureWorkloadSQLPointInTimeRestoreRequest , AzureWorkloadSAPAsePointInTimeRestoreRequest , \
22+ AzureVmWorkloadSAPHanaDatabaseProtectedItem , AzureVmWorkloadSQLDatabaseProtectedItem , \
2223 RecoveryPointRehydrationInfo , AzureWorkloadSAPHanaRestoreWithRehydrateRequest , \
23- AzureWorkloadSQLRestoreWithRehydrateRequest , ProtectionState
24+ AzureWorkloadSQLRestoreWithRehydrateRequest , ProtectionState , AzureVmWorkloadSAPAseDatabaseProtectedItem , \
25+ MoveRPAcrossTiersRequest \
2426
2527from azure .mgmt .recoveryservicesbackup .passivestamp .models import CrossRegionRestoreRequest
2628
4951 'SAPHANA' : 'SAPHanaDatabase' ,
5052 'SQLDataBase' : 'SQLDataBase' ,
5153 'SAPHanaDatabase' : 'SAPHanaDatabase' ,
52- 'SAPASE' : 'SAPAseDatabase' }
54+ 'SAPASE' : 'SAPAseDatabase' ,
55+ 'SAPAseDatabase' : 'SAPAseDatabase' }
5356
5457# Mapping of module name
5558module_map = {'sqldatabase' : 'sql_database' ,
6770 'HANAInstance' : 'SAPHanaSystem' ,
6871 'SAPHanaSystem' : 'SAPHanaSystem' ,
6972 'SQLInstance' : 'SQLInstance' ,
70- 'SQLAG' : 'SQLAvailabilityGroupContainer' }
73+ 'SQLAG' : 'SQLAvailabilityGroupContainer' ,
74+ 'SAPASE' : 'SAPAseDatabase' ,
75+ 'SAPAseDatabase' : 'SAPAseDatabase' }
7176
7277
7378def show_wl_policy (client , resource_group_name , vault_name , name ):
@@ -203,8 +208,10 @@ def update_policy_for_item(cmd, client, resource_group_name, vault_name, item, p
203208 item_uri = cust_help .get_protected_item_uri_from_id (item .id )
204209
205210 backup_item_type = item_uri .split (';' )[0 ]
206- if not cust_help .is_sql (backup_item_type ) and not cust_help .is_hana (backup_item_type ):
207- raise InvalidArgumentValueError ("Item must be either of type SQLDataBase or SAPHanaDatabase." )
211+ if (not cust_help .is_sql (backup_item_type ) and not
212+ cust_help .is_hana (backup_item_type ) and not
213+ cust_help .is_sapase (backup_item_type )):
214+ raise InvalidArgumentValueError ("Item must be of type SQLDataBase, SAPHanaDatabase, or SAPAseDatabase" )
208215
209216 item_properties = _get_protected_item_instance (backup_item_type )
210217 item_properties .policy_id = policy .id
@@ -434,10 +441,12 @@ def enable_protection_for_azure_wl(cmd, client, resource_group_name, vault_name,
434441 # Get protectable item.
435442 protectable_item_object = protectable_item
436443 protectable_item_type = protectable_item_object .properties .protectable_item_type
437- if protectable_item_type .lower () not in ["sqldatabase" , "sqlinstance" , "saphanadatabase" , "saphanasystem" ]:
444+ if protectable_item_type .lower () not in ["sqldatabase" , "sqlinstance" , "saphanadatabase" , "saphanasystem" ,
445+ "sapasedatabase" ]:
438446 raise CLIError (
439447 """
440- Protectable Item must be either of type SQLDataBase, HANADatabase, HANAInstance or SQLInstance.
448+ Protectable Item must be either of type SQLDataBase, HANADatabase, HANAInstance, SAPAseDatabase or
449+ SQLInstance.
441450 """ )
442451
443452 item_name = protectable_item_object .name
@@ -794,7 +803,7 @@ def show_recovery_config(cmd, client, resource_group_name, vault_name, restore_m
794803 item_type = item .properties .workload_type
795804 item_name = item .name
796805
797- if not cust_help .is_sql (item_type ) and not cust_help .is_hana (item_type ):
806+ if not cust_help .is_sql (item_type ) and not cust_help .is_hana (item_type ) and not cust_help . is_sapase ( item_type ) :
798807 raise CLIError (
799808 """
800809 Item must be either of type SQLDataBase or SAPHanaDatabase.
@@ -860,7 +869,7 @@ def show_recovery_config(cmd, client, resource_group_name, vault_name, restore_m
860869 'item_uri' : item_name ,
861870 'recovery_point_id' : recovery_point .name ,
862871 'log_point_in_time' : log_point_in_time ,
863- 'item_type' : 'SQL' if 'sql' in item_type .lower () else 'SAPHana' ,
872+ 'item_type' : 'SQL' if 'sql' in item_type .lower () else 'SAPASE' if 'sapase' in item_type . lower () else ' SAPHana' ,
864873 'workload_type' : item_type ,
865874 'source_resource_id' : item .properties .source_resource_id ,
866875 'database_name' : db_name ,
@@ -931,16 +940,22 @@ def _get_log_time_range(cmd, resource_group_name, vault_name, item, use_secondar
931940
932941
933942def _get_restore_request_instance (item_type , log_point_in_time , rehydration_priority ):
934- if rehydration_priority is None :
935- if item_type .lower () == "saphana" :
936- if log_point_in_time is not None :
937- return AzureWorkloadSAPHanaPointInTimeRestoreRequest ()
938- return AzureWorkloadSAPHanaRestoreRequest ()
943+ workload_restore_request_map = {
944+ "saphana" : AzureWorkloadSAPHanaRestoreRequest ,
945+ "sql" : AzureWorkloadSQLRestoreRequest ,
946+ "sapase" : AzureWorkloadSAPAseRestoreRequest
947+ }
948+
949+ workload_pit_restore_request_map = {
950+ "saphana" : AzureWorkloadSAPHanaPointInTimeRestoreRequest ,
951+ "sql" : AzureWorkloadSQLPointInTimeRestoreRequest ,
952+ "sapase" : AzureWorkloadSAPAsePointInTimeRestoreRequest
953+ }
939954
940- if item_type . lower () == "sql" :
941- if log_point_in_time is not None :
942- return AzureWorkloadSQLPointInTimeRestoreRequest ()
943- return AzureWorkloadSQLRestoreRequest ()
955+ if rehydration_priority is None :
956+ if log_point_in_time is not None :
957+ return workload_pit_restore_request_map [ item_type . lower ()] ()
958+ return workload_restore_request_map [ item_type . lower ()] ()
944959
945960 if item_type .lower () == "saphana" :
946961 if log_point_in_time is not None :
@@ -956,6 +971,8 @@ def _get_restore_request_instance(item_type, log_point_in_time, rehydration_prio
956971def _get_protected_item_instance (item_type ):
957972 if item_type .lower () == "saphanadatabase" :
958973 return AzureVmWorkloadSAPHanaDatabaseProtectedItem ()
974+ if item_type .lower () == "sapasedatabase" :
975+ return AzureVmWorkloadSAPAseDatabaseProtectedItem ()
959976 return AzureVmWorkloadSQLDatabaseProtectedItem ()
960977
961978
0 commit comments