From 174b580a144d3e4116b253109f23a5aaa637f8b5 Mon Sep 17 00:00:00 2001 From: huangpf Date: Tue, 23 Feb 2016 11:56:12 -0800 Subject: [PATCH] Combine InstanceView Methods --- .../VirtualMachineScaleSetTests.ps1 | 6 +- ...ualMachineScaleSetGetInstanceViewMethod.cs | 58 --------------- .../VirtualMachineScaleSetGetMethod.cs | 45 +++++++++++- ...lMachineScaleSetVMGetInstanceViewMethod.cs | 70 ------------------- .../VirtualMachineScaleSetVMGetMethod.cs | 51 +++++++++++++- .../Automation/Generate-FunctionCommand.ps1 | 2 +- .../Automation/Import-CommonVariables.ps1 | 2 +- .../Automation/RunCodeGeneration.ps1 | 34 ++++++--- 8 files changed, 124 insertions(+), 144 deletions(-) diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.ps1 index 095d925e18f1..e17aa4e9dc5e 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineScaleSetTests.ps1 @@ -29,11 +29,9 @@ Add-AzureRmVmssPublicKey 1.2.3 AzureRM.Compute Add-AzureRmVmssSecret 1.2.3 AzureRM.Compute Get-AzureRmVmss 1.2.3 AzureRM.Compute Get-AzureRmVmssAllList 1.2.3 AzureRM.Compute -Get-AzureRmVmssInstanceView 1.2.3 AzureRM.Compute Get-AzureRmVmssList 1.2.3 AzureRM.Compute Get-AzureRmVmssSkusList 1.2.3 AzureRM.Compute Get-AzureRmVmssVM 1.2.3 AzureRM.Compute -Get-AzureRmVmssVMInstanceView 1.2.3 AzureRM.Compute Get-AzureRmVmssVMList 1.2.3 AzureRM.Compute New-AzureRmVmss 1.2.3 AzureRM.Compute New-AzureRmVmssConfig 1.2.3 AzureRM.Compute @@ -169,8 +167,8 @@ function Test-VirtualMachineScaleSet Write-Verbose ($output); Assert-True { $output.Contains("StorageProfile") }; - Write-Verbose ('Running Command : ' + 'Get-AzureRmVmssVMInstanceView'); - $vmInstance = Get-AzureRmVmssVMInstanceView -ResourceGroupName $rgname -VMScaleSetName $vmssName -InstanceId $i; + Write-Verbose ('Running Command : ' + 'Get-AzureRmVmssVM -InstanceView'); + $vmInstance = Get-AzureRmVmssVM -InstanceView -ResourceGroupName $rgname -VMScaleSetName $vmssName -InstanceId $i; Assert-NotNull $vmInstance; $output = $vmInstance | Out-String; Write-Verbose($output); diff --git a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetInstanceViewMethod.cs b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetInstanceViewMethod.cs index 169e85d02965..d3e9f2a9bf01 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetInstanceViewMethod.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetInstanceViewMethod.cs @@ -96,62 +96,4 @@ protected PSArgument[] CreateVirtualMachineScaleSetGetInstanceViewParameters() new object[] { resourceGroupName, vmScaleSetName }); } } - - [Cmdlet("Get", "AzureRmVmssInstanceView", DefaultParameterSetName = "InvokeByDynamicParameters")] - public partial class GetAzureRmVMSSInstanceView : InvokeAzureComputeMethodCmdlet - { - public GetAzureRmVMSSInstanceView() - { - } - - public override string MethodName { get; set; } - - protected override void ProcessRecord() - { - this.MethodName = "VirtualMachineScaleSetGetInstanceView"; - base.ProcessRecord(); - } - - public override object GetDynamicParameters() - { - dynamicParameters = new RuntimeDefinedParameterDictionary(); - var pResourceGroupName = new RuntimeDefinedParameter(); - pResourceGroupName.Name = "ResourceGroupName"; - pResourceGroupName.ParameterType = typeof(string); - pResourceGroupName.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByDynamicParameters", - Position = 1, - Mandatory = false - }); - pResourceGroupName.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("ResourceGroupName", pResourceGroupName); - - var pVMScaleSetName = new RuntimeDefinedParameter(); - pVMScaleSetName.Name = "VMScaleSetName"; - pVMScaleSetName.ParameterType = typeof(string); - pVMScaleSetName.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByDynamicParameters", - Position = 2, - Mandatory = false - }); - pVMScaleSetName.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("VMScaleSetName", pVMScaleSetName); - - var pArgumentList = new RuntimeDefinedParameter(); - pArgumentList.Name = "ArgumentList"; - pArgumentList.ParameterType = typeof(object[]); - pArgumentList.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByStaticParameters", - Position = 3, - Mandatory = true - }); - pArgumentList.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("ArgumentList", pArgumentList); - - return dynamicParameters; - } - } } diff --git a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetMethod.cs b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetMethod.cs index 24ee7c9dfa74..cda400121c0d 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetMethod.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSet/VirtualMachineScaleSetGetMethod.cs @@ -108,7 +108,14 @@ public GetAzureRmVMSS() protected override void ProcessRecord() { - this.MethodName = "VirtualMachineScaleSetGet"; + if (this.ParameterSetName == "InvokeByDynamicParameters") + { + this.MethodName = "VirtualMachineScaleSetGet"; + } + else + { + this.MethodName = "VirtualMachineScaleSetGetInstanceView"; + } base.ProcessRecord(); } @@ -124,6 +131,12 @@ public override object GetDynamicParameters() Position = 1, Mandatory = false }); + pResourceGroupName.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 1, + Mandatory = false + }); pResourceGroupName.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("ResourceGroupName", pResourceGroupName); @@ -136,6 +149,12 @@ public override object GetDynamicParameters() Position = 2, Mandatory = false }); + pVMScaleSetName.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 2, + Mandatory = false + }); pVMScaleSetName.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("VMScaleSetName", pVMScaleSetName); @@ -148,9 +167,33 @@ public override object GetDynamicParameters() Position = 3, Mandatory = true }); + pArgumentList.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByStaticParametersForFriendMethod", + Position = 3, + Mandatory = true + }); pArgumentList.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("ArgumentList", pArgumentList); + var pInstanceView = new RuntimeDefinedParameter(); + pInstanceView.Name = "InstanceView"; + pInstanceView.ParameterType = typeof(SwitchParameter); + pInstanceView.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 3, + Mandatory = true + }); + pInstanceView.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByStaticParametersForFriendMethod", + Position = 4, + Mandatory = true + }); + pInstanceView.Attributes.Add(new AllowNullAttribute()); + dynamicParameters.Add("InstanceView", pInstanceView); + return dynamicParameters; } } diff --git a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetInstanceViewMethod.cs b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetInstanceViewMethod.cs index bcc525117a62..15463a8e99aa 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetInstanceViewMethod.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetInstanceViewMethod.cs @@ -110,74 +110,4 @@ protected PSArgument[] CreateVirtualMachineScaleSetVMGetInstanceViewParameters() new object[] { resourceGroupName, vmScaleSetName, instanceId }); } } - - [Cmdlet("Get", "AzureRmVmssVMInstanceView", DefaultParameterSetName = "InvokeByDynamicParameters")] - public partial class GetAzureRmVMSSVMInstanceView : InvokeAzureComputeMethodCmdlet - { - public GetAzureRmVMSSVMInstanceView() - { - } - - public override string MethodName { get; set; } - - protected override void ProcessRecord() - { - this.MethodName = "VirtualMachineScaleSetVMGetInstanceView"; - base.ProcessRecord(); - } - - public override object GetDynamicParameters() - { - dynamicParameters = new RuntimeDefinedParameterDictionary(); - var pResourceGroupName = new RuntimeDefinedParameter(); - pResourceGroupName.Name = "ResourceGroupName"; - pResourceGroupName.ParameterType = typeof(string); - pResourceGroupName.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByDynamicParameters", - Position = 1, - Mandatory = false - }); - pResourceGroupName.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("ResourceGroupName", pResourceGroupName); - - var pVMScaleSetName = new RuntimeDefinedParameter(); - pVMScaleSetName.Name = "VMScaleSetName"; - pVMScaleSetName.ParameterType = typeof(string); - pVMScaleSetName.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByDynamicParameters", - Position = 2, - Mandatory = false - }); - pVMScaleSetName.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("VMScaleSetName", pVMScaleSetName); - - var pInstanceId = new RuntimeDefinedParameter(); - pInstanceId.Name = "InstanceId"; - pInstanceId.ParameterType = typeof(string); - pInstanceId.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByDynamicParameters", - Position = 3, - Mandatory = false - }); - pInstanceId.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("InstanceId", pInstanceId); - - var pArgumentList = new RuntimeDefinedParameter(); - pArgumentList.Name = "ArgumentList"; - pArgumentList.ParameterType = typeof(object[]); - pArgumentList.Attributes.Add(new ParameterAttribute - { - ParameterSetName = "InvokeByStaticParameters", - Position = 4, - Mandatory = true - }); - pArgumentList.Attributes.Add(new AllowNullAttribute()); - dynamicParameters.Add("ArgumentList", pArgumentList); - - return dynamicParameters; - } - } } diff --git a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetMethod.cs b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetMethod.cs index ecb5cf17c4a8..9ed0bf88a581 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetMethod.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Generated/VirtualMachineScaleSetVM/VirtualMachineScaleSetVMGetMethod.cs @@ -122,7 +122,14 @@ public GetAzureRmVMSSVM() protected override void ProcessRecord() { - this.MethodName = "VirtualMachineScaleSetVMGet"; + if (this.ParameterSetName == "InvokeByDynamicParameters") + { + this.MethodName = "VirtualMachineScaleSetVMGet"; + } + else + { + this.MethodName = "VirtualMachineScaleSetVMGetInstanceView"; + } base.ProcessRecord(); } @@ -138,6 +145,12 @@ public override object GetDynamicParameters() Position = 1, Mandatory = false }); + pResourceGroupName.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 1, + Mandatory = false + }); pResourceGroupName.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("ResourceGroupName", pResourceGroupName); @@ -150,6 +163,12 @@ public override object GetDynamicParameters() Position = 2, Mandatory = false }); + pVMScaleSetName.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 2, + Mandatory = false + }); pVMScaleSetName.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("VMScaleSetName", pVMScaleSetName); @@ -162,6 +181,12 @@ public override object GetDynamicParameters() Position = 3, Mandatory = false }); + pInstanceId.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 3, + Mandatory = false + }); pInstanceId.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("InstanceId", pInstanceId); @@ -174,9 +199,33 @@ public override object GetDynamicParameters() Position = 4, Mandatory = true }); + pArgumentList.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByStaticParametersForFriendMethod", + Position = 4, + Mandatory = true + }); pArgumentList.Attributes.Add(new AllowNullAttribute()); dynamicParameters.Add("ArgumentList", pArgumentList); + var pInstanceView = new RuntimeDefinedParameter(); + pInstanceView.Name = "InstanceView"; + pInstanceView.ParameterType = typeof(SwitchParameter); + pInstanceView.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByDynamicParametersForFriendMethod", + Position = 4, + Mandatory = true + }); + pInstanceView.Attributes.Add(new ParameterAttribute + { + ParameterSetName = "InvokeByStaticParametersForFriendMethod", + Position = 5, + Mandatory = true + }); + pInstanceView.Attributes.Add(new AllowNullAttribute()); + dynamicParameters.Add("InstanceView", pInstanceView); + return dynamicParameters; } } diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Generate-FunctionCommand.ps1 b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Generate-FunctionCommand.ps1 index 5788f61ac36a..77e5b46f4892 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Generate-FunctionCommand.ps1 +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Generate-FunctionCommand.ps1 @@ -800,7 +800,7 @@ function Get-VerbNounCmdletCode } else { - $param_name = $expose_param_name = 'Friend'; + $param_name = $expose_param_name = $FriendMethodInfo.Name.Replace($methodName, ''); } $param_type_full_name = 'SwitchParameter'; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Import-CommonVariables.ps1 b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Import-CommonVariables.ps1 index 953fddb21b63..56db246774b2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Import-CommonVariables.ps1 +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/Import-CommonVariables.ps1 @@ -79,7 +79,7 @@ $component_name = $client_library_namespace.Substring($client_library_namespace. $all_return_type_names = @(); -$SKIP_METHOD_NAME_LIST = @('PowerOff', 'ListNext', 'ListAllNext', 'ListSkusNext'); +$SKIP_VERB_NOUN_CMDLET_LIST = @('PowerOff', 'ListNext', 'ListAllNext', 'ListSkusNext', 'GetInstanceView'); Write-Verbose $BAR_LINE; Write-Verbose "Input Parameters:"; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/RunCodeGeneration.ps1 b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/RunCodeGeneration.ps1 index 288643c26e7a..e3081e54c9c3 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/RunCodeGeneration.ps1 +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Automation/RunCodeGeneration.ps1 @@ -1194,17 +1194,35 @@ else $total_method_count++; # Handle Friend Methods - if ($mtItem.Name -eq 'Deallocate' -and (-not $friendMethodDict.ContainsKey($mtItem.Name))) + if (-not $friendMethodDict.ContainsKey($mtItem.Name)) { - $methods2 = Get-OperationMethods $operation_type; - foreach ($friendMethodInfo in $methods2) + if ($mtItem.Name -eq 'Deallocate') { - if ($friendMethodInfo.Name -eq 'PowerOff') + $methods2 = Get-OperationMethods $operation_type; + foreach ($friendMethodInfo in $methods2) { - if (CheckIf-SameParameterList $methodInfo $friendMethodInfo) + if ($friendMethodInfo.Name -eq 'PowerOff') { - $friendMethodDict.Add($mtItem.Name, $friendMethodInfo); - break; + if (CheckIf-SameParameterList $methodInfo $friendMethodInfo) + { + $friendMethodDict.Add($mtItem.Name, $friendMethodInfo); + break; + } + } + } + } + elseif ($mtItem.Name -eq 'Get') + { + $methods2 = Get-OperationMethods $operation_type; + foreach ($friendMethodInfo in $methods2) + { + if ($friendMethodInfo.Name -eq 'GetInstanceView') + { + if (CheckIf-SameParameterList $methodInfo $friendMethodInfo) + { + $friendMethodDict.Add($mtItem.Name, $friendMethodInfo); + break; + } } } } @@ -1293,7 +1311,7 @@ else Write-Verbose $SEC_LINE; $opCmdletFlavor = $cmdletFlavor; - if ($SKIP_METHOD_NAME_LIST -contains $methodInfo.Name) + if ($SKIP_VERB_NOUN_CMDLET_LIST -contains $methodInfo.Name) { #Overwrite and skip these method's 'Verb' cmdlet flavor $opCmdletFlavor = 'None';