Functions/Publish-DatabricksClustersLibrariesFromConfigToWorkspace.ps1
<#
.SYNOPSIS Deploys DataBricks Cluster(s) from configuration json file(s) to a workspace .DESCRIPTION Deploys DataBricks Cluster(s) from configuration json file(s) to a workspace .PARAMETER config Configuration json file from the environment used to workout whether to deploy a clusters from a folder or file(s) .PARAMETER localOutputPath The name path of the clusters configuration files. .EXAMPLE Publish-DatabricksClustersLibrariesFromConfigToWorkspace -config $config .NOTES Author: Sabin IO #> Function Publish-DatabricksClustersLibrariesFromConfigToWorkspace { [cmdletbinding()] Param( [parameter(Mandatory = $true)]$config, [parameter(Mandatory = $true)][string]$localOutputPath ) try { if (($config.deployLibrariesByFolder -eq $true) -and ($config.deployLibrariesByFileNames.Length -ge 1)) { Write-Error "deployLibrariesByFolder in config set to true and Libraries has values. Options are mutually exclusive!" Throw } if (($config.deployLibrariesByFolder -eq $true) -and ($config.deployLibrariesByFileNames.Length -eq 0)) { Write-Verbose "[Deploy] clusters libraries by folder, Ignoring deployLibrariesByFileNames" $litPath = (Join-Path $localOutputPath 'libraries') $librariesConfigFiles = Get-ChildItem -LiteralPath $litPath -Filter "*.cluster.libraries.config.json" foreach ($libraryConfig in $librariesConfigFiles) { Publish-DatabricksClusterLibrariesToWorkspaceByName -librariesConfig $libraryConfig } } if (($config.deployLibrariesByFolder -eq $false) -and ($config.deployLibrariesByFileNames.Length -ge 1)) { Write-Verbose "[Deploy] clusters libraries by file(s), Ignoring deployLibrariesByFolder" foreach ($libraryConfig in $config.deployLibrariesByFileNames) { $tmp = Join-Path $localOutputPath 'libraries' $libPath = Join-Path $tmp $libraryConfig if (Test-Path $libPath) { Publish-DatabricksClusterLibrariesToWorkspaceByName -librariesConfig $libPath } else { Write-Error "Path $($libPath) does not exist. Check file names are correct." } } } } catch { #uh oh throw $_.Exception } } |