compute/sqlserver/powershell/create-sql-instance-availability-group-cleanup.ps1 (55 lines of code) (raw):
#Requires -Version 5
# Copyright(c) 2020 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
##############################################################################
#.SYNOPSIS
# Do some cleanup after done testing with the script:
# create-sql-instance-availability-group.ps1
#
#.DESCRIPTION
# The script create-sql-instance-availability-group.ps1 creates a two node
# availability group. After you are done testing with the script you may want
# to remove the nodes, networks and firewall rules. This script provides some
# sample commands. You may need to modify some parameters to match your
# configuration.
#
# For more information see "Configuring SQL Server Availability Groups" at:
# https://cloud.google.com/compute/docs/instances/sql-server/configure-availability
#
#
#.NOTES
# AUTHOR: Anibal Santiago - @SQLThinker
##############################################################################
##### Cleanup - Run with caution as everything will be deleted #####
# All the commands are commented to make sure they don't run automatically
<#
$ErrorActionPreference = 'continue'
# Delete instances
Get-GceInstance | Where Name -EQ "dc-windows" | Remove-GceInstance
Get-GceInstance | Where Name -EQ "cluster-sql1" | Remove-GceInstance
Get-GceInstance | Where Name -EQ "cluster-sql2" | Remove-GceInstance
# Delete the subnets by finding all the subnets under the network 'wsfcnet'
$results = Invoke-Command -ScriptBlock { gcloud compute networks subnets list --filter="network:wsfcnet" 2> $null } | ConvertFrom-String
If ( $results.count -gt 0 ) {
$results | Select-Object -skip 1 | ForEach {
Write-Host("Removing subnet: $($_.P1) on region: $($_.P2)")
Invoke-Command -ScriptBlock { gcloud compute networks subnets delete $_.P1 --region $_.P2 --quiet 2> $null }
}
}
# Delete the firewall rules, routes and the network 'wsfcnet'
Get-GceFirewall | Where-Object Network -Like "*wsfcnet" | Remove-GceFirewall
Get-GceRoute | Where-Object Network -Like "*wsfcnet" | Remove-GceRoute
Invoke-Command -ScriptBlock { gcloud compute networks delete wsfcnet --quiet 2> $null }
#>