Skip to content

Update Powershell Autogenerator for VMSS #43

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 5 commits into from
Oct 12, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -133,7 +133,11 @@ function Test-VirtualMachineScaleSet

# List All
Write-Verbose ('Running Command : ' + 'Get-AzureVMSSAllList');
$vmssList = Get-AzureVMSSAllList -VirtualMachineScaleSetListAllParameters $null;

$argList = New-AzureComputeArgumentList -MethodName VirtualMachineScaleSetListAll;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this parameter not used anymore?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

$args = ($argList | select -ExpandProperty Value);
#$vmssList = Invoke-AzureComputeMethod -MethodName VirtualMachineScaleSetListAll -ArgumentList $args;
$vmssList = Get-AzureVMSSAllList;
Assert-True { ($vmssList.VirtualMachineScaleSets | select -ExpandProperty Name) -contains $vmss.Name };
$output = $vmssList | Out-String;
Write-Verbose ($output);
Expand All @@ -155,12 +159,14 @@ function Test-VirtualMachineScaleSet
Assert-True { $output.Contains("VirtualMachineScaleSetSku") };

# List All VMs
$vmListParams = New-AzureComputeParameterObject -FriendlyName VirtualMachineScaleSetVMListParameters;
$vmListParams.ResourceGroupName = $rgname;
$vmListParams.VirtualMachineScaleSetName = $vmss.Name;

Write-Verbose ('Running Command : ' + 'Get-AzureVMSSVMList');
$vmListResult = Get-AzureVMSSVMList -VirtualMachineScaleSetVMListParameters $vmListParams;

$argList = New-AzureComputeArgumentList -MethodName VirtualMachineScaleSetVMList;
$argList[2].Value = $rgname;
$argList[4].Value = $vmss.Name;
$args = ($argList | select -ExpandProperty Value);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

#$vmListResult = Invoke-AzureComputeMethod -MethodName VirtualMachineScaleSetVMList -ArgumentList $args;
$vmListResult = Get-AzureVMSSVMList -ResourceGroupName $rgname -VirtualMachineScaleSetName $vmss.Name;
$output = $vmListResult | Out-String;
Write-Verbose ($output);
Assert-True { $output.Contains("VirtualMachineScaleSetVM") };
Expand Down Expand Up @@ -202,11 +208,23 @@ function Test-VirtualMachineScaleSet
$st = Start-AzureVMSS -ResourceGroupName $rgname -VMScaleSetName $vmss.Name;
$st = Restart-AzureVMSS -ResourceGroupName $rgname -VMScaleSetName $vmss.Name;

$instanceListParam = New-AzureComputeParameterObject -FriendlyName VirtualMachineScaleSetVMInstanceIDs;
$instanceListParam = @();
for ($i = 0; $i -lt $vmList.Count; $i++)
{
$instanceListParam.InstanceIDs.Add($i);
$instanceListParam += $i.ToString();
}

$argList = New-AzureComputeArgumentList -MethodName VirtualMachineScaleSetPowerOffInstances;
$argList[0].Value = $rgname;
$argList[1].Value = $vmss.Name;
$argList[2].Value = $instanceListParam;
$args = @()
for ($i = 0; $i -lt $argList.Length; $i++)
{
$args += , $argList[$i].Value;
}

#$vmssResult = Invoke-AzureComputeMethod -MethodName VirtualMachineScaleSetPowerOffInstances -ArgumentList $args;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why commented out?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm testing both Invoke-AzureComputeMethod and the cmdlets itself. I don't have the subscription for VMSS, so I tested both using playback mode, and that is why I commented out Invoke-AzureComputeMethod part after I testing it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since there are some breaking changes on the service side, maybe we shall re-record the tests sometime. Thanks~

$st = Stop-AzureVMSSInstances -ResourceGroupName $rgname -VMScaleSetName $vmss.Name -VMInstanceIDs $instanceListParam;
$st = Stop-AzureVMSSInstancesWithDeallocation -ResourceGroupName $rgname -VMScaleSetName $vmss.Name -VMInstanceIDs $instanceListParam;
$st = Start-AzureVMSSInstances -ResourceGroupName $rgname -VMScaleSetName $vmss.Name -VMInstanceIDs $instanceListParam;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ protected static PSArgument[] ConvertFromObjectsToArguments(string[] names, obje

protected static object[] ConvertFromArgumentsToObjects(object[] arguments)
{
if (arguments == null)
{
return null;
}

var objects = new object[arguments.Length];

for (int index = 0; index < arguments.Length; index++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected object CreateVirtualMachineScaleSetCreateOrUpdateDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -49,7 +49,7 @@ protected object CreateVirtualMachineScaleSetCreateOrUpdateDynamicParameters()

var pParameters = new RuntimeDefinedParameter();
pParameters.Name = "VirtualMachineScaleSetCreateOrUpdateParameters";
pParameters.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSet);
pParameters.ParameterType = typeof(VirtualMachineScaleSet);
pParameters.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down Expand Up @@ -91,11 +91,13 @@ protected PSArgument[] CreateVirtualMachineScaleSetCreateOrUpdateParameters()
string resourceGroupName = string.Empty;
VirtualMachineScaleSet parameters = new VirtualMachineScaleSet();

return ConvertFromObjectsToArguments(new string[] { "ResourceGroupName", "Parameters" }, new object[] { resourceGroupName, parameters });
return ConvertFromObjectsToArguments(
new string[] { "ResourceGroupName", "Parameters" },
new object[] { resourceGroupName, parameters });
}
}

