Functions/BloxOne/Profiles/Switch-B1ConnectionProfile.ps1
function Switch-B1ConnectionProfile { <# .SYNOPSIS This function is used to switch between saved BloxOne connection profiles. .DESCRIPTION Connection profiles provide a convenient way of saving API Keys for multiple BloxOne Accounts, with the ability to quickly switch between them. .PARAMETER Name Specify the connection profile name to switch to. This field supports tab completion. .EXAMPLE PS> Switch-NCP Dev Dev has been set as the active BloxOne connection profile. .EXAMPLE PS> Switch-B1ConnectionProfile Test Test has been set as the active BloxOne connection profile. .FUNCTIONALITY BloxOne .FUNCTIONALITY Core .FUNCTIONALITY Authentication #> [Alias('Switch-BCP')] [CmdletBinding()] param( [Parameter(Mandatory=$true)] [String]$Name ) if (Get-B1ConnectionProfile -Name $Name) { $ContextConfig = (Get-B1Context) if ($ContextConfig.CurrentContext -ne $Name) { Write-Host "$($Name) has been set as the active BloxOne connection profile." -ForegroundColor Green $ContextConfig.CurrentContext = $Name $ContextConfig | ConvertTo-Json -Depth 5 | Out-File $Script:B1ConfigFile -Force if ($ENV:B1APIKey -or $ENV:B1CSPUrl) { $Platform = Detect-OS if ($Platform -eq "Windows") { [System.Environment]::SetEnvironmentVariable('B1APIKey',$null,[System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('B1CSPUrl',$null,[System.EnvironmentVariableTarget]::User) $ENV:B1APIKey = $null $ENV:B1CSPUrl = $null } if ($Platform -eq "Mac" -or $Platform -eq "Unix") { if (Test-Path ~/.zshenv) { sed -i '' -e '/B1APIKey/d' ~/.zshenv sed -i '' -e '/B1CSPUrl/d' ~/.zshenv } $ENV:B1APIKey = $null $ENV:B1CSPUrl = $null } } break } else { Write-Host "$($Name) is already the active BloxOne connection profile." -ForegroundColor Green break } } else { Write-Error "Unable to find a BloxOne connection profile with name: $($Name)" } } |