Skip to content

RecoveryPlan cmdlet changes for ASR along with some bug fixes #1976

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 45 commits into from
Mar 23, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
dcf396a
Adding support for following cmdlets
RamjotSingh Jan 19, 2016
da84e89
1) Resolving CR comments
RamjotSingh Jan 19, 2016
2cc13cf
Fixing CSROJ
RamjotSingh Jan 19, 2016
5807631
taking hydra spec namespace change for SiteRecovery Vault management …
sriramvu Jan 20, 2016
16505e5
updated Vault related artifacts with Recovery Services (RS) rather th…
sriramvu Jan 20, 2016
24827f7
RefreshServer
sriramvu Jan 20, 2016
86bfcd4
Merge pull request #1 from AsrOneSdk/namespaceChangeForSRVaultManagement
avneeshraiusit Jan 20, 2016
b9b7609
Merge pull request #2 from AsrOneSdk/refreshServer
avneeshraiusit Jan 20, 2016
382d7df
Taking CR comments and changing cmdlet names for mapping (storage cla…
RamjotSingh Jan 20, 2016
d9b86fc
Shifting to central exception handling for SiteRecovery cmdlets
RamjotSingh Jan 20, 2016
aafc37a
Merge branch 'dev151125' of https://github.com/AsrOneSdk/azure-powers…
RamjotSingh Jan 20, 2016
f0d83f4
Merging changes.
RamjotSingh Jan 20, 2016
5d4866f
Taking CR comments.
RamjotSingh Jan 21, 2016
0b17685
Sets SiteRecovery and RecoveryServices Vault context without importin…
sriramvu Jan 21, 2016
018fc3b
Adding Server based filtering to Get Storage classification
RamjotSingh Jan 21, 2016
485b28e
Removing Fabric friendly name property from storage classification.
RamjotSingh Jan 21, 2016
3d7ba2e
Taking CR comments.
RamjotSingh Jan 21, 2016
7d161c2
Merge branch 'dev151125' of https://github.com/AsrOneSdk/azure-powers…
sriramvu Jan 21, 2016
9f27fce
Merge pull request #3 from AsrOneSdk/SetRSVaultSettings
avneeshraiusit Jan 21, 2016
4fa9568
RP support
avneeshraiusit Jan 22, 2016
9a18e12
resolving merge conflicts
avneeshraiusit Jan 22, 2016
5197bc2
Added encryption support
vijaynar Jan 22, 2016
6247fdf
Vault settings file to have ASRVaultCreds as our DRA registration exp…
sriramvu Jan 25, 2016
1c94d69
Indentation support in generated RP file
avneeshraiusit Jan 28, 2016
5027073
Adding polymorphic deserialization support for Recovery Plan
avneeshraiusit Jan 29, 2016
11a3a2e
minor improvizations
avneeshraiusit Feb 2, 2016
1b22d08
Protection Container perf fix:
vijaynar Feb 3, 2016
85ba12e
Taking Feedbacks
avneeshraiusit Feb 3, 2016
d12218e
Perf fix for Enumerate VM and ProtectionEntity:
vijaynar Feb 3, 2016
3f62943
Changing common function for fetching VM & protectedEntity as generic.
vijaynar Feb 5, 2016
bbb7356
Adding RP Tests
avneeshraiusit Feb 5, 2016
9314b74
1) Changes corresponding to VmId field in RP
avneeshraiusit Feb 9, 2016
bd405a7
Creation of RP supported with RP file
avneeshraiusit Feb 16, 2016
6dbea73
1) Fix for bug 6635655 2) Purge Protection support
avneeshraiusit Feb 22, 2016
ffb6416
Fixing issues with Storage classification cmdlets.
RamjotSingh Mar 4, 2016
a9c69cd
Fixing pipelining issues
avneeshraiusit Mar 16, 2016
06aa81f
updated tests, session records, help, hydra version
sriramvu Mar 19, 2016
1f54e48
Merge remote-tracking branch 'upstream/dev' into dev151125-release-2
sriramvu Mar 19, 2016
76a1628
Installed released / public NuGets
sriramvu Mar 21, 2016
c3e1816
updated the recorded json with latest test recorder version
sriramvu Mar 21, 2016
ae7cb17
fixing matcher for x-ms-version issue
markcowl Mar 22, 2016
4090abf
Merge pull request #7 from markcowl/fixrsmocks2
sriramvu Mar 22, 2016
c408acd
bumped up SiteRecovery and RecoveryServices module versions
sriramvu Mar 22, 2016
c23868d
Revert "bumped up SiteRecovery and RecoveryServices module versions"
sriramvu Mar 22, 2016
af784d5
taken PR Comments
sriramvu Mar 22, 2016
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
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
<Reference Include="Microsoft.Azure.Common.NetFramework">
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Azure.Management.RecoveryServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.1.0.2-preview\lib\net40\Microsoft.Azure.Management.RecoveryServices.dll</HintPath>
<Reference Include="Microsoft.Azure.Management.RecoveryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.2.0.0-preview\lib\net40\Microsoft.Azure.Management.RecoveryServices.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.ResourceManager, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Recovery Services Vault CRUD Tests
function Test-RecoveryServicesVaultCRUDTests
{
# Create vault
$vaultCreationResponse = New-AzureRmRecoveryServicesVault -Name rsv1 -ResourceGroupName S91-1 -Location westus
$vaultCreationResponse = New-AzureRmRecoveryServicesVault -Name rsv1 -ResourceGroupName rg1 -Location westus
Assert-NotNull($vaultCreationResponse.Name)
Assert-NotNull($vaultCreationResponse.ID)
Assert-NotNull($vaultCreationResponse.Type)
Expand All @@ -38,13 +38,13 @@ function Test-RecoveryServicesVaultCRUDTests
}

