def insert_details(self, data, project_path, isghb, cycle_id, status, obs_no): print("------------------==insert_details==----------------------") print(data) print(project_path) dbutils = DBUtils() for each_rec in data: print("==each_rec==", each_rec) lta_file = os.path.basename(each_rec) if len(lta_file) == 1: lta_file = lta_file[0] try: current_date_timestamp = datetime.datetime.fromtimestamp(currentTimeInSec).strftime('%Y-%m-%d %H:%M:%S') lta_details = gS.get_naps_scangroup_details(lta_file) utils = self lta_details["ltacomb_size"] = int(utils.calculalate_file_sizse_in_MB(each_rec)) lta_details["status"] = "unprocessed" lta_details["base_path"] = project_path lta_details["start_time"] = current_date_timestamp lta_details["proposal_dir"] = project_path.split('/')[-1] lta_details["pipeline_id"] = 1 lta_details["comments"] = status lta_details["counter"] = 0 lta_details["ltacomb_file"] = lta_file lta_details["isghb"] = isghb lta_details["cycle_id"] = cycle_id if obs_no: lta_details["observation_no"] = int(obs_no) projectobsno_data = {} for key in tableSchema.projectobsnoData.iterkeys(): if key in lta_details.iterkeys(): projectobsno_data[key] = lta_details[key] ltadetails_data = {} for key in tableSchema.ltadetailsData.iterkeys(): if key in lta_details.iterkeys(): ltadetails_data[key] = lta_details[key] #print ltadetails_data # print("ltadetails_data") # print(ltadetails_data) columnKeys = {"project_id"} whereKeys = {"proposal_dir": lta_details["proposal_dir"], "cycle_id": cycle_id} project_id = dbutils.select_test_table("projectobsno", columnKeys, whereKeys, 0) if project_id: project_id = project_id[0] else: project_id = dbutils.insert_into_table("projectobsno", projectobsno_data, tableSchema.projectobsnoId) ltadetails_data["project_id"] = project_id lta_id = dbutils.insert_into_table("ltadetails", ltadetails_data, tableSchema.ltadetailsId) print lta_id print("projectobsno") print(projectobsno_data) except Exception as e: print e
def running_gvfits(self): print("Started Stage2: ") cycle_id = self.pipeline_configuration()["cycle_id"] dbutils = DBUtils() spamutils = SpamUtils() fileutils = FileUtils() currentTimeInSec = time.time() current_date_timestamp = datetime.datetime.fromtimestamp( currentTimeInSec).strftime('%Y-%m-%d %H:%M:%S') columnKeys = {"project_id", "ltacomb_file", "lta_id"} whereKeys = {"comments": str(cycle_id)} lta_details = dbutils.select_from_table("ltadetails", columnKeys, whereKeys, None) print(lta_details) for each_lta in lta_details: print(each_lta) project_id = each_lta["project_id"] # project_id = each_lta[0] lta_file = each_lta["ltacomb_file"] # lta_file = each_lta[1] # lta_id = each_lta[2] lta_id = each_lta["lta_id"] columnKeys = {"base_path"} whereKeys = {"project_id": project_id} lta_path_details = dbutils.select_test_table( "projectobsno", columnKeys, whereKeys, 0) print(lta_path_details) base_path = lta_path_details[0] print(base_path) uvfits_file = lta_file + '.UVFITS' base_lta = base_path + '/' + lta_file if os.path.exists(base_lta): base_uvfits = base_path + '/' + uvfits_file gvfits_status = spamutils.run_gvfits(base_lta, base_uvfits) if os.path.exists(base_uvfits): status = str(cycle_id) else: status = "failed" calibration_data = { "project_id": project_id, "lta_id": lta_id, "uvfits_file": uvfits_file, "status": status, "comments": gvfits_status, "uvfits_size": fileutils.calculalate_file_sizse_in_MB(base_uvfits), "start_time": current_date_timestamp } dbutils.insert_into_table("calibrationinput", calibration_data, "calibration_id") else: project_update_data = { "set": { "status": "failed", "comments": "ltacomb failed" }, "where": { "project_id": project_id } } lta_details_update_data = { "set": { "status": "failed", "comments": "ltacomb failed" }, "where": { "lta_id": lta_id } } dbutils.update_table(project_update_data, "projectobsno") dbutils.update_table(lta_details_update_data, "ltadetails")