[Cmdlet("New", "AzureVMSS")]
[Cmdlet("New", "AzureVmss", DefaultParameterSetName = "InvokeByDynamicParameters")]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why Vmss not VMSS?

public partial class NewAzureVMSS : InvokeAzureComputeMethodCmdlet
{
public NewAzureVMSS()
Expand All @@ -115,7 +117,7 @@ public override object GetDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -127,7 +129,7 @@ public override object GetDynamicParameters()

var pParameters = new RuntimeDefinedParameter();
pParameters.Name = "VirtualMachineScaleSetCreateOrUpdateParameters";
pParameters.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSet);
pParameters.ParameterType = typeof(VirtualMachineScaleSet);
pParameters.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected object CreateVirtualMachineScaleSetDeallocateInstancesDynamicParameter
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -49,7 +49,7 @@ protected object CreateVirtualMachineScaleSetDeallocateInstancesDynamicParameter

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -61,7 +61,7 @@ protected object CreateVirtualMachineScaleSetDeallocateInstancesDynamicParameter

var pVMInstanceIDs = new RuntimeDefinedParameter();
pVMInstanceIDs.Name = "VMInstanceIDs";
pVMInstanceIDs.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMInstanceIDs);
pVMInstanceIDs.ParameterType = typeof(string[]);
pVMInstanceIDs.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down Expand Up @@ -90,7 +90,9 @@ protected void ExecuteVirtualMachineScaleSetDeallocateInstancesMethod(object[] i
{
string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
string vmScaleSetName = (string)ParseParameter(invokeMethodInputParameters[1]);
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = (VirtualMachineScaleSetVMInstanceIDs)ParseParameter(invokeMethodInputParameters[2]);
var inputArray2 = Array.ConvertAll((object[]) ParseParameter(invokeMethodInputParameters[2]), e => e.ToString());
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
vmInstanceIDs.InstanceIDs = inputArray2.ToList();

var result = VirtualMachineScaleSetClient.DeallocateInstances(resourceGroupName, vmScaleSetName, vmInstanceIDs);
WriteObject(result);
Expand All @@ -103,13 +105,15 @@ protected PSArgument[] CreateVirtualMachineScaleSetDeallocateInstancesParameters
{
string resourceGroupName = string.Empty;
string vmScaleSetName = string.Empty;
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
var vmInstanceIDs = new string[0];

return ConvertFromObjectsToArguments(new string[] { "ResourceGroupName", "VMScaleSetName", "VMInstanceIDs" }, new object[] { resourceGroupName, vmScaleSetName, vmInstanceIDs });
return ConvertFromObjectsToArguments(
new string[] { "ResourceGroupName", "VMScaleSetName", "VMInstanceIDs" },
new object[] { resourceGroupName, vmScaleSetName, vmInstanceIDs });
}
}

[Cmdlet("Stop", "AzureVMSSInstancesWithDeallocation")]
[Cmdlet("Stop", "AzureVmssInstancesWithDeallocation", DefaultParameterSetName = "InvokeByDynamicParameters")]
public partial class StopAzureVMSSInstancesWithDeallocation : InvokeAzureComputeMethodCmdlet
{
public StopAzureVMSSInstancesWithDeallocation()
Expand All @@ -129,7 +133,7 @@ public override object GetDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -141,7 +145,7 @@ public override object GetDynamicParameters()

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -153,7 +157,7 @@ public override object GetDynamicParameters()

var pVMInstanceIDs = new RuntimeDefinedParameter();
pVMInstanceIDs.Name = "VMInstanceIDs";
pVMInstanceIDs.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMInstanceIDs);
pVMInstanceIDs.ParameterType = typeof(string[]);
pVMInstanceIDs.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected object CreateVirtualMachineScaleSetDeallocateDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -49,7 +49,7 @@ protected object CreateVirtualMachineScaleSetDeallocateDynamicParameters()

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down Expand Up @@ -91,11 +91,13 @@ protected PSArgument[] CreateVirtualMachineScaleSetDeallocateParameters()
string resourceGroupName = string.Empty;
string vmScaleSetName = string.Empty;

return ConvertFromObjectsToArguments(new string[] { "ResourceGroupName", "VMScaleSetName" }, new object[] { resourceGroupName, vmScaleSetName });
return ConvertFromObjectsToArguments(
new string[] { "ResourceGroupName", "VMScaleSetName" },
new object[] { resourceGroupName, vmScaleSetName });
}
}

