Skip to content
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

Migrate Compute from generation to main #20788

Merged
merged 3 commits into from
Jan 31, 2023
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
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/Az.Compute.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
}

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
Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://docs.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
}
Expand Down
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/custom/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ These provide functionality to our HTTP pipeline and other useful features. In s
### Attributes
For processing the cmdlets, we've created some additional attributes:
- `Microsoft.Azure.PowerShell.Cmdlets.Compute.DescriptionAttribute`
- Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts.
- Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts.
- `Microsoft.Azure.PowerShell.Cmdlets.Compute.DoNotExportAttribute`
- Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.Compute`.
- `Microsoft.Azure.PowerShell.Cmdlets.Compute.InternalExportAttribute`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,50 @@ function Set-AzVMRunCommand_ScriptLocalPath {
if ($PSBoundParameters.ContainsKey("ScriptLocalPath"))
{
# Read Local File and add
$script = (Get-Content -Path $ScriptLocalPath) -join ";"
$script = ""
if ((Get-ChildItem $scriptLocalPath | Select-Object Extension).Extension -eq ".sh"){
foreach ($line in Get-Content -Path $scriptLocalPath){
$words = $line.trim().split()
$commentFound = $false
foreach ($word in $words){
if ($word[0] -eq "#" -and $commentFound -eq $false){
$commentFound = $true
$script += "``" + $word + " "
}
else{
$script += $word + " "
}
}
$script = $script.trim()
#close
if ($commentFound){
$script += "``"
}
$script += ";"
}
}
else{
foreach ($line in Get-Content -Path $scriptLocalPath){
$words = $line.trim().split()
$commentFound = $false
foreach ($word in $words){
if ($word[0] -eq "#" -and $commentFound -eq $false){
$commentFound = $true
$script += "<" + $word + " "
}
else{
$script += $word + " "
}
}
$script = $script.trim()
#close
if ($commentFound){
$script += "#>"
}
$script += ";"
}
}

$PSBoundParameters.Add("SourceScript", $script)
# If necessary, remove the -ParameterA parameter from the dictionary of bound parameters
$null = $PSBoundParameters.Remove("ScriptLocalPath")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,50 @@ function Set-AzVmssVMRunCommand_ScriptLocalPath {
process {
if ($PSBoundParameters.ContainsKey("ScriptLocalPath"))
{
# Read Local File and add
$script = (Get-Content -Path $ScriptLocalPath) -join ";"
# Read Local File and add
$script = ""
if ((Get-ChildItem $scriptLocalPath | Select-Object Extension).Extension -eq ".sh"){
foreach ($line in Get-Content -Path $scriptLocalPath){
$words = $line.trim().split()
$commentFound = $false
foreach ($word in $words){
if ($word[0] -eq "#" -and $commentFound -eq $false){
$commentFound = $true
$script += "``" + $word + " "
}
else{
$script += $word + " "
}
}
$script = $script.trim()
#close
if ($commentFound){
$script += "``"
}
$script += ";"
}
}
else{
foreach ($line in Get-Content -Path $scriptLocalPath){
$words = $line.trim().split()
$commentFound = $false
foreach ($word in $words){
if ($word[0] -eq "#" -and $commentFound -eq $false){
$commentFound = $true
$script += "<" + $word + " "
}
else{
$script += $word + " "
}
}
$script = $script.trim()
#close
if ($commentFound){
$script += "#>"
}
$script += ";"
}
}
$PSBoundParameters.Add("SourceScript", $script)
# If necessary, remove the -ParameterA parameter from the dictionary of bound parameters
$null = $PSBoundParameters.Remove("ScriptLocalPath")
Expand Down
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ This directory contains the documentation of the cmdlets for the `Az.Compute` mo
- Packaged: yes

## Details
The process of documentation generation loads `Az.Compute` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `..\exports` folder. Additionally, when writing custom cmdlets in the `..\custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `..\examples` folder.
The process of documentation generation loads `Az.Compute` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `..\exports` folder. Additionally, when writing custom cmdlets in the `..\custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `..\examples` folder.
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/exports/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Exports
This directory contains the cmdlets *exported by* `Az.Compute`. No other cmdlets in this repository are directly exported. What that means is the `Az.Compute` module will run [Export-ModuleMember](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `..\custom` for all custom implementation.
This directory contains the cmdlets *exported by* `Az.Compute`. No other cmdlets in this repository are directly exported. What that means is the `Az.Compute` module will run [Export-ModuleMember](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `..\custom` for all custom implementation.

## Info
- Modifiable: no
Expand Down
8 changes: 4 additions & 4 deletions src/Compute/Compute.Autorest/generate-info.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"autorest_core": "3.9.3",
"swagger_commit": "c583b05741fadfdca116be3b9ccb1c4be8a73258",
"autorest_modelerfour": "4.15.414",
"autorest_powershell": "3.0.498",
"autorest_core": "3.9.4",
"autorest": "`-- (empty)",
"node": "v14.15.5",
"autorest_modelerfour": "4.15.414"
"swagger_commit": "18e83e24c36eed85a240103b476de0220ace7f84",
"node": "v14.15.5"
}
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/how-to.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ To generate documentation, the process is now integrated into the `build-module.
To test the cmdlets, we use [Pester](https://github.com/pester/Pester). Tests scripts (`.ps1`) should be added to the `test` folder. To execute the Pester tests, run the `test-module.ps1` script. This will run all tests in `playback` mode within the `test` folder. To read more about testing cmdlets, look at the [README.md](examples/README.md) in the `examples` folder.

## Packing `Az.Compute`
To pack `Az.Compute` for distribution, run the `pack-module.ps1` script. This will take the contents of multiple directories and certain root-folder files to create a `.nupkg`. The structure of the `.nupkg` is created so it can be loaded part of a [PSRepository](https://learn.microsoft.com/powershell/module/powershellget/register-psrepository). Additionally, this package is in a format for distribution to the [PSGallery](https://www.powershellgallery.com/). For signing an Azure module, please contact the [Azure PowerShell](https://github.com/Azure/azure-powershell) team.
To pack `Az.Compute` for distribution, run the `pack-module.ps1` script. This will take the contents of multiple directories and certain root-folder files to create a `.nupkg`. The structure of the `.nupkg` is created so it can be loaded part of a [PSRepository](https://docs.microsoft.com/powershell/module/powershellget/register-psrepository). Additionally, this package is in a format for distribution to the [PSGallery](https://www.powershellgallery.com/). For signing an Azure module, please contact the [Azure PowerShell](https://github.com/Azure/azure-powershell) team.

## Module Script Details
There are multiple scripts created for performing different actions for developing `Az.Compute`.
Expand Down
2 changes: 1 addition & 1 deletion src/Compute/Compute.Autorest/internal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This directory contains a module to handle *internal only* cmdlets. Cmdlets that
- Packaged: yes

## Details
The `Az.Compute.internal.psm1` file is generated to this folder. This module file handles the hidden cmdlets. These cmdlets will not be exported by `Az.Compute`. Instead, this sub-module is imported by the `..\custom\Az.Compute.custom.psm1` module, allowing you to use hidden cmdlets in your custom, exposed cmdlets. To call these cmdlets in your custom scripts, simply use [module-qualified calls](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names). For example, `Az.Compute.internal\Get-Example` would call an internal cmdlet named `Get-Example`.
The `Az.Compute.internal.psm1` file is generated to this folder. This module file handles the hidden cmdlets. These cmdlets will not be exported by `Az.Compute`. Instead, this sub-module is imported by the `..\custom\Az.Compute.custom.psm1` module, allowing you to use hidden cmdlets in your custom, exposed cmdlets. To call these cmdlets in your custom scripts, simply use [module-qualified calls](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names). For example, `Az.Compute.internal\Get-Example` would call an internal cmdlet named `Get-Example`.

## Purpose
This allows you to include REST specifications for services that you *do not wish to expose from your module*, but simply want to call within custom cmdlets. For example, if you want to make a custom cmdlet that uses `Storage` services, you could include a simplified `Storage` REST specification that has only the operations you need. When you run the generator and build this module, note the generated `Storage` cmdlets. Then, in your readme configuration, use [cmdlet hiding](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md#cmdlet-hiding-exportation-suppression) on the `Storage` cmdlets and they will *only be exposed to the custom cmdlets* you want to write, and not be exported as part of `Az.Compute`.
6 changes: 3 additions & 3 deletions src/Compute/Compute/Az.Compute.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# Generated by: Microsoft Corporation
#
# Generated on: 1/6/2023
# Generated on: 1/30/2023
#

@{
Expand Down Expand Up @@ -220,7 +220,7 @@ PrivateData = @{
PSData = @{

# Tags applied to this module. These help with module discovery in online galleries.
Tags = 'Azure','ResourceManager','ARM','Compute','IAAS','VM','VirtualMachine'
Tags = 'Azure', 'ResourceManager', 'ARM', 'Compute', 'IAAS', 'VM', 'VirtualMachine'

# A URL to the license for this module.
LicenseUri = 'https://aka.ms/azps-license'
Expand Down Expand Up @@ -248,7 +248,7 @@ PrivateData = @{

} # End of PSData hashtable

} # End of PrivateData hashtable
} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''
Expand Down
1 change: 1 addition & 0 deletions src/Compute/Compute/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* Filled in missing parameter descriptions across multiple parameters and improved some existing parameter descriptions.
* Updated Compute PS to use the new .Net SDK version 59.0.0. This includes an approved breaking change for a non-functional feature.
- The type of the property `Source` of type `Microsoft.Azure.Management.Compute.Models.GalleryDataDiskImage`, `Microsoft.Azure.Management.Compute.Models.GalleryOSDiskImage`, and `Microsoft.Azure.Management.Compute.Models.GalleryImageVersionStorageProfile` has changed from `Microsoft.Azure.Management.Compute.Models.GalleryArtifactVersionSource` to `Microsoft.Azure.Management.Compute.Models.GalleryDiskImageSource`.
* Updated Set-AzVMRunCommand and Set-AzVmssRunCommand ScriptLocalPath parameter set to work with Linux and with files that have comments.
* Added `-TargetExtendedLocation` parameter to `New-AzGalleryImageVersion` and `Update-AzGalleryImageVersion`
* Added `-AllowDeletionOfReplicatedLocation` to `Update-AzGalleryImageVersion`

Expand Down
4 changes: 2 additions & 2 deletions src/Compute/Compute/help/Get-AzGalleryApplication.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ To create the parameters described below, construct a hash table containing the
`INPUTOBJECT <IComputeIdentity>`: Identity Parameter
- `[CommandId <String>]`: The command id.
- `[GalleryApplicationName <String>]`: The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
- `[GalleryApplicationVersionName <String>]`: The name of the gallery Application Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: `<MajorVersion>.<MinorVersion>.<Patch>`
- `[GalleryApplicationVersionName <String>]`: The name of the gallery Application Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: <MajorVersion>.<MinorVersion>.<Patch>
- `[GalleryImageName <String>]`: The name of the gallery image definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
- `[GalleryImageVersionName <String>]`: The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: `<MajorVersion>.<MinorVersion>.<Patch>`
- `[GalleryImageVersionName <String>]`: The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: <MajorVersion>.<MinorVersion>.<Patch>
- `[GalleryName <String>]`: The name of the Shared Image Gallery. The allowed characters are alphabets and numbers with dots and periods allowed in the middle. The maximum length is 80 characters.
- `[Id <String>]`: Resource identity path
- `[InstanceId <String>]`: The instance ID of the virtual machine.
Expand Down
4 changes: 2 additions & 2 deletions src/Compute/Compute/help/Get-AzGalleryApplicationVersion.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,9 @@ To create the parameters described below, construct a hash table containing the
`INPUTOBJECT <IComputeIdentity>`: Identity Parameter
- `[CommandId <String>]`: The command id.
- `[GalleryApplicationName <String>]`: The name of the gallery Application Definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
- `[GalleryApplicationVersionName <String>]`: The name of the gallery Application Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: `<MajorVersion>.<MinorVersion>.<Patch>`
- `[GalleryApplicationVersionName <String>]`: The name of the gallery Application Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: <MajorVersion>.<MinorVersion>.<Patch>
- `[GalleryImageName <String>]`: The name of the gallery image definition to be created or updated. The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. The maximum length is 80 characters.
- `[GalleryImageVersionName <String>]`: The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: `<MajorVersion>.<MinorVersion>.<Patch>`
- `[GalleryImageVersionName <String>]`: The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: <MajorVersion>.<MinorVersion>.<Patch>
- `[GalleryName <String>]`: The name of the Shared Image Gallery. The allowed characters are alphabets and numbers with dots and periods allowed in the middle. The maximum length is 80 characters.
- `[Id <String>]`: Resource identity path
- `[InstanceId <String>]`: The instance ID of the virtual machine.
Expand Down
Loading