Azure / Azure/autorest.powershell

AutoRest crashes on ./build-module.ps1 when you use a filter

Open
#655 0 comments 0 reactions 0 assignees View on GitHub
feature-request P2
Dominant language
C#
Stars
123
Forks
99
PR merge metrics
No merged PRs in 30d

Description

AutoRest crashes on ./build-module.ps1 when you use a `filter` in the `custom` folder.

Code in my custom `New-AzConnectedDevice.ps1`:

```pwsh
filter HandleShowResult {
param (
[Parameter(ValueFromPipeline)]
[string]
[ValidateNotNullOrEmpty]
$ShowResult,

[Parameter()]
[ValidateNotNullOrEmpty]
[string]
$ResourceGroupName,

[Parameter()]
[ValidateNotNullOrEmpty]
[string]
$SubscriptionId
)

# Get name of machine registered
$selectStrResult = $ShowResult | Select-String -Pattern "^Resource Name\s+:(?.*)$"
$Name = $selectStrResult.Matches.Groups |
Where-Object Name -EQ resourceName |
Select-Object -ExpandProperty Value

# Return the ConnectedMachine object.
Get-AzConnectedMachine -Name $Name -ResourceGroupName $ResourceGroupName -SubscriptionId $SubscriptionId
}
```

Check out the exception:

```
PS C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine> .\build-module.ps1
Creating isolated process...
Cleaning build folders...
Compiling module...
Creating exports and docs...
$NullReferenceException/ at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.PsProxyTypeExtensions.ToAttributes(Variant variant) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 477
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.Variant..ctor(String cmdletName, String variantName, CommandInfo info, CommandMetadata metadata, Boolean hasParameterSets, PsHelpInfo helpInfo) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 152
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.PsProxyTypeExtensions.<>c__DisplayClass2_0.b__0(CommandParameterSetInfo ps) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 458
at System.Linq.Enumerable.SelectIListIterator`2.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.PsProxyTypeExtensions.ToVariants(CommandInfo info, PsHelpInfo helpInfo) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 455
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.PsProxyTypeExtensions.ToVariants(CommandInfo info, PSObject helpInfo) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 463
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.PsProxyTypeExtensions.ToVariants(CmdletAndHelpInfo info) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Models\PsProxyTypes.cs:line 461
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.ExportProxyCmdlet.<>c.b__36_0(CmdletAndHelpInfo ci) in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Cmdlets\ExportProxyCmdlet.cs:line 58
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Microsoft.Azure.PowerShell.Cmdlets.ConnectedMachine.Runtime.PowerShell.ExportProxyCmdlet.ProcessRecord() in C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\generated\runtime\BuildTime\Cmdlets\ExportProxyCmdlet.cs:line 58
Export-ProxyCmdlet: C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine\build-module.ps1:134
Line |
134 | Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Object reference not set to an instance of an object.

PS C:\Users\tyleonha\Code\azure-powershell\src\ConnectedMachine>
```

Once I change `filter` to `function`, it works.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.