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()
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)
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: