Skip to content

Commit 0724b85

Browse files
authored
Merge pull request #55 from srimathiS/storageCap
Merging per request
2 parents 823f5db + 87c5d04 commit 0724b85

6 files changed

Lines changed: 427 additions & 129 deletions

File tree

CloudCapabilities/AzureRM.CloudCapabilities.psm1

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ function Get-AzureRMCloudCapabilities()
2121
[String] $Location,
2222

2323
[Parameter(HelpMessage = 'Set this to get compute resource provider Capabilities like Extensions, Images, Sizes')]
24-
[Switch] $IncludeComputeCapabilities
24+
[Switch] $IncludeComputeCapabilities,
25+
26+
[Parameter(HelpMessage = 'Set this to get storage resource provider Capabilities like Sku')]
27+
[Switch] $IncludeStorageCapabilities
2528
)
2629
$sw = [Diagnostics.Stopwatch]::StartNew()
2730
Write-Verbose "Getting CloudCapabilities for location: '$location'"
@@ -149,6 +152,34 @@ function Get-AzureRMCloudCapabilities()
149152
$capabilities.Add("VMImages", $imageList)
150153
}
151154
}
155+
if ($IncludeStorageCapabilities)
156+
{
157+
Write-Verbose "Getting Storage Sku supported for $location"
158+
try
159+
{
160+
$storageSkus = Get-AzureRmResource -ResourceType "Microsoft.Storage/Skus" -ResourceName "/"
161+
if ($storageSkus)
162+
{
163+
$skuList = New-Object System.Collections.ArrayList
164+
$storageKind = $storageSkus| Select-Object Kind | Get-Unique -AsString
165+
foreach ($kind in $storageKind.Kind)
166+
{
167+
$skus= ($storageSkus | Where-Object { $_.Kind -eq $kind }).Name
168+
$kindDict = @{ "kind" = $kind; "skus" = $skus }
169+
$skuList.Add($kindDict) | Out-Null
170+
}
171+
$capabilities.Add("StorageSkus", $skuList)
172+
}
173+
else
174+
{
175+
Write-Verbose "No StorageSkus found for $location"
176+
}
177+
}
178+
catch
179+
{
180+
Write-Error "Error occurred processing StorageSkus for $location. Exception: " $_.Exception.Message
181+
}
182+
}
152183
$capabilitiesJson = ConvertTo-Json $capabilities -Depth 10
153184
$capabilitiesJson | Out-File $OutputPath
154185

CloudCapabilities/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# Get Cloud Capabilities
22
Instructions below are relative to the .\CloudCapabilities folder of the [AzureStack-Tools repo](..).
33
To get VMImages, Extensions & Sizes available in the cloud, add -IncludeComputeCapabilities
4+
To get StorageSkus available in the cloud, add -IncludeStorageCapabilities
45
```powershell
56
Import-Module ".\AzureRM.CloudCapabilities.psm1"
67
```
78
# Prerequisites
89
Connected Azure or AzureStack powershell environment (Refer [AzureStack-Tools repo/Connect](../Connect) for connecting to an Azure Stack instance. )
910

1011
```powershell
11-
Get-AzureRMCloudCapabilities -Location '<provide location>' -Verbose #-IncludeComputeCapabilities
12+
Get-AzureRMCloudCapabilities -Location '<provide location>' -Verbose #-IncludeComputeCapabilities -IncludeStorageCapabilities
1213
```

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ Manage Azure Stack Infrastructure
7676
Validate Azure ARM Template Capabilities
7777
- resources - Types, Location, Apiversion
7878
- Compute Capabilities - extensions, images, sizes
79+
- Storage Capabilities - skus
7980

8081
---
8182
_This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments._

0 commit comments

Comments
 (0)