예제 #1
0
class rabbitmonitor(threading.Thread):
	def __init__(self):
		threading.Thread.__init__ (self)
		self.scheduler = sched.scheduler(time.time,time.sleep)
		self.cl = Client("localhost:55672","guest","guest")

	def rabbit_stats(self):
		rabbit_data={}	
		try:
			exchanges = self.cl.get_exchanges()	
			queues = self.cl.get_queues()
			binding = self.cl.get_bindings()
			rabbit_data['time'] = time.time()
			rabbit_data['exchanges'] = exchanges
			rabbit_data['queues'] = queues
			for q in rabbit_data['queues']:
				## delete a tmp query with no consumer
				## zombie queue
				if "amq" in q['name'] and q['consumers'] == 0: 
					vhost = q['vhost']					
					self.cl.delete_queue(vhost,q['name']) 
					print 'deleting queue'
		except:
			print 'error'
			pass; 
	def run(self):
		while(1):	
			self.scheduler.enter(400,1,self.rabbit_stats,());	
			self.scheduler.run()
예제 #2
0
parser.add_argument("-vhostname",  dest='vhostname',  type=str,
                    help="Vhost name",  default='test')
args = parser.parse_args()
rabbitmq_url = args.rabbitmq_url
rabbitmq_user = args.rabbitmq_username
rabbitmq_password = args.rabbitmq_password
user = args.username
password = args.password
vhost = args.vhostname
cl = Client(rabbitmq_url, rabbitmq_user, rabbitmq_password)
assert cl.is_alive()

for queue in cl.get_queues():
    if queue['vhost'] == vhost:
        cl.purge_queue(vhost, queue['name'])
        cl.delete_queue(vhost, queue['name'])

for vhost_ in cl.get_all_vhosts():
    if vhost_['name'] == vhost:
        while True:
            try:
                cl.delete_vhost(vhost_['name'])
                break
            except Exception:
                pass

for user_ in cl.get_users():
    if user_['name'] == user:
        cl.delete_user(user_['name'])

cl.create_vhost(vhost)
예제 #3
0
    dt_now=str(datetime.now()).replace(" ","_")
    out_file1="/home/adaas/adaas_demo/logs-selector/q-top-1-" + dt_now
    out_file2="/home/adaas/adaas_demo/logs-selector/q-top-2-" + dt_now
    out_fname1="/home/adaas/adaas_demo/logs-selector/out_fname1.txt"
    out_fname2="/home/adaas/adaas_demo/logs-selector/out_fname2.txt"

    with open(out_fname1, "w+") as text_file:
        text_file.write(out_file1)

    with open(out_fname2, "w+") as text_file:
        text_file.write(out_file2)

#TODO :rethink if we want delete block in production
    try:
        cl.delete_queue(vhost=a_vhost, qname=a_Q1)
    except http.HTTPError:
        print_fc_now(out_file1,out_file2,"no queue " + a_Q1)

    try:
        cl.delete_queue(vhost=a_vhost, qname=a_Q2)
    except http.HTTPError:
        print_fc_now(out_file1,out_file2,"no queue " + a_Q2)


    cl.create_queue(vhost=a_vhost, name=a_Q1, durable=True)
    cl.create_queue(vhost=a_vhost, name=a_Q2, durable=True)

    try:
        cl.delete_binding(vhost=a_vhost, exchange=a_exchange, queue=a_Q1, rt_key=a_key2)
    except http.HTTPError: