Functions/Remove-DatabricksClustersFromWorkspace.ps1
<#
.SYNOPSIS Removes DataBricks Clusters from a workspace. .DESCRIPTION Removes DataBricks Clusters from a workspace. .PARAMETER config Configuration json file from the environment to use for possible clusters to remove. .EXAMPLE Remove-DatabricksClustersFromWorkspace -config $config -bearerToken 'dapi1234567890' .NOTES Author: Sabin IO #> Function Remove-DatabricksClustersFromWorkspace { [cmdletbinding()] Param( [parameter(Mandatory = $true)]$config ) try { $clusters = Get-DatabricksClusters $noneExistantClusters = @() $existentClusters = @() if ($config.removeClustersByName) { Write-Output "removeClustersByName config key supplied" if ($config.removeClustersByName.Length -ge 1) { if ($config.removeClustersByName[0].ToString().ToUpper() -eq "ALL") { Write-Error "Removing all clusters is not recommended. " } else { # Check if clusters exist in the first place foreach ($cluster in $config.removeClustersByName) { if ($cluster -notin $clusters.cluster_name) { $noneExistantClusters += $cluster } else { $existentClusters += $cluster } } if ($noneExistantClusters) { Write-Warning "There are clusters that do not exist to remove, These will be skipped. `n`n $($noneExistantClusters)" } # If we've got this far, it should mean we are good to remove all the known clusters by name foreach ($cluster in $existentClusters) { Remove-DatabricksCluster -ClusterName $cluster -Verbose } } } } else { Write-Output "removeClustersByName config key not supplied" } } catch { #uh oh throw $_.Exception } } |