Commit 8a1aeb46 authored by suraksha.pv's avatar suraksha.pv

replace keys

parent 18f3c1c0
import json import json
from pymongo import MongoClient from pymongo import MongoClient
input_json_file_name = 'input_json.json' MONGO_URI = "mongodb://ilens:ilens4321@192.168.0.220:2717/"
database_ilens_assistant = "ilens_assistant"
database_ilens_configuration = "ilens_configuration"
input_json_file_name = 'input_json.json' # input_json_file
input_project_id = "project_099" input_project_id = "project_099"
input_logbook_id = "logbook_131" input_logbook_id = ["logbook_131"]
input_step_id = 'step_182' input_step_id = ['step_182']
step_type = "NON-PERIODIC" # NON-PERIODIC,PERIODIC step_type = "NON-PERIODIC" # NON-PERIODIC,PERIODIC
CONNECTION_STRING = "mongodb://ilens:ilens4321@192.168.0.220:2717/" CONNECTION_STRING = MONGO_URI
client = MongoClient(CONNECTION_STRING) client = MongoClient(CONNECTION_STRING)
# add correct database names below ilens_assistant = client[database_ilens_assistant]
ilens_assistant = client["ilens_assistant"] ilens_configuration = client[database_ilens_configuration]
ilens_configuration = client["ilens_configuration"]
task_instances = ilens_assistant['task_instances'] task_instances = ilens_assistant['task_instances']
task_instance_data = ilens_assistant['task_instance_data'] task_instance_data = ilens_assistant['task_instance_data']
periodic_data = ilens_configuration['periodic_data'] periodic_data = ilens_configuration['periodic_data']
# ---------------------------code execution---------------------------------------#
with open(input_json_file_name) as user_file: with open(input_json_file_name) as user_file:
input_json = user_file.read() input_json = user_file.read()
input_dict = json.loads(input_json) input_dict = json.loads(input_json)
...@@ -37,33 +42,35 @@ def replace_keys(data, replacements): ...@@ -37,33 +42,35 @@ def replace_keys(data, replacements):
if step_type == 'NON-PERIODIC': if step_type == 'NON-PERIODIC':
query = {"logbook_id": input_logbook_id, "project_id": input_project_id} for logbook_id in input_logbook_id:
data = [] query = {"logbook_id": input_logbook_id, "project_id": input_project_id}
if logbook_data := list(ilens_assistant.task_instances.find(query)): data = []
data.extend(each['task_id'] for each in logbook_data) if logbook_data := list(ilens_assistant.task_instances.find(query)):
task_details = list(ilens_assistant.task_instance_data.find( data.extend(each['task_id'] for each in logbook_data)
{"step_id": input_step_id, "project_id": input_project_id, "task_id": {"$in": data}})) task_details = list(ilens_assistant.task_instance_data.find(
updated_y = [] {"step_id": input_step_id, "project_id": input_project_id, "task_id": {"$in": data}}))
if task_details: updated_y = []
for item in task_details: if task_details:
if 'step_data' in item and 'data' in item['step_data']: for item in task_details:
item['step_data'] = replace_keys(item['step_data'], input_dict) if 'step_data' in item and 'data' in item['step_data']:
updated_y.append(item) item['step_data'] = replace_keys(item['step_data'], input_dict)
for item in updated_y: updated_y.append(item)
if item['task_id'] in data: for item in updated_y:
update_query = {"task_id": item['task_id'], "step_id": input_step_id, "project_id": input_project_id} if item['task_id'] in data:
ilens_assistant.task_instance_data.update_one(update_query, {"$set": item}) update_query = {"task_id": item['task_id'], "step_id": input_step_id,
"project_id": input_project_id}
ilens_assistant.task_instance_data.update_one(update_query, {"$set": item})
elif step_type == "PERIODIC": elif step_type == "PERIODIC":
for step_id in input_step_id:
query = {"step_id": input_step_id} query = {"step_id": step_id}
periodic_step_data = list(ilens_assistant.periodic_data.find(query)) periodic_step_data = list(ilens_assistant.periodic_data.find(query))
updated_y = [] updated_y = []
if periodic_step_data: if periodic_step_data:
for each in periodic_step_data: for each in periodic_step_data:
if 'manual_data' in each: if 'manual_data' in each:
each['manual_data'] = replace_keys(each['manual_data'], input_dict) each['manual_data'] = replace_keys(each['manual_data'], input_dict)
updated_y.append(each) updated_y.append(each)
for item in updated_y: for item in updated_y:
update_query = {"step_id": item['step_id'], "_id": item["_id"]} update_query = {"step_id": item['step_id'], "_id": item["_id"]}
ilens_assistant.periodic_data.update_one(update_query, {"$set": item}) ilens_assistant.periodic_data.update_one(update_query, {"$set": item})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment