import pika from utils.my_logging import logging import os, glob from pymongo import MongoClient if __name__ == '__main__': import yaml with open("config.yaml", 'r') as yamlfile: cfg = yaml.load(yamlfile) #print(cfg['rabbitmq']) queues_to_delete = [] for key in cfg['rabbitmq'].keys(): # print(key) if 'queue_name' in key: queues_to_delete.append( cfg['session']['id'] + '_' + cfg['rabbitmq'][key] ) logging.debug(queues_to_delete) # exit(1) connection = pika.BlockingConnection(pika.ConnectionParameters(host=cfg['rabbitmq']['host'])) channel = connection.channel() for queue in queues_to_delete: try: channel.queue_delete(queue=queue) logging.info('The queue named "%s" was deleted.' % queue) except: pass connection.close() # delete this session files in the working_directory for filename in glob.glob("%s/%s*" % (cfg['session']['working_directory'], cfg['session']['id'])): if 'json' not in filename: os.remove(filename) # delete MongoDB collections/records related to this session the_session_id = cfg['session']['id'] mongo_client = MongoClient('mongodb://%s:%s@%s:%s/' % (cfg['mongo']['username'], cfg['mongo']['password'], cfg['mongo']['host'], cfg['mongo']['port'])) mongo_db = mongo_client[cfg['mongo']['data-db']] #collection = mongo_db['indexing-sessions'] collection_name = 'indexing-session-' + the_session_id collection = mongo_db[ collection_name ] mongo_db[ 'indexing-session-' + the_session_id ] collection.drop() logging.info('The collection named "%s" was deleted.' % collection_name) mongo_db = mongo_client[cfg['mongo']['report-db']] collection = mongo_db['indexing-sessions'] collection.delete_one({'_id': the_session_id}) logging.info('The doc having "%s" as id was deleted from the reporting collection.' % the_session_id) # doc = dict() # doc['_id'] = cfg['session']['id'] # doc['started_at'] = datetime.datetime.utcnow() # doc['configuration'] = cfg