public RestAzureNS.AzureOperationResponse DisableProtectionWithDeleteData() { string vaultName = (string)ProviderData[VaultParams.VaultName]; string vaultResourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; bool deleteBackupData = ProviderData.ContainsKey(ItemParams.DeleteBackupData) ? (bool)ProviderData[ItemParams.DeleteBackupData] : false; ItemBase itemBase = (ItemBase)ProviderData[ItemParams.Item]; AzureWorkloadSQLDatabaseProtectedItem item = (AzureWorkloadSQLDatabaseProtectedItem)ProviderData[ItemParams.Item]; string containerUri = ""; string protectedItemUri = ""; AzureVmWorkloadSQLDatabaseProtectedItem properties = new AzureVmWorkloadSQLDatabaseProtectedItem(); ValidateAzureWorkloadSQLDatabaseDisableProtectionRequest(itemBase); Dictionary <UriEnums, string> keyValueDict = HelperUtils.ParseUri(item.Id); containerUri = HelperUtils.GetContainerUri(keyValueDict, item.Id); protectedItemUri = HelperUtils.GetProtectedItemUri(keyValueDict, item.Id); return(ServiceClientAdapter.DeleteProtectedItem( containerUri, protectedItemUri, vaultName: vaultName, resourceGroupName: vaultResourceGroupName)); }
public RestAzureNS.AzureOperationResponse <ProtectedItemResource> UndeleteProtection() { string vaultName = (string)ProviderData[VaultParams.VaultName]; string resourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; AzureWorkloadSQLDatabaseProtectedItem item = (AzureWorkloadSQLDatabaseProtectedItem)ProviderData[ItemParams.Item]; Dictionary <UriEnums, string> keyValueDict = HelperUtils.ParseUri(item.Id); string containerUri = HelperUtils.GetContainerUri(keyValueDict, item.Id); string protectedItemUri = HelperUtils.GetProtectedItemUri(keyValueDict, item.Id); AzureVmWorkloadSQLDatabaseProtectedItem properties = new AzureVmWorkloadSQLDatabaseProtectedItem(); properties.PolicyId = null; properties.ProtectionState = ProtectionState.ProtectionStopped; properties.SourceResourceId = item.SourceResourceId; properties.IsRehydrate = true; ProtectedItemResource serviceClientRequest = new ProtectedItemResource() { Properties = properties, }; return(ServiceClientAdapter.CreateOrUpdateProtectedItem( containerUri, protectedItemUri, serviceClientRequest, vaultName: vaultName, resourceGroupName: resourceGroupName)); }
/// <summary> /// Constructor. Takes the service client object representing the protected item /// and converts it in to the PS protected item model /// </summary> /// <param name="protectedItemResource">Service client object representing the protected item resource</param> /// <param name="containerName">Name of the container associated with this protected item</param> /// <param name="containerType">Type of the container associated with this protected item</param> /// <param name="policyName">Name of the protection policy associated with this protected item</param> public AzureWorkloadSQLDatabaseProtectedItem(ProtectedItemResource protectedItemResource, string containerName, ContainerType containerType, string policyName) : base(protectedItemResource, containerName, containerType, policyName) { AzureVmWorkloadSQLDatabaseProtectedItem protectedItem = (AzureVmWorkloadSQLDatabaseProtectedItem)protectedItemResource.Properties; FriendlyName = protectedItem.FriendlyName; ServerName = protectedItem.ServerName; ParentName = protectedItem.ParentName; ParentType = protectedItem.ParentType; LastBackupErrorDetail = protectedItem.LastBackupErrorDetail; ProtectedItemDataSourceId = protectedItem.ProtectedItemDataSourceId; ProtectedItemHealthStatus = protectedItem.ProtectedItemHealthStatus; LastBackupStatus = protectedItem.LastBackupStatus; LastBackupTime = protectedItem.LastBackupTime; ProtectionState = EnumUtils.GetEnum <ItemProtectionState>(protectedItem.ProtectionState.ToString()); ProtectionStatus = EnumUtils.GetEnum <ItemProtectionStatus>(protectedItem.ProtectionStatus); DateOfPurge = null; DeleteState = EnumUtils.GetEnum <ItemDeleteState>("NotDeleted"); if (protectedItem.IsScheduledForDeferredDelete.HasValue) { DateOfPurge = protectedItem.DeferredDeleteTimeInUTC.Value.AddDays(14); DeleteState = EnumUtils.GetEnum <ItemDeleteState>("ToBeDeleted"); } }
public RestAzureNS.AzureOperationResponse <ProtectedItemResource> DisableProtection() { string vaultName = (string)ProviderData[VaultParams.VaultName]; string vaultResourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; bool deleteBackupData = ProviderData.ContainsKey(ItemParams.DeleteBackupData) ? (bool)ProviderData[ItemParams.DeleteBackupData] : false; ItemBase itemBase = (ItemBase)ProviderData[ItemParams.Item]; AzureWorkloadSQLDatabaseProtectedItem item = (AzureWorkloadSQLDatabaseProtectedItem)ProviderData[ItemParams.Item]; AzureVmWorkloadSQLDatabaseProtectedItem properties = new AzureVmWorkloadSQLDatabaseProtectedItem(); return(EnableOrModifyProtection(disableWithRetentionData: true)); }
/// <summary> /// Constructor. Takes the service client object representing the protected item /// and converts it in to the PS protected item model /// </summary> /// <param name="protectedItemResource">Service client object representing the protected item resource</param> /// <param name="containerName">Name of the container associated with this protected item</param> /// <param name="containerType">Type of the container associated with this protected item</param> /// <param name="policyName">Name of the protection policy associated with this protected item</param> public AzureWorkloadSQLDatabaseProtectedItem(ProtectedItemResource protectedItemResource, string containerName, ContainerType containerType, string policyName) : base(protectedItemResource, containerName, containerType, policyName) { AzureVmWorkloadSQLDatabaseProtectedItem protectedItem = (AzureVmWorkloadSQLDatabaseProtectedItem)protectedItemResource.Properties; FriendlyName = protectedItem.FriendlyName; ServerName = protectedItem.ServerName; ParentName = protectedItem.ParentName; ParentType = protectedItem.ParentType; LastBackupErrorDetail = protectedItem.LastBackupErrorDetail; ProtectedItemDataSourceId = protectedItem.ProtectedItemDataSourceId; ProtectedItemHealthStatus = protectedItem.ProtectedItemHealthStatus; LastBackupStatus = protectedItem.LastBackupStatus; LastBackupTime = protectedItem.LastBackupTime; ProtectionState = EnumUtils.GetEnum <ItemProtectionState>(protectedItem.ProtectionState.ToString()); ProtectionStatus = EnumUtils.GetEnum <ItemProtectionStatus>(protectedItem.ProtectionStatus); }
private RestAzureNS.AzureOperationResponse <ProtectedItemResource> EnableOrModifyProtection(bool disableWithRetentionData = false) { string vaultName = (string)ProviderData[VaultParams.VaultName]; string vaultResourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; PolicyBase policy = ProviderData.ContainsKey(ItemParams.Policy) ? (PolicyBase)ProviderData[ItemParams.Policy] : null; ProtectableItemBase protectableItemBase = ProviderData.ContainsKey(ItemParams.ProtectableItem) ? (ProtectableItemBase)ProviderData[ItemParams.ProtectableItem] : null; AzureWorkloadProtectableItem protectableItem = ProviderData.ContainsKey(ItemParams.ProtectableItem) ? (AzureWorkloadProtectableItem)ProviderData[ItemParams.ProtectableItem] : null; ItemBase itemBase = ProviderData.ContainsKey(ItemParams.Item) ? (ItemBase)ProviderData[ItemParams.Item] : null; AzureWorkloadSQLDatabaseProtectedItem item = ProviderData.ContainsKey(ItemParams.Item) ? (AzureWorkloadSQLDatabaseProtectedItem)ProviderData[ItemParams.Item] : null; AzureVmWorkloadSQLDatabaseProtectedItem properties = new AzureVmWorkloadSQLDatabaseProtectedItem(); string containerUri = ""; string protectedItemUri = ""; if (disableWithRetentionData) { //Disable protection while retaining backup data ValidateAzureWorkloadDisableProtectionRequest(itemBase); Dictionary <UriEnums, string> keyValueDict = HelperUtils.ParseUri(item.Id); containerUri = HelperUtils.GetContainerUri(keyValueDict, item.Id); protectedItemUri = HelperUtils.GetProtectedItemUri(keyValueDict, item.Id); properties.PolicyId = string.Empty; properties.ProtectionState = ProtectionState.ProtectionStopped; properties.SourceResourceId = item.SourceResourceId; } else { if (protectableItem != null) { Dictionary <UriEnums, string> keyValueDict = HelperUtils.ParseUri(protectableItem.Id); containerUri = HelperUtils.GetContainerUri( keyValueDict, protectableItem.Id); protectedItemUri = HelperUtils.GetProtectableItemUri( keyValueDict, protectableItem.Id); properties.PolicyId = policy.Id; } else if (item != null) { Dictionary <UriEnums, string> keyValueDict = HelperUtils.ParseUri(item.Id); containerUri = HelperUtils.GetContainerUri( keyValueDict, item.Id); protectedItemUri = HelperUtils.GetProtectedItemUri( keyValueDict, item.Id); properties.PolicyId = policy.Id; } } ProtectedItemResource serviceClientRequest = new ProtectedItemResource() { Properties = properties }; return(ServiceClientAdapter.CreateOrUpdateProtectedItem( containerUri, protectedItemUri, serviceClientRequest, vaultName: vaultName, resourceGroupName: vaultResourceGroupName)); }