Merge pull request #388 from qlikq/master
Enable quick disconnect for Disconnect-SsoAdminServer
This commit is contained in:
@@ -147,7 +147,7 @@ function Connect-SsoAdminServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Disconnect-SsoAdminServer {
|
function Disconnect-SsoAdminServer {
|
||||||
<#
|
<#
|
||||||
.NOTES
|
.NOTES
|
||||||
===========================================================================
|
===========================================================================
|
||||||
Created on: 9/29/2020
|
Created on: 9/29/2020
|
||||||
@@ -167,18 +167,31 @@ function Disconnect-SsoAdminServer {
|
|||||||
|
|
||||||
Disconnect a SSO Admin connection stored in 'mySsoAdminConnection' varaible
|
Disconnect a SSO Admin connection stored in 'mySsoAdminConnection' varaible
|
||||||
#>
|
#>
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
param(
|
param(
|
||||||
[Parameter(
|
[Parameter(
|
||||||
Mandatory=$true,
|
ValueFromPipeline = $true,
|
||||||
ValueFromPipeline=$true,
|
ValueFromPipelineByPropertyName = $false,
|
||||||
ValueFromPipelineByPropertyName=$false,
|
HelpMessage = 'SsoAdminServer object')]
|
||||||
HelpMessage='SsoAdminServer object')]
|
|
||||||
[ValidateNotNull()]
|
[ValidateNotNull()]
|
||||||
[VMware.vSphere.SsoAdminClient.DataTypes.SsoAdminServer]
|
[VMware.vSphere.SsoAdminClient.DataTypes.SsoAdminServer]
|
||||||
$Server)
|
$Server
|
||||||
|
)
|
||||||
|
|
||||||
Process {
|
Process {
|
||||||
|
if (-not $PSBoundParameters['Server']) {
|
||||||
|
switch (@($global:DefaultSsoAdminServers).count) {
|
||||||
|
{ $_ -eq 1 } { $server = ($global:DefaultSsoAdminServers).ToArray()[0] ; break }
|
||||||
|
{ $_ -gt 1 } {
|
||||||
|
Throw 'Connected to more than 1 SSO server, please specify a SSO server via -Server parameter'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
Default {
|
||||||
|
Throw 'Not connected to SSO server.'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($global:DefaultSsoAdminServers.Contains($Server)) {
|
if ($global:DefaultSsoAdminServers.Contains($Server)) {
|
||||||
$global:DefaultSsoAdminServers.Remove($Server) | Out-Null
|
$global:DefaultSsoAdminServers.Remove($Server) | Out-Null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,63 @@ Describe "Connect-SsoAdminServer and Disconnect-SsoAdminServer Tests" {
|
|||||||
$expected.IsConnected | Should Be $false
|
$expected.IsConnected | Should Be $false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
It 'Diconnect-SsoAdminServer disconnects the currently connected SSO in case there is 1 SSO server' {
|
||||||
|
# Arrange
|
||||||
|
$expected = Connect-SsoAdminServer `
|
||||||
|
-Server $VcAddress `
|
||||||
|
-User $User `
|
||||||
|
-Password $Password `
|
||||||
|
-SkipCertificateCheck
|
||||||
|
|
||||||
|
# Act
|
||||||
|
Disconnect-SsoAdminServer -server $expected
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
$global:DefaultSsoAdminServers | Should Not Contain $expected
|
||||||
|
$expected.IsConnected | Should Be $false
|
||||||
|
}
|
||||||
|
|
||||||
|
It 'Diconnect-SsoAdminServer does not disconnect if connected to more than 1 SSO server' {
|
||||||
|
# Arrange
|
||||||
|
$expected += @(Connect-SsoAdminServer `
|
||||||
|
-Server $VcAddress `
|
||||||
|
-User $User `
|
||||||
|
-Password $Password `
|
||||||
|
-SkipCertificateCheck)
|
||||||
|
$expected += @(Connect-SsoAdminServer `
|
||||||
|
-Server $VcAddress `
|
||||||
|
-User $User `
|
||||||
|
-Password $Password `
|
||||||
|
-SkipCertificateCheck)
|
||||||
|
|
||||||
|
# Act
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
{Disconnect-SsoAdminServer} | should -Throw 'Connected to more than 1 SSO server, please specify a SSO server via -Server parameter'
|
||||||
|
(Compare-Object $global:DefaultSsoAdminServers $expected -IncludeEqual).Count | Should Be 2
|
||||||
|
$expected.IsConnected | Should -Contain $true
|
||||||
|
}
|
||||||
|
|
||||||
|
It 'Diconnect-SsoAdminServer does disconnect via pipeline if connected to more than 1 SSO server' {
|
||||||
|
# Arrange
|
||||||
|
$expected += @(Connect-SsoAdminServer `
|
||||||
|
-Server $VcAddress `
|
||||||
|
-User $User `
|
||||||
|
-Password $Password `
|
||||||
|
-SkipCertificateCheck)
|
||||||
|
$expected += @(Connect-SsoAdminServer `
|
||||||
|
-Server $VcAddress `
|
||||||
|
-User $User `
|
||||||
|
-Password $Password `
|
||||||
|
-SkipCertificateCheck)
|
||||||
|
|
||||||
|
# Act
|
||||||
|
$expected | Disconnect-SsoAdminServer
|
||||||
|
# Assert
|
||||||
|
$global:DefaultSsoAdminServers.count | Should Be 0
|
||||||
|
$expected.IsConnected | Should -not -Contain $true
|
||||||
|
}
|
||||||
|
|
||||||
It 'Disconnects disconnected object' {
|
It 'Disconnects disconnected object' {
|
||||||
# Arrange
|
# Arrange
|
||||||
$expected = Connect-SsoAdminServer `
|
$expected = Connect-SsoAdminServer `
|
||||||
|
|||||||
Reference in New Issue
Block a user