-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add Pester tests * Add CI job to publish github release * fix job dependencies * fix output paths * use workspace instead of artifact store * publish only in master branch * Convert test results to JUnit so CircleCI can process * store test results as artifacts * Added pre-release checks * Update to function Get-QlikSession (#70)
- Loading branch information
Showing
3 changed files
with
130 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,78 @@ | ||
function Get-QlikSession { | ||
[CmdletBinding(DefaultParameterSetName="User")] | ||
param ( | ||
[parameter(ParameterSetName="Id",Mandatory=$true,Position=0,ValueFromPipelinebyPropertyName=$true)] | ||
[string]$id, | ||
<# | ||
.SYNOPSIS | ||
Gets the current User Sessions on the specified Proxy | ||
.DESCRIPTION | ||
This returns a session object with the corresponding SessionId. | ||
https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html | ||
.PARAMETER id | ||
This is to return the Session Object for a Specific Session ID | ||
.PARAMETER userDirectory | ||
The userDirecotry paramater is used as part of identitying the users sessions, must be used with userID | ||
.PARAMETER userId | ||
The userID paramater is used as part of identitying the users sessions, must be used with userDirecotry | ||
.PARAMETER virtualProxyPrefix | ||
Specifies the Virtual Proxy to get the sessions from | ||
.EXAMPLE | ||
PS C:\> Get-QlikSession | ||
.EXAMPLE | ||
PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1" | ||
.EXAMPLE | ||
PS C:\> Get-QlikSession -userDirectory Domain -userId Marc | ||
.EXAMPLE | ||
PS C:\> Get-QlikSession -virtualProxyPrefix "/ProxyX1" -userDirectory Domain -userId Marc | ||
[parameter(ParameterSetName="User",Mandatory=$true,Position=0,ValueFromPipelinebyPropertyName=$true)] | ||
[string]$userDirectory, | ||
.NOTES | ||
Additional information about the Session API can be found | ||
https://help.qlik.com/en-US/sense-developer/November2018/apis/ProxyAPI/OpenAPI_Main.generated.html#19b1cf4a56294022A146C978a46f3a59 | ||
https://help.qlik.com/en-US/sense-developer/November2018/Subsystems/ProxyServiceAPI/Content/Sense_ProxyServiceAPI/ProxyServiceAPI-Session-Module-API-Session-Get.htm | ||
[parameter(ParameterSetName="User",Mandatory=$true,Position=1,ValueFromPipelinebyPropertyName=$true)] | ||
[string]$userId, | ||
|
||
[alias("vp")] | ||
[string]$virtualProxyPrefix, | ||
|
||
[switch]$raw | ||
) | ||
|
||
PROCESS { | ||
$proxy = Get-QlikProxy local | ||
$prefix = "https://$($proxy.serverNodeConfiguration.hostName):$($proxy.settings.restListenPort)/qps" | ||
if ($virtualProxyPrefix) { $prefix += "/$virtualProxyPrefix" } | ||
if ($id) { | ||
$path = "$prefix/session/$id" | ||
} else { | ||
$path = "$prefix/user/$userDirectory/$userId" | ||
} | ||
If( $raw ) { $rawOutput = $true } | ||
return Invoke-QlikGet $path | ||
} | ||
} | ||
#> | ||
function Get-QlikSession | ||
{ | ||
[CmdletBinding(DefaultParameterSetName = 'Default')] | ||
param | ||
( | ||
[Parameter(ParameterSetName = 'Id', | ||
Mandatory = $true, | ||
ValueFromPipelineByPropertyName = $true, | ||
Position = 0)] | ||
[string]$id, | ||
[Parameter(ParameterSetName = 'User', | ||
Mandatory = $true, | ||
ValueFromPipelineByPropertyName = $true, | ||
Position = 0)] | ||
[string]$userDirectory, | ||
[Parameter(ParameterSetName = 'User', | ||
Mandatory = $true, | ||
ValueFromPipelineByPropertyName = $true, | ||
Position = 1)] | ||
[string]$userId, | ||
[Alias('vp')] | ||
[string]$virtualProxyPrefix | ||
) | ||
|
||
PROCESS | ||
{ | ||
$proxy = Get-QlikProxy local | ||
$prefix = "https://$($proxy.serverNodeConfiguration.hostName):$($proxy.settings.restListenPort)/qps" | ||
if ($PSBoundParameters.ContainsKey("virtualProxyPrefix")) { $prefix = "$($prefix)/$virtualProxyPrefix" } | ||
switch ($PSCmdlet.ParameterSetName) | ||
{ | ||
USER{ $path = "$prefix/user/$userDirectory/$userId" } | ||
ID{ $path = "$prefix/session/$id" } | ||
Default { $path = "$prefix/session" } | ||
} | ||
try | ||
{ | ||
$response = Invoke-QlikGet $path | ||
} | ||
catch { $response = $null } | ||
return $response | ||
} | ||
} |