AzStackHCI.VM.psm1
# region Generated # ---------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Code generated by Microsoft (R) AutoRest Code Generator.Changes may cause incorrect behavior and will be lost if the code # is regenerated. # ---------------------------------------------------------------------------------- # Load required Az.Accounts module $accountsName = 'Az.Accounts' $accountsModule = Get-Module -Name $accountsName if(-not $accountsModule) { $localAccountsPath = Join-Path $PSScriptRoot 'generated\modules' if(Test-Path -Path $localAccountsPath) { $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 if($localAccounts) { $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru } } if(-not $accountsModule) { $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 if($hasAdequateVersion) { $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru } } } if(-not $accountsModule) { Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://learn.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop } Write-Information "Loaded Module '$($accountsModule.Name)'" # Load the private module dll $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/AzStackHCI.VM.private.dll') # Get the private module's instance $instance = [Microsoft.Azure.PowerShell.Cmdlets.AzStackHCI.VM.Module]::Instance # Ask for the shared functionality table $VTable = Register-AzModule # Tweaks the pipeline on module load $instance.OnModuleLoad = $VTable.OnModuleLoad # Following two delegates are added for telemetry $instance.GetTelemetryId = $VTable.GetTelemetryId $instance.Telemetry = $VTable.Telemetry # Delegate to sanitize the output object $instance.SanitizeOutput = $VTable.SanitizerHandler # Delegate to get the telemetry info $instance.GetTelemetryInfo = $VTable.GetTelemetryInfo # Tweaks the pipeline per call $instance.OnNewRequest = $VTable.OnNewRequest # Gets shared parameter values $instance.GetParameterValue = $VTable.GetParameterValue # Allows shared module to listen to events from this module $instance.EventListener = $VTable.EventListener # Gets shared argument completers $instance.ArgumentCompleter = $VTable.ArgumentCompleter # The name of the currently selected Azure profile $instance.ProfileName = $VTable.ProfileName # Load the custom module $customModulePath = Join-Path $PSScriptRoot './custom/AzStackHCI.VM.custom.psm1' if(Test-Path $customModulePath) { $null = Import-Module -Name $customModulePath } # Export nothing to clear implicit exports Export-ModuleMember # Export proxy cmdlet scripts $exportsPath = Join-Path $PSScriptRoot './exports' $directories = Get-ChildItem -Directory -Path $exportsPath $profileDirectory = $null if($instance.ProfileName) { if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } } else { # Don't export anything if the profile doesn't exist for the module $exportsPath = $null Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." } } elseif(($directories | Measure-Object).Count -gt 0) { # Load the last folder if no profile is selected $profileDirectory = $directories | Select-Object -Last 1 } if($profileDirectory) { Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" $exportsPath = $profileDirectory.FullName } if($exportsPath) { Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) } # Finalize initialization of this module $instance.Init(); Write-Information "Loaded Module '$($instance.Name)'" # endregion |