Я написал то, что мне показалось простым python сценарием для поиска по нескольким строкам вывода и сопоставления (т. Е. "Grep") в указанной строке c. Вывести список всех очередей без сопоставления с шаблоном достаточно просто:
from qmf.console import Session
sess = Session()
broker = sess.addBroker("amqp://guest/guest@localhost")
queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")
for q in queues:
print (q)
Запуск сценария приводит к следующему выводу (усеченному):
pmena@myhost=> python ./queue_stuff.py
org.apache.qpid.broker:queue[0-1-1-0-62] 0-1-1-0-3:queue01
org.apache.qpid.broker:queue[0-1-1-0-55] 0-1-1-0-3:queue02
org.apache.qpid.broker:queue[0-1-1-0-63] 0-1-1-0-3:queue03
org.apache.qpid.broker:queue[0-1-1-0-51] 0-1-1-0-3:queue04
.
.
org.apache.qpid.broker:queue[0-1-1-0-51] 0-1-1-0-3:queue99
Однако, когда я добавляю оператор "if" в сопоставить с определенной строкой, например:
from qmf.console import Session
sess = Session()
broker = sess.addBroker("amqp://guest/guest@localhost")
queues = sess.getObjects(_class="queue", _package="org.apache.qpid.broker")
for q in queues:
if 'queue37' in q:
print (q)
Я получаю следующую ошибку:
pmena@myhost=> python ./queue_stuff.py
Traceback (most recent call last):
File "./queue_stuff.py", line 6, in <module>
if 'queue37' in q:
TypeError: argument of type 'Object' is not iterable
Мне кажется, что это простая проблема синтаксиса python, но это не так возможность получить разрешение из других сообщений.