Skip to content

Commit be8a5fc

Browse files
author
Samuel Anudeep
committed
Merge pull request #173 from MabOneSdk/anudeeb-dev1
Passing adapter to provider model
2 parents 65c7d4e + 54c32bd commit be8a5fc

File tree

10 files changed

+138
-17
lines changed

10 files changed

+138
-17
lines changed

src/ResourceManager/RecoveryServices.Backup/Cmdlets/Container/GetAzureRmRecoveryServicesContainer.cs

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,48 @@
1717
using System;
1818
using System.Collections.Generic;
1919
using System.Linq;
20+
using System.Management.Automation;
2021
using System.Text;
2122
using System.Threading.Tasks;
2223

2324
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2425
{
25-
class GetAzureRmRecoveryServicesContainer : RecoveryServicesBackupCmdletBase
26+
[Cmdlet(VerbsCommon.Get, "AzureRmRecoveryServicesContainer"), OutputType(typeof(List<AzureRmRecoveryServicesContainerBase>))]
27+
public class GetAzureRmRecoveryServicesContainer : RecoveryServicesBackupCmdletBase
2628
{
27-
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<string, object>()
28-
{
29-
{GetContainerParams.Name.ToString(), "Param1Value"},
30-
{GetContainerParams.Status.ToString(), "Param2Value"}
31-
});
29+
[Parameter(Mandatory = false, HelpMessage = "", ValueFromPipeline = true)]
30+
[ValidateNotNullOrEmpty]
31+
public ARSVault Vault { get; set; }
32+
33+
[Parameter(Mandatory = true, HelpMessage = "")]
34+
[ValidateNotNullOrEmpty]
35+
public ContainerType ContainerType { get; set; }
36+
37+
[Parameter(Mandatory = false, HelpMessage = "")]
38+
[ValidateNotNullOrEmpty]
39+
public string Name { get; set; }
40+
41+
[Parameter(Mandatory = false, HelpMessage = "")]
42+
[ValidateNotNullOrEmpty]
43+
public string ResourceGroupName { get; set; }
44+
45+
[Parameter(Mandatory = false, HelpMessage = "")]
46+
[ValidateNotNullOrEmpty]
47+
public ContainerRegistrationStatus Status { get; set; }
3248

3349
public override void ExecuteCmdlet()
3450
{
3551
base.ExecuteCmdlet();
52+
53+
PsBackupProviderManager providerManager = new PsBackupProviderManager(new Dictionary<System.Enum, object>()
54+
{
55+
{GetContainerParams.Vault, Vault},
56+
{GetContainerParams.ContainerType, ContainerType},
57+
{GetContainerParams.Name, Name},
58+
{GetContainerParams.ResourceGroupName, ResourceGroupName},
59+
{GetContainerParams.Status, Status},
60+
}, HydraAdapter);
61+
3662
IPsBackupProvider psBackupProvider = providerManager.GetProviderInstance(ContainerType.AzureVM);
3763
}
3864
}

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Cmdlets.csproj

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,29 @@
3434
<SpecificVersion>False</SpecificVersion>
3535
<HintPath>..\..\packages\Hyak.Common.1.0.3\lib\portable-net403+win+wpa81\Hyak.Common.dll</HintPath>
3636
</Reference>
37+
<Reference Include="Microsoft.Azure.Common, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
38+
<SpecificVersion>False</SpecificVersion>
39+
<HintPath>..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll</HintPath>
40+
</Reference>
41+
<Reference Include="Microsoft.Azure.Common.Authentication, Version=1.6.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
42+
<SpecificVersion>False</SpecificVersion>
43+
<HintPath>..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll</HintPath>
44+
</Reference>
45+
<Reference Include="Microsoft.Rest.ClientRuntime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
46+
<SpecificVersion>False</SpecificVersion>
47+
<HintPath>..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll</HintPath>
48+
</Reference>
49+
<Reference Include="Microsoft.WindowsAzure.Management.Scheduler">
50+
<HintPath>..\..\packages\Microsoft.WindowsAzure.Management.Scheduler.6.0.0\lib\net40\Microsoft.WindowsAzure.Management.Scheduler.dll</HintPath>
51+
</Reference>
3752
<Reference Include="System" />
3853
<Reference Include="System.Core" />
3954
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
4055
<SpecificVersion>False</SpecificVersion>
4156
<HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll</HintPath>
4257
</Reference>
4358
<Reference Include="System.Net" />
59+
<Reference Include="System.Net.Http" />
4460
<Reference Include="System.Xml.Linq" />
4561
<Reference Include="System.Data.DataSetExtensions" />
4662
<Reference Include="Microsoft.CSharp" />
@@ -74,10 +90,18 @@
7490
<Project>{3819d8a7-c62c-4c47-8ddd-0332d9ce1252}</Project>
7591
<Name>Commands.ResourceManager.Common</Name>
7692
</ProjectReference>
93+
<ProjectReference Include="..\RecoveryServices\Commands.RecoveryServices\Commands.RecoveryServices.csproj">
94+
<Project>{604260dc-b392-4cf4-81ec-34b14591e2d2}</Project>
95+
<Name>Commands.RecoveryServices</Name>
96+
</ProjectReference>
7797
<ProjectReference Include="Commands.RecoveryServices.Backup.Helpers\Commands.RecoveryServices.Backup.Helpers.csproj">
7898
<Project>{0e1d3f36-e6c8-4764-8c7d-6f9ee537490c}</Project>
7999
<Name>Commands.RecoveryServices.Backup.Helpers</Name>
80100
</ProjectReference>
101+
<ProjectReference Include="Commands.RecoveryServices.Backup.HydraAdapter\Commands.RecoveryServices.Backup.HydraAdapter.csproj">
102+
<Project>{b758fec1-35c1-4f93-a954-66dd33f6e0ec}</Project>
103+
<Name>Commands.RecoveryServices.Backup.HydraAdapter</Name>
104+
</ProjectReference>
81105
<ProjectReference Include="Commands.RecoveryServices.Backup.Models\Commands.RecoveryServices.Backup.Models.csproj">
82106
<Project>{30b92759-50b3-494e-b9f0-ec9a2ce9d57b}</Project>
83107
<Name>Commands.RecoveryServices.Backup.Models</Name>

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Models/CommonEnums.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,10 @@ public enum PsBackupProviderTypes
3737
{
3838
IaasVm = 1,
3939
}
40+
41+
public enum ContainerRegistrationStatus
42+
{
43+
Registered = 1,
44+
Registering,
45+
}
4046
}

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/Commands.RecoveryServices.Backup.Providers.csproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33+
<Reference Include="Hyak.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
34+
<SpecificVersion>False</SpecificVersion>
35+
<HintPath>..\..\..\packages\Hyak.Common.1.0.3\lib\portable-net403+win+wpa81\Hyak.Common.dll</HintPath>
36+
</Reference>
37+
<Reference Include="Microsoft.Azure.Common, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
38+
<SpecificVersion>False</SpecificVersion>
39+
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll</HintPath>
40+
</Reference>
3341
<Reference Include="Microsoft.Azure.Management.RecoveryServicesBackupManagement, Version=0.9.0.0, Culture=neutral, processorArchitecture=MSIL">
3442
<SpecificVersion>False</SpecificVersion>
3543
<HintPath>..\Commands.RecoveryServices.Backup.HydraAdapter\Resources\Microsoft.Azure.Management.RecoveryServicesBackupManagement.dll</HintPath>

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/IPsBackupProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel
2323
{
2424
public interface IPsBackupProvider
2525
{
26-
void Initialize(ProviderData providerData);
26+
void Initialize(ProviderData providerData, HydraAdapter.HydraAdapter hydraAdapter);
2727

2828
BaseRecoveryServicesJobResponse EnableProtection();
2929

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/Providers/IaasVmPsBackupProvider.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,49 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel
2222
{
2323
public class IaasVmPsBackupProvider : IPsBackupProvider
2424
{
25+
public void Initialize(ProviderData providerData, HydraAdapter.HydraAdapter hydraAdapter)
26+
{
27+
throw new NotImplementedException();
28+
}
29+
30+
public Management.RecoveryServices.Backup.Models.BaseRecoveryServicesJobResponse EnableProtection()
31+
{
32+
throw new NotImplementedException();
33+
}
34+
35+
public Management.RecoveryServices.Backup.Models.BaseRecoveryServicesJobResponse DisableProtection()
36+
{
37+
throw new NotImplementedException();
38+
}
39+
40+
public Management.RecoveryServices.Backup.Models.BaseRecoveryServicesJobResponse TriggerBackup()
41+
{
42+
throw new NotImplementedException();
43+
}
44+
45+
public Management.RecoveryServices.Backup.Models.BaseRecoveryServicesJobResponse TriggerRestore()
46+
{
47+
throw new NotImplementedException();
48+
}
49+
50+
public Management.RecoveryServices.Backup.Models.ProtectedItemResponse GetProtectedItem()
51+
{
52+
throw new NotImplementedException();
53+
}
54+
55+
public Management.RecoveryServices.Backup.Models.RecoveryPointResponse GetRecoveryPoint()
56+
{
57+
throw new NotImplementedException();
58+
}
59+
60+
public Management.RecoveryServices.Backup.Models.ProtectionPolicyResponse CreatePolicy()
61+
{
62+
throw new NotImplementedException();
63+
}
64+
65+
public Management.RecoveryServices.Backup.Models.ProtectionPolicyResponse ModifyPolicy()
66+
{
67+
throw new NotImplementedException();
68+
}
2569
}
2670
}

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/PsBackupProviderDC.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel
2222
{
2323
public class ProviderData
2424
{
25-
Dictionary<string, object> providerParameters;
25+
Dictionary<System.Enum, object> providerParameters;
2626

27-
public Dictionary<string, object> ProviderParameters
27+
public Dictionary<System.Enum, object> ProviderParameters
2828
{
2929
get
3030
{
3131
return providerParameters;
3232
}
3333
}
3434

35-
public ProviderData(Dictionary<string, object> inProviderParameters)
35+
public ProviderData(Dictionary<System.Enum, object> inProviderParameters)
3636
{
3737
providerParameters = inProviderParameters;
3838
}

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/PsBackupProviderManager.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.ProviderModel
2424
public class PsBackupProviderManager
2525
{
2626
ProviderData providerData;
27+
HydraAdapter.HydraAdapter hydraAdapter;
2728

28-
public PsBackupProviderManager(Dictionary<string, object> providerParams)
29-
{
30-
providerData = new ProviderData(providerParams);
31-
}
29+
public PsBackupProviderManager(Dictionary<System.Enum, object> providerParams, HydraAdapter.HydraAdapter hydraAdapterIn)
30+
: this(new ProviderData(providerParams), hydraAdapterIn) { }
3231

33-
public PsBackupProviderManager(ProviderData providerDataIn)
32+
public PsBackupProviderManager(ProviderData providerDataIn, HydraAdapter.HydraAdapter hydraAdapterIn)
3433
{
3534
providerData = providerDataIn;
35+
hydraAdapter = hydraAdapterIn;
3636
}
3737

3838
public IPsBackupProvider GetProviderInstance(ContainerType containerType)
@@ -74,7 +74,7 @@ public IPsBackupProvider GetProviderInstance(PsBackupProviderTypes providerType)
7474
break;
7575
}
7676

77-
psBackupProvider.Initialize(providerData);
77+
psBackupProvider.Initialize(providerData, hydraAdapter);
7878

7979
return psBackupProvider;
8080
}

src/ResourceManager/RecoveryServices.Backup/RecoveryServices.Backup.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices.B
1717
EndProject
1818
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices.Backup.Helpers", "Commands.RecoveryServices.Backup.Helpers\Commands.RecoveryServices.Backup.Helpers.csproj", "{0E1D3F36-E6C8-4764-8C7D-6F9EE537490C}"
1919
EndProject
20+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices", "..\RecoveryServices\Commands.RecoveryServices\Commands.RecoveryServices.csproj", "{604260DC-B392-4CF4-81EC-34B14591E2D2}"
21+
EndProject
2022
Global
2123
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2224
Debug|Any CPU = Debug|Any CPU
@@ -51,6 +53,10 @@ Global
5153
{0E1D3F36-E6C8-4764-8C7D-6F9EE537490C}.Debug|Any CPU.Build.0 = Debug|Any CPU
5254
{0E1D3F36-E6C8-4764-8C7D-6F9EE537490C}.Release|Any CPU.ActiveCfg = Release|Any CPU
5355
{0E1D3F36-E6C8-4764-8C7D-6F9EE537490C}.Release|Any CPU.Build.0 = Release|Any CPU
56+
{604260DC-B392-4CF4-81EC-34B14591E2D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57+
{604260DC-B392-4CF4-81EC-34B14591E2D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
58+
{604260DC-B392-4CF4-81EC-34B14591E2D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
59+
{604260DC-B392-4CF4-81EC-34B14591E2D2}.Release|Any CPU.Build.0 = Release|Any CPU
5460
EndGlobalSection
5561
GlobalSection(SolutionProperties) = preSolution
5662
HideSolutionNode = FALSE

src/ResourceManager/RecoveryServices.Backup/RecoveryServicesBackupCmdletBase.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
using Hyak.Common;
1616
using Microsoft.Azure.Commands.ResourceManager.Common;
17+
using Microsoft.Azure.Common.Authentication;
18+
using Microsoft.Azure.Common.Authentication.Models;
19+
using Microsoft.WindowsAzure.Management.Scheduler;
1720
using RecoveryServices.Backup.Properties;
1821
using System;
1922
using System.Collections.Generic;
@@ -22,6 +25,7 @@
2225
using System.Net;
2326
using System.Text;
2427
using System.Threading.Tasks;
28+
using HydraAdapterNS = Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.HydraAdapter;
2529

2630
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
2731
{
@@ -30,9 +34,12 @@ namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets
3034
/// </summary>
3135
public abstract class RecoveryServicesBackupCmdletBase : AzureRMCmdlet
3236
{
37+
protected HydraAdapterNS.HydraAdapter HydraAdapter { get; set; }
38+
3339
protected void InitializeAzureBackupCmdlet(string resourceGroupName, string resourceName)
3440
{
35-
41+
var cloudServicesClient = AzureSession.ClientFactory.CreateClient<CloudServiceManagementClient>(DefaultContext, AzureEnvironment.Endpoint.ResourceManager);
42+
HydraAdapter = new HydraAdapterNS.HydraAdapter(cloudServicesClient.Credentials, cloudServicesClient.BaseUri);
3643
}
3744

3845
protected void ExecutionBlock(Action action)

0 commit comments

Comments
 (0)