[Cmdlet("Stop", "AzureVMSSWithDeallocation")]
[Cmdlet("Stop", "AzureVmssWithDeallocation", DefaultParameterSetName = "InvokeByDynamicParameters")]
public partial class StopAzureVMSSWithDeallocation : InvokeAzureComputeMethodCmdlet
{
public StopAzureVMSSWithDeallocation()
Expand All @@ -115,7 +117,7 @@ public override object GetDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -127,7 +129,7 @@ public override object GetDynamicParameters()

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected object CreateVirtualMachineScaleSetDeleteInstancesDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -49,7 +49,7 @@ protected object CreateVirtualMachineScaleSetDeleteInstancesDynamicParameters()

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -61,7 +61,7 @@ protected object CreateVirtualMachineScaleSetDeleteInstancesDynamicParameters()

var pVMInstanceIDs = new RuntimeDefinedParameter();
pVMInstanceIDs.Name = "VMInstanceIDs";
pVMInstanceIDs.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMInstanceIDs);
pVMInstanceIDs.ParameterType = typeof(string[]);
pVMInstanceIDs.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down Expand Up @@ -90,7 +90,9 @@ protected void ExecuteVirtualMachineScaleSetDeleteInstancesMethod(object[] invok
{
string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]);
string vmScaleSetName = (string)ParseParameter(invokeMethodInputParameters[1]);
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = (VirtualMachineScaleSetVMInstanceIDs)ParseParameter(invokeMethodInputParameters[2]);
var inputArray2 = Array.ConvertAll((object[]) ParseParameter(invokeMethodInputParameters[2]), e => e.ToString());
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
vmInstanceIDs.InstanceIDs = inputArray2.ToList();

var result = VirtualMachineScaleSetClient.DeleteInstances(resourceGroupName, vmScaleSetName, vmInstanceIDs);
WriteObject(result);
Expand All @@ -103,13 +105,15 @@ protected PSArgument[] CreateVirtualMachineScaleSetDeleteInstancesParameters()
{
string resourceGroupName = string.Empty;
string vmScaleSetName = string.Empty;
VirtualMachineScaleSetVMInstanceIDs vmInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs();
var vmInstanceIDs = new string[0];

return ConvertFromObjectsToArguments(new string[] { "ResourceGroupName", "VMScaleSetName", "VMInstanceIDs" }, new object[] { resourceGroupName, vmScaleSetName, vmInstanceIDs });
return ConvertFromObjectsToArguments(
new string[] { "ResourceGroupName", "VMScaleSetName", "VMInstanceIDs" },
new object[] { resourceGroupName, vmScaleSetName, vmInstanceIDs });
}
}

[Cmdlet("Remove", "AzureVMSSInstances")]
[Cmdlet("Remove", "AzureVmssInstances", DefaultParameterSetName = "InvokeByDynamicParameters")]
public partial class RemoveAzureVMSSInstances : InvokeAzureComputeMethodCmdlet
{
public RemoveAzureVMSSInstances()
Expand All @@ -129,7 +133,7 @@ public override object GetDynamicParameters()
dynamicParameters = new RuntimeDefinedParameterDictionary();
var pResourceGroupName = new RuntimeDefinedParameter();
pResourceGroupName.Name = "ResourceGroupName";
pResourceGroupName.ParameterType = typeof(System.String);
pResourceGroupName.ParameterType = typeof(string);
pResourceGroupName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -141,7 +145,7 @@ public override object GetDynamicParameters()

var pVMScaleSetName = new RuntimeDefinedParameter();
pVMScaleSetName.Name = "VMScaleSetName";
pVMScaleSetName.ParameterType = typeof(System.String);
pVMScaleSetName.ParameterType = typeof(string);
pVMScaleSetName.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand All @@ -153,7 +157,7 @@ public override object GetDynamicParameters()

var pVMInstanceIDs = new RuntimeDefinedParameter();
pVMInstanceIDs.Name = "VMInstanceIDs";
pVMInstanceIDs.ParameterType = typeof(Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMInstanceIDs);
pVMInstanceIDs.ParameterType = typeof(string[]);
pVMInstanceIDs.Attributes.Add(new ParameterAttribute
{
ParameterSetName = "InvokeByDynamicParameters",
Expand Down
Loading