# Get the created vault
$vaultToBeRemoved = Get-AzureRmRecoveryServicesVault -ResourceGroupName S91-1 -Name rsv1
$vaultToBeRemoved = Get-AzureRmRecoveryServicesVault -ResourceGroupName rg1 -Name rsv1
Assert-NotNull($vaultToBeRemoved.Name)
Assert-NotNull($vaultToBeRemoved.ID)
Assert-NotNull($vaultToBeRemoved.Type)

# Remove Vault
Remove-AzureRmRecoveryServicesVault -Vault $vaultToBeRemoved
$vaults = Get-AzureRmRecoveryServicesVault -ResourceGroupName S91-1 -Name rsv1
$vaults = Get-AzureRmRecoveryServicesVault -ResourceGroupName rg1 -Name rsv1
Assert-True { $vaults.Count -eq 0 }
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
using Microsoft.Azure.Commands.Common.Authentication.Models;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Reflection;

Expand All @@ -50,6 +51,14 @@ protected void SetupManagementClients()

protected void RunPowerShellTest(params string[] scripts)
{
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("Microsoft.Resources", null);
d.Add("Microsoft.Features", null);
d.Add("Microsoft.Authorization", null);
d.Add("Microsoft.Compute", null);
var providersToIgnore = new Dictionary<string, string>();
providersToIgnore.Add("Microsoft.Azure.Management.Resources.ResourceManagementClient", "2016-02-01");
HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(true, d, providersToIgnore);
using (UndoContext context = UndoContext.Current)
{
context.Start(TestUtilities.GetCallingClass(2), TestUtilities.GetCurrentMethodName(2));
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package id="Hyak.Common" version="1.0.3" targetFramework="net45" />
<package id="Microsoft.Azure.Common" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.Azure.Management.RecoveryServices" version="1.0.2-preview" targetFramework="net45" />
<package id="Microsoft.Azure.Management.RecoveryServices" version="2.0.0-preview" targetFramework="net45" />
<package id="Microsoft.Azure.Management.Resources" version="2.18.11-preview" targetFramework="net45" />
<package id="Microsoft.Azure.Test.Framework" version="1.0.5896.19355-prerelease" targetFramework="net45" />
<package id="Microsoft.Azure.Test.HttpRecorder" version="1.0.5896.19355-prerelease" targetFramework="net45" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Azure.Management.RecoveryServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.1.0.2-preview\lib\net40\Microsoft.Azure.Management.RecoveryServices.dll</HintPath>
<Reference Include="Microsoft.Azure.Management.RecoveryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Azure.Management.RecoveryServices.2.0.0-preview\lib\net40\Microsoft.Azure.Management.RecoveryServices.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.18.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public RecoveryServicesManagementClient GetRecoveryServicesClient
"Microsoft.StyleCop.CSharp.MaintainabilityRules",
"SA1401:FieldsMustBePrivate",
Justification = "For Resource Credentials.")]
public static ASRVaultCreds asrVaultCreds = new ASRVaultCreds();
public static ASRVaultCreds arsVaultCreds = new ASRVaultCreds();

