-
Notifications
You must be signed in to change notification settings - Fork 0
/
wmb-list.py
61 lines (51 loc) · 1.92 KB
/
wmb-list.py
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
#!/usr/bin/env python2.7
"""
this script extracts MessageFlow, ComIbmMQOutputNode, ComIbmMQInputNode
from the mqsireportproperties command output
"""
import re
import subprocess
import sys
if len(sys.argv) != 3:
print """
ERROR:
This script requires 2 arguments
- Broker Name
- Execution Group
"""
exit(1)
broker = sys.argv[1]
executionGroup = sys.argv[2]
print "Listing for Broker: '" + broker + "' and Execution group: '" + executionGroup + "'"
# exec mqsireportproperties and send output pipe to egrep
mqsireportproperties = subprocess.Popen(['mqsireportproperties', broker, '-e', executionGroup, '-o', 'AllMessageFlows', '-r' ],
stdout=subprocess.PIPE, )
egrep = subprocess.Popen(['egrep', 'MessageFlow|ComIbmMQOutputNode|queueName=|label=|ComIbmMQInputNode'],
stdin=mqsireportproperties.stdout,
stdout=subprocess.PIPE, )
mqsireportproperties.stdout.close()
# implement some switches
counter0 = 0
ComIbmMQInputNode=0
ComIbmMQOutputNode=0
# process output and extract flowname input queues and output queues
for line in iter(egrep.stdout.readline, ""):
if line.strip() == "MessageFlow":
counter0 += 1
print str(counter0) + " " + line.strip()
flowName = re.match(r'(^\s\slabel=)\'(.*)\'', line)
if flowName:
print "\tFlowName: " + flowName.group(2)
if line.strip() == "ComIbmMQInputNode":
ComIbmMQInputNode = 1
if line.strip() == "ComIbmMQOutputNode":
ComIbmMQOutputNode = 1
queueName = re.match(r'(^\s+queueName=)\'(.*)\'', line)
if queueName and queueName.group(2) != '':
if ComIbmMQInputNode == 1:
ComIbmMQInputNode=0
print "\tinputQueueName: " + queueName.group(2)
elif ComIbmMQOutputNode == 1:
ComIbmMQOutputNode=0
print "\toutputQueueName: " + queueName.group(2)
exit(0)