Newer
Older
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
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