This repository was archived by the owner on Sep 27, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathDemo-AzureRMResourceCommands.ps1
70 lines (50 loc) · 2.45 KB
/
Demo-AzureRMResourceCommands.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
$PSSwaggerClonePath = 'C:\Code\PSSwagger'
$TargetPath = 'C:\Temp\generatedmodule'
Set-Location -Path $PSSwaggerClonePath
#region Handle Autorest installation
$autoRestVersion = "0.16.0"
$autoRestInstallation = get-package -Name AutoRest -RequiredVersion $autoRestVersion -ProviderName NuGet
if(-not $autoRestInstallation) {
$autoRestInstallation = Install-Package -Name AutoRest -Source https://www.nuget.org/api/v2 -RequiredVersion 0.16.0 -ProviderName NuGet -Scope CurrentUser -Force
}
$autoRestInstallationLocation = ($autoRestInstallation).Source
$autoRestInstallPath = Join-Path -ChildPath "tools" -Path (Split-Path $autoRestInstallationLocation)
if(-not (($env:Path -split ';') -match [regex]::Escape($autoRestInstallPath))){$env:Path += ";$autoRestInstallPath"}
#endregion Handle Autorest installation
#region Generate AzureRM commands
Import-Module .\PSSwagger\PSSwagger.psd1 -Force
$param = @{
Path = $TargetPath
UseAzureCsharpGenerator = $true
IncludeCoreFxAssembly = $false
}
# AzureRM.Resources
$param['SpecificationUri'] = 'https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-resources/resources/2015-11-01/swagger/resources.json'
$param['Name'] = 'Generated.AzureRM.Resources'
New-PSSwaggerModule @param
#endregion Generate AzureRM commands
Import-Module "$PSSwaggerClonePath\PSSwagger\PSSwaggerUtility\PSSwaggerUtility.psd1" -verbose -force
Import-Module $TargetPath\Generated.AzureRM.Resources -WarningAction SilentlyContinue
Get-Command -Module Generated.AzureRM.Resources
Login-AzureRmAccount -SubscriptionName PSSwagger
# ResourceGroup Cleanup
if(Get-ResourceGroups -ResourceGroupName $ResourceGroupName -ErrorAction silentlycontinue) {
Remove-ResourceGroups -ResourceGroupName $ResourceGroupName
}
$USERNAME = $env:USERNAME.ToLower()
$ResourceGroupName = "ContosoResourceGroup$USERNAME"
$Location = 'WestEurope'
$RGParameters = New-ResourceGroupObject -Location $Location
New-ResourceGroupsOrUpdate -ResourceGroupName $ResourceGroupName -Parameters $RGParameters
Get-ResourceGroups -ResourceGroupName $ResourceGroupName
# With AsJob parameter
GetAll-ResourceGroups -AsJob | Wait-Job
Get-Job | Receive-Job
Get-ResourceGroups -ResourceGroupName $ResourceGroupName -AsJob | Wait-Job
Get-Job | Receive-Job
# Remove jobs
Get-Job | Remove-Job
# ResourceGroup Cleanup
if(Get-ResourceGroups -ResourceGroupName $ResourceGroupName -ErrorAction silentlycontinue) {
Remove-ResourceGroups -ResourceGroupName $ResourceGroupName
}