/// <summary>
/// Recovery Services client.
Expand All @@ -86,7 +86,7 @@ public PSRecoveryServicesClient(IAzureProfile azureProfile)
string resourceType = string.Empty;

// Get Resource provider namespace from config if needed to communicate with internal deployments
if (string.IsNullOrEmpty(asrVaultCreds.ResourceNamespace))
if (string.IsNullOrEmpty(arsVaultCreds.ResourceNamespace))
{
if (appSettings.Settings.Count == 0)
{
Expand All @@ -109,7 +109,7 @@ public PSRecoveryServicesClient(IAzureProfile azureProfile)

this.recoveryServicesClient =
AzureSession.ClientFactory.CreateCustomClient<RecoveryServicesManagementClient>(
asrVaultCreds.ResourceNamespace,
arsVaultCreds.ResourceNamespace,
AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(azureProfile.Context),
azureProfile.Context.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ResourceManager));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public async Task<ResourceExtendedInformation> GetExtendedInfo()
{
ResourceExtendedInformationResponse response =
await this.recoveryServicesClient.VaultExtendedInfo.GetExtendedInfoAsync(
asrVaultCreds.ResourceGroupName,
asrVaultCreds.ResourceName,
arsVaultCreds.ResourceGroupName,
arsVaultCreds.ResourceName,
this.GetRequestHeaders());

return response.ResourceExtendedInformation;
Expand All @@ -54,8 +54,8 @@ await this.recoveryServicesClient.VaultExtendedInfo.GetExtendedInfoAsync(
public AzureOperationResponse CreateExtendedInfo(ResourceExtendedInformationArgs extendedInfoArgs)
{
return this.recoveryServicesClient.VaultExtendedInfo.CreateExtendedInfo(
asrVaultCreds.ResourceGroupName,
asrVaultCreds.ResourceName,
arsVaultCreds.ResourceGroupName,
arsVaultCreds.ResourceName,
extendedInfoArgs,
this.GetRequestHeaders());
}
Expand All @@ -68,8 +68,8 @@ public AzureOperationResponse CreateExtendedInfo(ResourceExtendedInformationArgs
public async Task<UploadCertificateResponse> UpdateVaultCertificate(CertificateArgs args, string certFriendlyName)
{
return await this.recoveryServicesClient.VaultExtendedInfo.UploadCertificateAsync(
asrVaultCreds.ResourceGroupName,
asrVaultCreds.ResourceName,
arsVaultCreds.ResourceGroupName,
arsVaultCreds.ResourceName,
args, certFriendlyName,
this.GetRequestHeaders());
}
Expand All @@ -82,7 +82,7 @@ public async Task<UploadCertificateResponse> UpdateVaultCertificate(CertificateA
/// <returns>credential object</returns>
public ASRVaultCreds GenerateVaultCredential(X509Certificate2 managementCert, ARSVault vault, ASRSite site)
{
ASRVaultCreds currentVaultContext = PSRecoveryServicesClient.asrVaultCreds;
ASRVaultCreds currentVaultContext = PSRecoveryServicesClient.arsVaultCreds;

string resourceProviderNamespace = string.Empty;
string resourceType = string.Empty;
Expand Down Expand Up @@ -112,7 +112,7 @@ public ASRVaultCreds GenerateVaultCredential(X509Certificate2 managementCert, AR
acsDetails = uploadCertificate.Result;
channelIntegrityKey = getChannelIntegrityKey.Result;

ASRVaultCreds asrVaultCreds = this.GenerateCredentialObject(
ASRVaultCreds arsVaultCreds = this.GenerateCredentialObject(
managementCert,
acsDetails,
channelIntegrityKey,
Expand All @@ -122,7 +122,7 @@ public ASRVaultCreds GenerateVaultCredential(X509Certificate2 managementCert, AR
// Update back the original vault settings
Utilities.UpdateCurrentVaultContext(currentVaultContext);

return asrVaultCreds;
return arsVaultCreds;
}

/// <summary>
Expand Down Expand Up @@ -157,7 +157,7 @@ public ASRVaultCreds ChangeVaultContext(ARSVault vault)
ARMResourceType = resourceType
});

return asrVaultCreds;
return arsVaultCreds;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,54 +190,6 @@ public class ARMExceptionDetails
public string Target { get; private set; }
}

/// <summary>
/// Error contract returned when some exception occurs in ASR REST API.
/// </summary>
[SuppressMessage(
"Microsoft.StyleCop.CSharp.MaintainabilityRules",
"SA1402:FileMayOnlyContainASingleClass",
Justification = "Keeping all contracts together.")]
[DataContract(Namespace = "http://schemas.microsoft.com/windowsazure")]
public class Error
{
/// <summary>
/// Initializes a new instance of the <see cref="Error" /> class.
/// </summary>
public Error()
{
}

/// <summary>
/// Gets or sets error code.
/// </summary>
[DataMember]
public string Code { get; set; }

/// <summary>
/// Gets or sets error message.
/// </summary>
[DataMember]
public string Message { get; set; }

/// <summary>
/// Gets or sets possible causes of error.
/// </summary>
[DataMember]
public string PossibleCauses { get; set; }

/// <summary>
/// Gets or sets recommended action to resolve error.
/// </summary>
[DataMember]
public string RecommendedAction { get; set; }

/// <summary>
/// Gets or sets client request Id.
/// </summary>
[DataMember(Name = "ActivityId")]
public string ClientRequestId { get; set; }
}

/// <summary>
/// CIK token details.
/// </summary>
Expand Down Expand Up @@ -361,7 +313,7 @@ public VaultCreds()
public VaultCreds(string subscriptionId, string resourceName, string managementCert, AcsNamespace acsNamespace)
{
this.SubscriptionId = subscriptionId;
this.ResourceType = Constants.ASRVaultType;
this.ResourceType = Constants.VaultType;
this.ResourceName = resourceName;
this.ManagementCert = managementCert;
this.AcsNamespace = acsNamespace;
Expand Down Expand Up @@ -404,7 +356,7 @@ public VaultCreds(string subscriptionId, string resourceName, string managementC
}

/// <summary>
/// Class to define ASR Vault credentials
/// Class to define ARS Vault credentials
/// </summary>
[SuppressMessage(
"Microsoft.StyleCop.CSharp.MaintainabilityRules",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ namespace Microsoft.Azure.Commands.RecoveryServices
public class Constants
{
/// <summary>
/// ASR vault type
/// Vault type
/// </summary>
public const string ASRVaultType = "HyperVRecoveryManagerVault";
public const string VaultType = "HyperVRecoveryManagerVault";

/// <summary>
/// Vault Credential version.
Expand Down Expand Up @@ -68,7 +68,7 @@ public ARSVault(Vault vault)
this.Location = vault.Location;
this.ResouceGroupName = PSRecoveryServicesClient.GetResourceGroup(vault.Id);
this.SubscriptionId = PSRecoveryServicesClient.GetSubscriptionId(vault.Id);
this.Properties = new ASRVaultProperties();
this.Properties = new ARSVaultProperties();
this.Properties.ProvisioningState = vault.Properties.ProvisioningState;
}

Expand All @@ -84,7 +84,7 @@ public ARSVault(VaultCreateResponse vault)
this.Location = vault.Location;
this.ResouceGroupName = PSRecoveryServicesClient.GetResourceGroup(vault.Id);
this.SubscriptionId = PSRecoveryServicesClient.GetSubscriptionId(vault.Id);
this.Properties = new ASRVaultProperties();
this.Properties = new ARSVaultProperties();
this.Properties.ProvisioningState = vault.Properties.ProvisioningState;
}

Expand Down Expand Up @@ -124,15 +124,15 @@ public ARSVault(VaultCreateResponse vault)
/// <summary>
/// Gets or sets Properties.
/// </summary>
public ASRVaultProperties Properties { get; set; }
public ARSVaultProperties Properties { get; set; }

#endregion
}

/// <summary>
/// Azure Site Recovery Vault properties.
/// </summary>
public class ASRVaultProperties
public class ARSVaultProperties
{
#region Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices
/// <summary>
/// Parameter Sets used for Azure Site Recovery commands.
/// </summary>
internal static class ASRParameterSets
internal static class ARSParameterSets
{
/// <summary>
/// For default parameter set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,22 +102,22 @@ public static string WriteToFile<T>(T fileContent, string filePath, string fileN
/// <summary>
/// Updates current Vault context.
/// </summary>
/// <param name="asrVaultCreds">ASR Vault credentials</param>
public static void UpdateCurrentVaultContext(ASRVaultCreds asrVaultCreds)
/// <param name="arsVaultCreds">ARS Vault credentials</param>
public static void UpdateCurrentVaultContext(ASRVaultCreds arsVaultCreds)
{
object updateVaultContextOneAtATime = new object();
lock (updateVaultContextOneAtATime)
{
PSRecoveryServicesClient.asrVaultCreds.ResourceName =
asrVaultCreds.ResourceName;
PSRecoveryServicesClient.asrVaultCreds.ResourceGroupName =
asrVaultCreds.ResourceGroupName;
PSRecoveryServicesClient.asrVaultCreds.ChannelIntegrityKey =
asrVaultCreds.ChannelIntegrityKey;
PSRecoveryServicesClient.asrVaultCreds.ResourceNamespace =
asrVaultCreds.ResourceNamespace;
PSRecoveryServicesClient.asrVaultCreds.ARMResourceType =
asrVaultCreds.ARMResourceType;
PSRecoveryServicesClient.arsVaultCreds.ResourceName =
arsVaultCreds.ResourceName;
PSRecoveryServicesClient.arsVaultCreds.ResourceGroupName =
arsVaultCreds.ResourceGroupName;
PSRecoveryServicesClient.arsVaultCreds.ChannelIntegrityKey =
arsVaultCreds.ChannelIntegrityKey;
PSRecoveryServicesClient.arsVaultCreds.ResourceNamespace =
arsVaultCreds.ResourceNamespace;
PSRecoveryServicesClient.arsVaultCreds.ARMResourceType =
arsVaultCreds.ARMResourceType;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,22 @@ public class GetAzureRmRecoveryServicesVaultSettingsFile : RecoveryServicesCmdle
/// <summary>
/// Gets or sets vault Object.
/// </summary>
[Parameter(ParameterSetName = ASRParameterSets.ByDefault, Mandatory = true, ValueFromPipeline = true)]
[Parameter(ParameterSetName = ASRParameterSets.ForSite, Mandatory = true, ValueFromPipeline = true)]
[Parameter(ParameterSetName = ARSParameterSets.ByDefault, Mandatory = true, ValueFromPipeline = true)]
[Parameter(ParameterSetName = ARSParameterSets.ForSite, Mandatory = true, ValueFromPipeline = true)]
[ValidateNotNullOrEmpty]
public ARSVault Vault { get; set; }

/// <summary>
/// Gets or sets Site Identifier.
/// </summary>
[Parameter(ParameterSetName = ASRParameterSets.ForSite, Mandatory = true)]
[Parameter(ParameterSetName = ARSParameterSets.ForSite, Mandatory = true)]
[ValidateNotNullOrEmpty]
public String SiteIdentifier { get; set; }

/// <summary>
/// Gets or sets SiteFriendlyName.
/// </summary>
[Parameter(ParameterSetName = ASRParameterSets.ForSite, Mandatory = true)]
[Parameter(ParameterSetName = ARSParameterSets.ForSite, Mandatory = true)]
[ValidateNotNullOrEmpty]
public String SiteFriendlyName { get; set; }

Expand All @@ -63,8 +63,8 @@ public class GetAzureRmRecoveryServicesVaultSettingsFile : RecoveryServicesCmdle
/// <summary>
/// Gets or sets vault Object.
/// </summary>
[Parameter(ParameterSetName = ASRParameterSets.ByDefault)]
[Parameter(ParameterSetName = ASRParameterSets.ForSite)]
[Parameter(ParameterSetName = ARSParameterSets.ByDefault)]
[Parameter(ParameterSetName = ARSParameterSets.ForSite)]
public string Path { get; set; }

#endregion Parameters
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<package id="Hyak.Common" version="1.0.3" targetFramework="net45" />
<package id="Microsoft.Azure.Common" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.Azure.Management.RecoveryServices" version="1.0.2-preview" targetFramework="net45" />
<package id="Microsoft.Azure.Management.RecoveryServices" version="2.0.0-preview" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.9" targetFramework="net45" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" />
Expand Down
Loading