예제 #1
0
    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
예제 #2
0
    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")