workshop/PrepareWorkshop-Aux.ps1 (74 lines of code) (raw):

################################################################################################################################################### # Delete old subscription deployments $deployments = az deployment sub list -o tsv --query [].name $resultsTable = @() foreach ($deployment in $deployments) { $resultsTable += [PSCustomObject](@{Deployment = $deployment; status = "Will be deleted" }) az deployment sub delete --name $deployment --no-wait } #$resultsTable | Format-Table -AutoSize $resultsTable | Export-Csv -Path "results.csv" -NoTypeInformation -Force ################################################################################################################################################### # Check AVS Labs Deployments Status $Prefix = "GPSUS-XYZ" $numberOfLabs = 10 $resultsTable = @() for ($i = 1; $i -le $numberOfLabs; $i++) { $name = "$Prefix$i" $avsStatus = az vmware private-cloud show -n $name-PrivateCloud -g $name-SDDC --query "provisioningState" $resultsTable += [PSCustomObject](@{ SDDC = '$name-PrivateCloud'; status = $avsStatus }) } $resultsTable | Format-Table -AutoSize ################################################################################################################################################### # Check AVS Nested Labs Deployments Status $Prefix = "GPSUS-XYZ-" $numberOfLabs = 4 $resultsTable = @() for ($i = 1; $i -le $numberOfLabs; $i++) { $name = "$Prefix$i-jumpbox" $runCommandResults = az vm run-command invoke --command-id RunPowerShellScript --name $name -g $name --scripts "Get-Content -Path C:\temp\bootstrap-nestedlabs.log -Tail 25" --query "value[*].message" $runCommandResultsString = [system.String]::Join(" ", $runCommandResults) #$runCommandResultsJson = ConvertFrom-Json $runCommandResultsString $resultsTable += [PSCustomObject](@{ VM = $name; status = $runCommandResultsString }) } #$resultsTable | Format-Table -AutoSize $resultsTable | Export-Csv -Path "results.csv" -NoTypeInformation -Force ################################################################################################################################################### #Delete Empty Resource Groups $groups = az group list -o tsv --query [].name $resultsTable = @() foreach ($group in $groups) { if (az resource list --resource-group $group -o tsv) { Write-Host "$group is not empty" -ForegroundColor Green $resultsTable += [PSCustomObject](@{resourceGroup = $group; status = "Not Empty" }) } else { Write-Host "$group will be deleted" -ForegroundColor Cyan $resultsTable += [PSCustomObject](@{resourceGroup = $group; status = "Empty; will be deleted" }) az group delete --resource-group $group --no-wait --yes } } #$resultsTable | Format-Table -AutoSize $resultsTable | Export-Csv -Path "results.csv" -NoTypeInformation -Force ################################################################################################################################################### #Delete Empty Resource Groups by Tags #"[?tags.Team == 'Engineering']" #11/16/2022 #((Get-Date).AddDays(-13) -Format 'MM/dd/yyyy') $groups = az group list -o tsv --query "[?tags.DeleteDate == '11/13/2022'].name" $resultsTable = @() foreach ($group in $groups) { $resultsTable += [PSCustomObject](@{resourceGroup = $group; status = "Will be deleted" }) az group delete --resource-group $group --no-wait --yes } #$resultsTable | Format-Table -AutoSize $resultsTable | Export-Csv -Path "results.csv" -NoTypeInformation -Force ################################################################################################################################################### # Delete Running Deployments $deployments = az deployment sub list --filter "provisioningState eq 'Running'" -o tsv --query [].name foreach ($deployment in $deployments) { $resultsTable += [PSCustomObject](@{Deployment = $deployment; status = "Will be canceled" }) az deployment sub cancel --name $deployment } $resultsTable | Format-Table -AutoSize ###################################################################################################################################################