Skip to content

Commit

Permalink
ImageName completer.
Browse files Browse the repository at this point in the history
  • Loading branch information
sergey-shandar committed Dec 5, 2017
1 parent 3cb9ccf commit 6831544
Showing 1 changed file with 29 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ namespace Microsoft.Azure.Commands.Compute
public class NewAzureVMCommand : VirtualMachineBaseCmdlet
{
public const string DefaultParameterSet = "DefaultParameterSet";
public const string StrategyParameterSet = "StrategyParameterSet";
public const string SimpleParameterSet = "SimpleParameterSet";

[Parameter(
ParameterSetName = DefaultParameterSet,
Expand All @@ -57,7 +57,7 @@ public class NewAzureVMCommand : VirtualMachineBaseCmdlet
ValueFromPipelineByPropertyName = true)]
[ResourceGroupCompleter()]
[Parameter(
ParameterSetName = StrategyParameterSet,
ParameterSetName = SimpleParameterSet,
Mandatory = false)]
[ValidateNotNullOrEmpty]
public string ResourceGroupName { get; set; }
Expand All @@ -68,7 +68,7 @@ public class NewAzureVMCommand : VirtualMachineBaseCmdlet
Position = 1,
ValueFromPipelineByPropertyName = true)]
[Parameter(
ParameterSetName = StrategyParameterSet,
ParameterSetName = SimpleParameterSet,
Mandatory = false)]
[LocationCompleter("Microsoft.Compute/virtualMachines")]
[ValidateNotNullOrEmpty]
Expand Down Expand Up @@ -112,53 +112,65 @@ public class NewAzureVMCommand : VirtualMachineBaseCmdlet
public string LicenseType { get; set; }

[Parameter(
ParameterSetName = StrategyParameterSet,
ParameterSetName = SimpleParameterSet,
Mandatory = true)]
[ValidateNotNullOrEmpty]
public string Name { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = true)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = true)]
public PSCredential Credential { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string VirtualNetworkName { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string AddressPrefix { get; set; } = "192.168.0.0/16";

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string SubnetName { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string SubnetAddressPrefix { get; set; } = "192.168.1.0/24";

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string PublicIpAddressName { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string DomainNameLabel { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
[ValidateSet("Static", "Dynamic")]
public string AllocationMethod { get; set; } = "Static";

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string SecurityGroupName { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public int[] OpenPorts { get; set; }

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
[PSArgumentCompleter(
"CentOS",
"CoreOS",
"Debian",
"openSUSE-Leap",
"RHEL",
"SLES",
"UbuntuLTS",
"Win2016Datacenter",
"Win2012R2Datacenter",
"Win2012Datacenter",
"Win2008R2SP1")]
public string ImageName { get; set; } = "Win2016Datacenter";

[Parameter(ParameterSetName = StrategyParameterSet, Mandatory = false)]
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = false)]
public string Size { get; set; } = "Standard_DS1_v2";

public override void ExecuteCmdlet()
{
switch (ParameterSetName)
{
case StrategyParameterSet:
case SimpleParameterSet:
this.StartAndWait(StrategyExecuteCmdletAsync);
break;
default:
Expand Down

0 comments on commit 6831544

Please sign in to comment.