diff --git a/src/Azure/BudgetSaver/tools/azure-costs-saver.psm1 b/src/Azure/BudgetSaver/tools/azure-costs-saver.psm1 index 3a9ab97..1aeaf7c 100644 --- a/src/Azure/BudgetSaver/tools/azure-costs-saver.psm1 +++ b/src/Azure/BudgetSaver/tools/azure-costs-saver.psm1 @@ -403,7 +403,9 @@ function Set-ResourceSizesForCostsSaving { #execution environment defines logging patterns [Parameter(Mandatory=$True)] [ValidateSet("manual", "teamcity", "vsts")] - [string]$executionEnv + [string]$executionEnv, + #if something specified - we shall filter resources on this; string could be separated by comma, dot or semicolon + [string]$resourceNameFilter ) $logStringFormat = "{0}"; @@ -429,8 +431,18 @@ function Set-ResourceSizesForCostsSaving { Exit $false } - ProcessWebApps -webAppFarms $resources.where( {$_.ResourceType -eq "Microsoft.Web/serverFarms" -And $_.ResourceGroupName -eq "$ResourceGroupName"}) -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; - ProcessSqlDatabases -sqlServers $resources.where( {$_.ResourceType -eq "Microsoft.Sql/servers" -And $_.ResourceGroupName -eq "$ResourceGroupName"}) -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; - ProcessVirtualMachines -vms $resources.where( {$_.ResourceType -eq "Microsoft.Compute/virtualMachines" -And $_.ResourceGroupName -eq "$ResourceGroupName"}) -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; - ProcessVirtualMachinesScaleSets -vmScaleSets $resources.where( {$_.ResourceType -eq "Microsoft.Compute/virtualMachineScaleSets" -And $_.ResourceGroupName -eq "$ResourceGroupName"}) -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; + $webAppFarms = $resources.where( {$_.ResourceType -eq "Microsoft.Web/serverFarms" -And $_.ResourceGroupName -eq "$ResourceGroupName"}); + $sqlServers = $resources.where( {$_.ResourceType -eq "Microsoft.Sql/servers" -And $_.ResourceGroupName -eq "$ResourceGroupName"}); + $virtualMachines = $resources.where( {$_.ResourceType -eq "Microsoft.Compute/virtualMachines" -And $_.ResourceGroupName -eq "$ResourceGroupName"}); + $vmScaleSets = $resources.where( {$_.ResourceType -eq "Microsoft.Compute/virtualMachineScaleSets" -And $_.ResourceGroupName -eq "$ResourceGroupName"}); + + if (![string]::IsNullOrWhiteSpace($resourceNameFilter)) { + $resourceNamesSplitted = $resourceNameFilter.Split(",.;"); + #here I need to filter on $resourceNamesSplitted collections $webAppFarms, $sqlServers, $virtualMachines, $vmScaleSets + } + + ProcessWebApps -webAppFarms $webAppFarms -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; + ProcessSqlDatabases -sqlServers $sqlServers -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; + ProcessVirtualMachines -vms $virtualMachines -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; + ProcessVirtualMachinesScaleSets -vmScaleSets $vmScaleSets -logStringFormat $logStringFormat -ResourceGroupName $ResourceGroupName; }