forked from mariuszwojcik/RabbitMQTools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GetConnection.ps1
99 lines (72 loc) · 3.07 KB
/
GetConnection.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<#
.Synopsis
Gets Connections to the server.
.DESCRIPTION
The Get-RabbitMQConnection cmdlet gets connections to the RabbitMQ server.
The cmdlet allows you to show all Connections or filter them by name using wildcards.
The result may be zero, one or many RabbitMQ.Connection objects.
To get Connections from remote server you need to provide -ComputerName parameter.
The cmdlet is using REST Api provided by RabbitMQ Management Plugin. For more information go to: https://www.rabbitmq.com/management.html
.EXAMPLE
Get-RabbitMQConnection
This command gets a list of all connections to local RabbitMQ server.
.EXAMPLE
Get-RabbitMQConnection -ComputerName myrabbitmq.servers.com
This command gets a list of all connections myrabbitmq.servers.com server.
.EXAMPLE
Get-RabbitMQConnection con1*
This command gets a list of all Connections with name starting with "con1".
.EXAMPLE
Get-RabbitMQConnection private*, public*
This command gets a list of all Connections with name starting with either "private" or "public".
.EXAMPLE
@("private*", "*public") | Get-RabbitMQConnection
This command pipes name filters to Get-RabbitMQConnection cmdlet.
.INPUTS
You can pipe Name to filter the results.
.OUTPUTS
By default, the cmdlet returns list of RabbitMQ.Connection objects which describe connections.
.LINK
https://www.rabbitmq.com/management.html - information about RabbitMQ management plugin.
#>
function Get-RabbitMQConnection
{
[CmdletBinding(DefaultParameterSetName='defaultLogin', SupportsShouldProcess=$true, ConfirmImpact='None')]
Param
(
# Name of RabbitMQ Connection.
[parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[Alias("Connection", "ConnectionName")]
[string[]]$Name = "",
# Name of the computer hosting RabbitMQ server. Defalut value is localhost.
[parameter(ValueFromPipelineByPropertyName=$true)]
[Alias("HostName", "hn", "cn")]
[string]$ComputerName = $defaultComputerName,
# UserName to use when logging to RabbitMq server.
[Parameter(Mandatory=$true, ParameterSetName='login')]
[string]$UserName,
# Password to use when logging to RabbitMq server.
[Parameter(Mandatory=$true, ParameterSetName='login')]
[string]$Password,
# Credentials to use when logging to RabbitMQ server.
[Parameter(Mandatory=$true, ParameterSetName='cred')]
[PSCredential]$Credentials
)
Begin
{
$Credentials = NormaliseCredentials
}
Process
{
if ($pscmdlet.ShouldProcess("server $ComputerName", "Get connection(s): $(NamesToString $Name '(all)')"))
{
$result = GetItemsFromRabbitMQApi -ComputerName $ComputerName $Credentials "connections"
$result = ApplyFilter $result 'name' $Name
$result | Add-Member -NotePropertyName "ComputerName" -NotePropertyValue $ComputerName
SendItemsToOutput $result "RabbitMQ.Connection"
}
}
End
{
}
}