diff --git a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj index 5d90d8ee8ec5..e689ba778e91 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj @@ -12,7 +12,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadRecoveryConfig.cs b/src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadRecoveryConfig.cs index 7e896acd84e7..c0122b659475 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadRecoveryConfig.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.Models/AzureVmWorkloadModels/AzureWorkloadRecoveryConfig.cs @@ -38,6 +38,11 @@ public class AzureWorkloadRecoveryConfig : RecoveryConfigBase /// public string RestoredDBName { get; set; } + /// + /// Target Virtual Machine Id in case of Alternate Location Restore + /// + public string TargetVirtualMachineId { get; set; } + /// /// OverwriteWLIfpresent /// @@ -66,7 +71,7 @@ public AzureWorkloadRecoveryConfig(string targetServer, string targetInstance, s : base(restoreRequestType, recoveryPoint, pointInTime) { TargetServer = targetServer; - TargetInstance = targetInstance; + TargetInstance = targetInstance; } } } \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.Designer.cs b/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.Designer.cs index 98f03c006a30..9342543fc034 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.Designer.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.Designer.cs @@ -1895,5 +1895,16 @@ public static string ZonalRestoreVaultStorageRedundancyException return ResourceManager.GetString("ZonalRestoreVaultStorageRedundancyException", resourceCulture); } } + + /// + /// Looks up a localized string similar to WorkloadRecoveryConfig TargetVirtualMachineId cannot be null for Alternate location restore. + /// + public static string TargetVirtualMachineIdRequiredException + { + get + { + return ResourceManager.GetString("TargetVirtualMachineIdRequiredException", resourceCulture); + } + } } } diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.resx b/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.resx index 24464c91f7c4..a72e6bc047a9 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.resx +++ b/src/RecoveryServices/RecoveryServices.Backup.Models/Properties/Resources.resx @@ -625,4 +625,7 @@ Please contact Microsoft for further assistance. Please check whether the vault storageRedundancy is ZRS or RA-GRS or remove TargetZone + + WorkloadRecoveryConfig TargetVirtualMachineId cannot be null for Alternate location restore + \ No newline at end of file diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj index 70e32c9e21f7..31576371319f 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj @@ -12,7 +12,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Backup.Providers/AzureWorkloadProviderHelper.cs b/src/RecoveryServices/RecoveryServices.Backup.Providers/AzureWorkloadProviderHelper.cs index 5cd588bfd656..ca0756b8645a 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Providers/AzureWorkloadProviderHelper.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.Providers/AzureWorkloadProviderHelper.cs @@ -440,6 +440,7 @@ public List ListLogChains(Dictionary ProviderData DateTime startDate = (DateTime)(ProviderData[RecoveryPointParams.StartDate]); DateTime endDate = (DateTime)(ProviderData[RecoveryPointParams.EndDate]); string restorePointQueryType = (string)ProviderData[RecoveryPointParams.RestorePointQueryType]; + bool secondaryRegion = (bool)ProviderData[CRRParams.UseSecondaryRegion]; ItemBase item = ProviderData[RecoveryPointParams.Item] as ItemBase; @@ -465,12 +466,26 @@ public List ListLogChains(Dictionary ProviderData ODataQuery queryFilter = new ODataQuery(); queryFilter.Filter = queryFilterString; - List rpListResponse = ServiceClientAdapter.GetRecoveryPoints( + List rpListResponse; + if (secondaryRegion) + { + //fetch recovery points Log Chain from secondary region + rpListResponse = ServiceClientAdapter.GetRecoveryPointsFromSecondaryRegion( + containerUri, + protectedItemName, + queryFilter, + vaultName: vaultName, + resourceGroupName: resourceGroupName); + } + else + { + rpListResponse = ServiceClientAdapter.GetRecoveryPoints( containerUri, protectedItemName, queryFilter, vaultName: vaultName, resourceGroupName: resourceGroupName); + } List timeRanges = new List(); foreach (RecoveryPointResource rp in rpListResponse) diff --git a/src/RecoveryServices/RecoveryServices.Backup.Providers/Providers/AzureWorkloadPsBackupProvider.cs b/src/RecoveryServices/RecoveryServices.Backup.Providers/Providers/AzureWorkloadPsBackupProvider.cs index 7b8def6adf29..a16df5731145 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Providers/Providers/AzureWorkloadPsBackupProvider.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.Providers/Providers/AzureWorkloadPsBackupProvider.cs @@ -104,7 +104,7 @@ public RestAzureNS.AzureOperationResponse DisableProtectionWithDeleteData() } public RestAzureNS.AzureOperationResponse UndeleteProtection() - { + { string vaultName = (string)ProviderData[VaultParams.VaultName]; string resourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; AzureWorkloadSQLDatabaseProtectedItem item = (AzureWorkloadSQLDatabaseProtectedItem)ProviderData[ItemParams.Item]; @@ -431,6 +431,15 @@ public RestAzureNS.AzureOperationResponse TriggerRestore() ContainerId = wLRecoveryConfig.ContainerId }; azureWorkloadSQLRestoreRequest.AlternateDirectoryPaths = wLRecoveryConfig.targetPhysicalPath; + + if (wLRecoveryConfig.TargetVirtualMachineId != null && wLRecoveryConfig.TargetVirtualMachineId != "") + { + azureWorkloadSQLRestoreRequest.TargetVirtualMachineId = wLRecoveryConfig.TargetVirtualMachineId; + } + else + { + throw new ArgumentException(Resources.TargetVirtualMachineIdRequiredException); + } } if (wLRecoveryConfig.RecoveryMode == "FileRecovery") { @@ -468,6 +477,15 @@ public RestAzureNS.AzureOperationResponse TriggerRestore() ContainerId = wLRecoveryConfig.ContainerId }; azureWorkloadSQLPointInTimeRestoreRequest.AlternateDirectoryPaths = wLRecoveryConfig.targetPhysicalPath; + + if (wLRecoveryConfig.TargetVirtualMachineId != null && wLRecoveryConfig.TargetVirtualMachineId != "") + { + azureWorkloadSQLPointInTimeRestoreRequest.TargetVirtualMachineId = wLRecoveryConfig.TargetVirtualMachineId; + } + else + { + throw new ArgumentException(Resources.TargetVirtualMachineIdRequiredException); + } } if (wLRecoveryConfig.RecoveryMode == "FileRecovery") @@ -491,7 +509,7 @@ public RestAzureNS.AzureOperationResponse TriggerRestore() AzureRecoveryPoint rp = (AzureRecoveryPoint)wLRecoveryConfig.RecoveryPoint; // get access token - CrrAccessToken accessToken = ServiceClientAdapter.GetCRRAccessToken(rp, secondaryRegion, vaultName: vaultName, resourceGroupName: resourceGroupName); + CrrAccessToken accessToken = ServiceClientAdapter.GetCRRAccessToken(rp, secondaryRegion, vaultName: vaultName, resourceGroupName: resourceGroupName, ServiceClientModel.BackupManagementType.AzureWorkload); // AzureWorkload CRR Request Logger.Instance.WriteDebug("Triggering Restore to secondary region: " + secondaryRegion); @@ -517,8 +535,7 @@ public RestAzureNS.AzureOperationResponse TriggerRestore() resourceGroupName: resourceGroupName, vaultLocation: vaultLocation); return response; - } - + } } private RestAzureNS.AzureOperationResponse CreateorModifyPolicy() diff --git a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj index cf3128111e12..929ed5725a3b 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj @@ -12,7 +12,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/RestoreDiskAPIs.cs b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/RestoreDiskAPIs.cs index fe4735cf9214..32064fa36aa7 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/RestoreDiskAPIs.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/RestoreDiskAPIs.cs @@ -78,14 +78,15 @@ public CrrAccessToken GetCRRAccessToken( AzureRecoveryPoint rp, string secondaryRegion, string vaultName = null, - string resourceGroupName = null) + string resourceGroupName = null, + string backupManagementType = null) { Dictionary uriDict = HelperUtils.ParseUri(rp.Id); string containerUri = HelperUtils.GetContainerUri(uriDict, rp.Id); string protectedItemUri = HelperUtils.GetProtectedItemUri(uriDict, rp.Id); string recoveryPointId = rp.RecoveryPointId; - AADPropertiesResource userInfo = GetAADProperties(secondaryRegion); + AADPropertiesResource userInfo = GetAADProperties(secondaryRegion, backupManagementType); var accessToken = BmsAdapter.Client.RecoveryPoints.GetAccessTokenWithHttpMessagesAsync(vaultName ?? BmsAdapter.GetResourceName(), resourceGroupName ?? BmsAdapter.GetResourceGroupName(), AzureFabricName, containerUri, protectedItemUri, recoveryPointId, userInfo).Result.Body; diff --git a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/VaultAPIs.cs b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/VaultAPIs.cs index 7296dd60dc58..966c60df8bd6 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/VaultAPIs.cs +++ b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/BMSAPIs/VaultAPIs.cs @@ -16,6 +16,8 @@ using System.Linq; using Microsoft.Azure.Management.RecoveryServices.Backup.Models; using Microsoft.Azure.Management.RecoveryServices.Models; +using Microsoft.Rest.Azure.OData; +using Newtonsoft.Json; using RestAzureNS = Microsoft.Rest.Azure; namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ServiceClientAdapterNS @@ -100,9 +102,16 @@ public ARSVault GetVault(string resouceGroupName, string vaultName) /// /// Azure region to fetch AAD properties /// vault response object. - public AADPropertiesResource GetAADProperties(string azureRegion) + public AADPropertiesResource GetAADProperties(string azureRegion, string backupManagementType = null) { - AADPropertiesResource aadProperties = BmsAdapter.Client.AadProperties.GetWithHttpMessagesAsync(azureRegion).Result.Body; + ODataQuery queryParams = null; + + if(backupManagementType == BackupManagementType.AzureWorkload) + { + queryParams = new ODataQuery(q => q.BackupManagementType == BackupManagementType.AzureWorkload); + } + + AADPropertiesResource aadProperties = BmsAdapter.Client.AadProperties.GetWithHttpMessagesAsync(azureRegion, queryParams).Result.Body; return aadProperties; } } diff --git a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj index 38068fe9bb63..676ebb799f91 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj @@ -13,7 +13,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj index 238732c53752..e1e82a22d062 100644 --- a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj @@ -14,7 +14,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/RecoveryPoint/GetAzureRmRecoveryServicesBackupRecoveryLogChain.cs b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/RecoveryPoint/GetAzureRmRecoveryServicesBackupRecoveryLogChain.cs index 49dbeb21f1f9..7e72cb82e3c1 100644 --- a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/RecoveryPoint/GetAzureRmRecoveryServicesBackupRecoveryLogChain.cs +++ b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/RecoveryPoint/GetAzureRmRecoveryServicesBackupRecoveryLogChain.cs @@ -69,6 +69,13 @@ public class GetAzureRmRecoveryServicesBackupRecoveryLogChain : RSBackupVaultCmd [ValidateNotNullOrEmpty] public ItemBase Item { get; set; } + /// + /// Switch param to filter Recovery point log chain on secondary region (Cross Region Restore). + /// + [Parameter(Mandatory = false, HelpMessage = ParamHelpMsgs.Common.UseSecondaryReg)] + [ValidateNotNullOrEmpty] + public SwitchParameter UseSecondaryRegion { get; set; } + public override void ExecuteCmdlet() { ExecutionBlock(() => @@ -88,6 +95,7 @@ public override void ExecuteCmdlet() providerParameters.Add(VaultParams.VaultName, vaultName); providerParameters.Add(VaultParams.ResourceGroupName, resourceGroupName); providerParameters.Add(RecoveryPointParams.Item, Item); + providerParameters.Add(CRRParams.UseSecondaryRegion, UseSecondaryRegion.IsPresent); if (ParameterSetName == DateTimeFilterParameterSet || ParameterSetName == NoFilterParameterSet) diff --git a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/GetAzureRmRecoveryServicesBackupWorkloadRecoveryConfig.cs b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/GetAzureRmRecoveryServicesBackupWorkloadRecoveryConfig.cs index 3fa73a341517..ea31c455f725 100644 --- a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/GetAzureRmRecoveryServicesBackupWorkloadRecoveryConfig.cs +++ b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/GetAzureRmRecoveryServicesBackupWorkloadRecoveryConfig.cs @@ -127,6 +127,16 @@ public override void ExecuteCmdlet() int offset = (int)timeSpan.TotalSeconds; string targetDb = ""; + if (AlternateWorkloadRestore.IsPresent || RestoreAsFiles.IsPresent) + { + if (TargetContainer == null) + { + throw new ArgumentNullException("TargetContainer", Resources.TargetContainerRequiredException); + } + + azureWorkloadRecoveryConfig.TargetVirtualMachineId = (TargetContainer as AzureVmWorkloadContainer).SourceResourceId; + } + if (TargetItem != null) { if (!string.Equals(((AzureWorkloadProtectableItem)TargetItem).ProtectableItemType, @@ -250,11 +260,6 @@ public override void ExecuteCmdlet() } else if (RestoreAsFiles.IsPresent) { - if(TargetContainer == null) - { - throw new ArgumentNullException("TargetContainer", Resources.TargetContainerRequiredException); - } - azureWorkloadRecoveryConfig.OverwriteWLIfpresent = "No"; azureWorkloadRecoveryConfig.NoRecoveryMode = "Disabled"; azureWorkloadRecoveryConfig.ContainerId = (TargetContainer as AzureVmWorkloadContainer).Id; diff --git a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/RestoreAzureRMRecoveryServicesBackupItem.cs b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/RestoreAzureRMRecoveryServicesBackupItem.cs index 9a0d3cb72aa1..0f01bff8dd68 100644 --- a/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/RestoreAzureRMRecoveryServicesBackupItem.cs +++ b/src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Restore/RestoreAzureRMRecoveryServicesBackupItem.cs @@ -385,10 +385,10 @@ public override void ExecuteCmdlet() var operationId = jobResponse.Request.RequestUri.Segments.Last(); var response = ServiceClientAdapter.GetCrrOperationStatus(secondaryRegion, operationId); - string jobIDJson = JsonConvert.SerializeObject(response.Body.Properties); - string[] jobSplits = jobIDJson.Split(new char[] { '\"' }); - string jobID = jobSplits[jobSplits.Length - 2]; - WriteObject(GetCrrJobObject(secondaryRegion, VaultId, jobID)); + string jobIdJson = JsonConvert.SerializeObject(response.Body.Properties); + string[] jobSplits = jobIdJson.Split(new char[] { '\"' }); + string jobId = jobSplits[jobSplits.Length - 2]; + WriteObject(GetCrrJobObject(secondaryRegion, VaultId, jobId)); } else { diff --git a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj index 058f35894d6d..950fb64e0773 100644 --- a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj +++ b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj @@ -13,7 +13,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj index 9cb3f66e1bfb..06b361a1c36b 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj @@ -14,7 +14,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj index 5e3e583928b3..45655e14cdb1 100644 --- a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj @@ -12,7 +12,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices.sln b/src/RecoveryServices/RecoveryServices.sln index a7119c5fcf28..2ff441a0881f 100644 --- a/src/RecoveryServices/RecoveryServices.sln +++ b/src/RecoveryServices/RecoveryServices.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.136 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31019.35 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RecoveryServices", "RecoveryServices\RecoveryServices.csproj", "{604260DC-B392-4CF4-81EC-34B14591E2D2}" EndProject @@ -60,6 +60,10 @@ Global {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Debug|Any CPU.Build.0 = Debug|Any CPU {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {142D7B0B-388A-4CEB-A228-7F6D423C5C2E}.Release|Any CPU.Build.0 = Release|Any CPU + {6BD6B80A-06AF-4B5B-9230-69CCFC6C8D64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BD6B80A-06AF-4B5B-9230-69CCFC6C8D64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BD6B80A-06AF-4B5B-9230-69CCFC6C8D64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BD6B80A-06AF-4B5B-9230-69CCFC6C8D64}.Release|Any CPU.Build.0 = Release|Any CPU {52643BD5-6378-49BD-9F6E-DAC9DD8A867B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {52643BD5-6378-49BD-9F6E-DAC9DD8A867B}.Debug|Any CPU.Build.0 = Debug|Any CPU {52643BD5-6378-49BD-9F6E-DAC9DD8A867B}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj index 43d83ffc7b12..11c20c039d73 100644 --- a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj +++ b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj @@ -12,7 +12,9 @@ - + + ..\SDK2\Microsoft.Azure.Management.RecoveryServices.Backup.dll + diff --git a/src/RecoveryServices/RecoveryServices/Vault/GetAzureRmRecoveryServicesVaults.cs b/src/RecoveryServices/RecoveryServices/Vault/GetAzureRmRecoveryServicesVaults.cs index b23403663bf8..c0e9e56b3e66 100644 --- a/src/RecoveryServices/RecoveryServices/Vault/GetAzureRmRecoveryServicesVaults.cs +++ b/src/RecoveryServices/RecoveryServices/Vault/GetAzureRmRecoveryServicesVaults.cs @@ -19,7 +19,6 @@ using Microsoft.Azure.Management.RecoveryServices.Models; using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters; using System.Collections; -using Microsoft.Azure.Commands.ResourceManager.Common.Tags; namespace Microsoft.Azure.Commands.RecoveryServices { diff --git a/src/RecoveryServices/SDK1/Microsoft.Azure.Management.RecoveryServices.Backup.dll b/src/RecoveryServices/SDK1/Microsoft.Azure.Management.RecoveryServices.Backup.dll new file mode 100644 index 000000000000..14605677f39b Binary files /dev/null and b/src/RecoveryServices/SDK1/Microsoft.Azure.Management.RecoveryServices.Backup.dll differ diff --git a/src/RecoveryServices/SDK2/Microsoft.Azure.Management.RecoveryServices.Backup.dll b/src/RecoveryServices/SDK2/Microsoft.Azure.Management.RecoveryServices.Backup.dll new file mode 100644 index 000000000000..8f487c8cd380 Binary files /dev/null and b/src/RecoveryServices/SDK2/Microsoft.Azure.Management.RecoveryServices.Backup.dll differ