Skip to content

Commit 07acc17

Browse files
committed
Adding support for -All for Import DC, Start Migration Plan and Confirm Migration status cmdlets (also, deprecating support for empty/NULL values of LegacyContainerNames parameter for the same).
1 parent eb5a412 commit 07acc17

File tree

4 files changed

+57
-12
lines changed

4 files changed

+57
-12
lines changed

src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/Migration/ConfirmAzureStorSimpleLegacyVolumeContainerStatus.cs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ namespace Microsoft.WindowsAzure.Commands.StorSimple.Cmdlets
2626
[Cmdlet(VerbsLifecycle.Confirm, "AzureStorSimpleLegacyVolumeContainerStatus")]
2727
public class ConfirmAzureStorSimpleLegacyVolumeContainerStatus : StorSimpleCmdletBase
2828
{
29+
public const string AllContainers = "ALL";
30+
public const string SpecificContainers = "DCSpecific";
31+
2932
[Parameter(Mandatory = true, Position = 0, HelpMessage = StorSimpleCmdletHelpMessage.MigrationConfigId)]
3033
[ValidateNotNullOrEmpty]
3134
public string LegacyConfigId { get; set; }
@@ -34,20 +37,32 @@ public class ConfirmAzureStorSimpleLegacyVolumeContainerStatus : StorSimpleCmdle
3437
[ValidateSet("Commit", "Rollback", IgnoreCase = true)]
3538
public string MigrationOperation { get; set; }
3639

37-
[Parameter(Mandatory = false, Position = 2,
40+
[Parameter(Mandatory = true, Position = 2, ParameterSetName = SpecificContainers,
3841
HelpMessage = StorSimpleCmdletHelpMessage.MigrationLegacyDataContainers)]
3942
public string[] LegacyContainerNames { get; set; }
4043

44+
[Parameter(Mandatory = true, Position = 2, ParameterSetName = AllContainers,
45+
HelpMessage = StorSimpleCmdletHelpMessage.MigrationAllContainers)]
46+
public SwitchParameter All { get; set; }
47+
4148
public override void ExecuteCmdlet()
4249
{
4350
try
4451
{
4552
var confirmMigrationRequest = new MigrationConfirmStatusRequest();
4653
confirmMigrationRequest.Operation =
4754
(MigrationOperation) Enum.Parse(typeof (MigrationOperation), MigrationOperation, true);
48-
confirmMigrationRequest.DataContainerNameList = (null != LegacyContainerNames)
49-
? new List<string>(LegacyContainerNames.ToList().Distinct(StringComparer.InvariantCultureIgnoreCase))
50-
: new List<string>();
55+
if (All.IsPresent)
56+
{
57+
confirmMigrationRequest.DataContainerNameList = new List<string>();
58+
}
59+
else
60+
{
61+
confirmMigrationRequest.DataContainerNameList =
62+
new List<string>(LegacyContainerNames.ToList().Distinct(
63+
StringComparer.InvariantCultureIgnoreCase));
64+
}
65+
5166
var status = StorSimpleClient.ConfirmLegacyVolumeContainerStatus(LegacyConfigId, confirmMigrationRequest);
5267
MigrationCommonModelFormatter opFormatter = new MigrationCommonModelFormatter();
5368
WriteObject(opFormatter.GetResultMessage(Resources.ConfirmMigrationSuccessMessage, status));

src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/Migration/ImportAzureStorSimpleLegacyVolumeContainer.cs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,21 @@ namespace Microsoft.WindowsAzure.Commands.StorSimple.Cmdlets
2525
[Cmdlet(VerbsData.Import, "AzureStorSimpleLegacyVolumeContainer")]
2626
public class ImportAzureStorSimpleLegacyVolumeContainer : StorSimpleCmdletBase
2727
{
28+
public const string AllContainers = "ALL";
29+
public const string SpecificContainers = "DCSpecific";
30+
2831
[Parameter(Mandatory = true, Position = 0, HelpMessage = StorSimpleCmdletHelpMessage.MigrationConfigId)]
2932
[ValidateNotNullOrEmpty]
3033
public string LegacyConfigId { get; set; }
3134

32-
[Parameter(Mandatory = false, Position = 1,
35+
[Parameter(Mandatory = true, Position = 1, ParameterSetName = SpecificContainers,
3336
HelpMessage = StorSimpleCmdletHelpMessage.MigrationLegacyDataContainers)]
3437
public string[] LegacyContainerNames { get; set; }
3538

39+
[Parameter(Mandatory = true, Position = 1, ParameterSetName = AllContainers,
40+
HelpMessage = StorSimpleCmdletHelpMessage.MigrationAllContainers)]
41+
public SwitchParameter All { get; set; }
42+
3643
[Parameter(Mandatory = false, Position = 2,
3744
HelpMessage = StorSimpleCmdletHelpMessage.MigrationImportDCWithSkipACRs)]
3845
public SwitchParameter SkipACRs { get; set; }
@@ -45,9 +52,17 @@ public override void ExecuteCmdlet()
4552
try
4653
{
4754
var importDataContainerRequest = new MigrationImportDataContainerRequest();
48-
importDataContainerRequest.DataContainerNames = (null != LegacyContainerNames)
49-
? new List<string>(LegacyContainerNames.ToList().Distinct(StringComparer.InvariantCultureIgnoreCase))
50-
: new List<string>();
55+
if(All.IsPresent)
56+
{
57+
importDataContainerRequest.DataContainerNames = new List<string>();
58+
}
59+
else
60+
{
61+
importDataContainerRequest.DataContainerNames =
62+
new List<string>(LegacyContainerNames.ToList().Distinct(
63+
StringComparer.InvariantCultureIgnoreCase));
64+
}
65+
5166
importDataContainerRequest.ForceOnOtherDevice = Force.IsPresent;
5267
importDataContainerRequest.SkipACRs = SkipACRs.IsPresent;
5368

src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/Migration/StartAzureStorSimpleLegacyVolumeContainerMigrationPlan.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,37 @@ namespace Microsoft.WindowsAzure.Commands.StorSimple.Cmdlets
2525
[Cmdlet(VerbsLifecycle.Start, "AzureStorSimpleLegacyVolumeContainerMigrationPlan")]
2626
public class StartAzureStorSimpleLegacyVolumeContainerMigrationPlan : StorSimpleCmdletBase
2727
{
28+
public const string AllContainers = "ALL";
29+
public const string SpecificContainers = "DCSpecific";
30+
2831
[Parameter(Mandatory = true, Position = 0, HelpMessage = StorSimpleCmdletHelpMessage.MigrationConfigId)]
2932
[ValidateNotNullOrEmpty]
3033
public string LegacyConfigId { get; set; }
3134

32-
[Parameter(Mandatory = false, Position = 1,
35+
[Parameter(Mandatory = true, Position = 1, ParameterSetName = SpecificContainers,
3336
HelpMessage = StorSimpleCmdletHelpMessage.MigrationLegacyDataContainers)]
3437
public string[] LegacyContainerNames { get; set; }
3538

39+
[Parameter(Mandatory = true, Position = 1, ParameterSetName = AllContainers,
40+
HelpMessage = StorSimpleCmdletHelpMessage.MigrationAllContainers)]
41+
public SwitchParameter All { get; set; }
42+
3643
public override void ExecuteCmdlet()
3744
{
3845
try
3946
{
4047
var startMigrationPlanRequest = new MigrationPlanStartRequest();
4148
startMigrationPlanRequest.ConfigId = LegacyConfigId;
42-
startMigrationPlanRequest.DataContainerNameList = (null != LegacyContainerNames)
43-
? new List<string>(LegacyContainerNames.ToList().Distinct(StringComparer.InvariantCultureIgnoreCase))
44-
: new List<string>();
49+
if (All.IsPresent)
50+
{
51+
startMigrationPlanRequest.DataContainerNameList = new List<string>();
52+
}
53+
else
54+
{
55+
startMigrationPlanRequest.DataContainerNameList =
56+
new List<string>(LegacyContainerNames.ToList().Distinct(
57+
StringComparer.InvariantCultureIgnoreCase));
58+
}
4559

4660
var status = StorSimpleClient.StartLegacyVolumeContainerMigrationPlan(startMigrationPlanRequest);
4761
MigrationCommonModelFormatter opFormatter = new MigrationCommonModelFormatter();

src/ServiceManagement/StorSimple/Commands.StorSimple/StorSimpleCmdletHelpMessage.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ internal static class StorSimpleCmdletHelpMessage
127127
public const string MigrationTargetDevice = "The target appliance to which migration needs to be performed";
128128
public const string MigrationConfigDecryptionKey = "The key to decrypt the legacy appliance config file";
129129
public const string MigrationLegacyDataContainers = "Names of data containers to be migrated seperated by ','";
130+
public const string MigrationAllContainers = "All data containers will be considered for migration";
130131
public const string MigrationConfigId = "Legacy config id";
131132
public const string MigrationOperation = "Commit or Rollback";
132133
public const string MigrationImportDCByForce = "Force import data container on a different device even if data container has been imported on a different device";

0 commit comments

Comments
 (0)