def configure_survey(self, survey_conf_file): prop_conf_path = os.path.dirname(survey_conf_file) confdict = read_conf_file(survey_conf_file) self.survey_duration_DAYS = confdict["survey"]["survey_duration"] self.survey_duration_SECS = self.survey_duration_DAYS * 24 * 60 * 60.0 self.propid_counter = 0 self.science_proposal_list = [] if 'scripted_propconf' in confdict["proposals"]: scripted_propconflist = confdict["proposals"]["scripted_propconf"] else: scripted_propconflist = [] if not isinstance(scripted_propconflist, list): # turn it into a list with one entry propconf = scripted_propconflist scripted_propconflist = [] scripted_propconflist.append(propconf) self.log.info("configure_survey: scripted proposals %s" % (scripted_propconflist)) for k in range(len(scripted_propconflist)): self.propid_counter += 1 scripted_prop = ScriptedProposal( self.propid_counter, os.path.join(prop_conf_path, "{}".format(scripted_propconflist[k])), self.sky) self.science_proposal_list.append(scripted_prop) if 'areadistribution_propconf' in confdict["proposals"]: areadistribution_propconflist = confdict["proposals"][ "areadistribution_propconf"] else: areadistribution_propconflist = [] self.log.info("areadistributionPropConf:%s default" % (areadistribution_propconflist)) if not isinstance(areadistribution_propconflist, list): # turn it into a list with one entry propconf = areadistribution_propconflist areadistribution_propconflist = [] areadistribution_propconflist.append(propconf) self.log.info("init: areadistribution proposals %s" % (areadistribution_propconflist)) for k in range(len(areadistribution_propconflist)): self.propid_counter += 1 configfilepath = os.path.join( prop_conf_path, "{}".format(areadistribution_propconflist[k])) (path, name_ext) = os.path.split(configfilepath) (name, ext) = os.path.splitext(name_ext) proposal_confdict = read_conf_file(configfilepath) self.create_area_proposal(self.propid_counter, name, proposal_confdict) for prop in self.science_proposal_list: prop.configure_constraints(self.params)
def test_read_conf_file(self): file_path = conf_file_path(__name__, "../conf", "survey", "areaProp1.conf") conf_dict = read_conf_file(file_path) self.assertEquals(len(conf_dict), 11) sky_region_cuts = conf_dict["sky_region"]["cuts"] self.assertEqual(len(sky_region_cuts), 2) self.assertEqual(sky_region_cuts[0][0], 'RA')
def test_new_fields(self): file_path = conf_file_path(__name__, "../conf", "survey", "rolling_cadence.conf") conf_dict = read_conf_file(file_path) selection_mappings = conf_dict["sky_region"]["selection_mappings"] self.assertEqual(len(selection_mappings), 5) self.assertEqual(len(selection_mappings[0]), 1) self.assertTupleEqual(selection_mappings[0], (0,)) self.assertTupleEqual(selection_mappings[1], (1,))
def test_new_fields(self): file_path = conf_file_path(__name__, "../conf", "survey", "rolling_cadence.conf") conf_dict = read_conf_file(file_path) selection_mappings = conf_dict["sky_region"]["selection_mappings"] self.assertEqual(len(selection_mappings), 5) self.assertEqual(len(selection_mappings[0]), 1) self.assertTupleEqual(selection_mappings[0], (0, )) self.assertTupleEqual(selection_mappings[1], (1, ))
def setUp(self): logging.getLogger().setLevel(logging.WARN) configfilepath = conf_file_path(__name__, "../conf", "survey", "scriptedProp1.conf") resource_path = os.path.dirname(configfilepath) proposal_confdict = read_conf_file(configfilepath) script_file = os.path.join(resource_path, proposal_confdict["script"]["scriptfile"]) self.scriptedprop = ScriptedProposal(1, "scriptedProp1", proposal_confdict, script_file, self.skyModel)
def __init__(self, options, driver=Driver()): self.log = logging.getLogger("schedulerMain") main_confdict = read_conf_file(conf_file_path(__name__, "conf", "scheduler", "main.conf")) self.measinterval = main_confdict['log']['rate_meas_interval'] if options.path is None: self.configuration_path = str(CONFIG_DIRECTORY) else: self.configuration_path = options.path if _gitpython: self.config_repo = Repo(str(CONFIG_DIRECTORY_PATH)) else: self.config_repo = None self.current_setting = '' self.valid_settings = self.read_valid_settings() self.log.debug('List of valid configurations:') for setting in self.valid_settings: if self.current_setting == setting[setting.find('/')+1:]: self.log.debug('{} [current]'.format(setting)) else: self.log.debug('{}'.format(setting)) self.sal = SALUtils(options.timeout) self.schedulerDriver = driver self.config = SchedulerConfig() self.meascount = 0 self.visitcount = 0 self.synccount = 0 self.summary_state_enum = {'DISABLE': 0, 'ENABLE': 1, 'FAULT': 2, 'OFFLINE': 3, 'STANDBY': 4} self.cmd_state_transition = {'enterControl': 'STANDBY', 'start': 'DISABLE', 'enable': 'ENABLE' } self.state = 'OFFLINE' self.meastime = time.time()
def setUp(self): logging.getLogger().setLevel(logging.WARN) conf_path = conf_file_path(__name__, "conf") self.driver = Driver() driver_conf_file = os.path.join(conf_path, "scheduler", "driver.conf") survey_conf_file = os.path.join(conf_path, "survey", "test_survey.conf") driver_confdict = read_conf_file(driver_conf_file) obs_site_confdict = ObservatoryLocation.get_configure_dict() obs_model_confdict = ObservatoryModel.get_configure_dict() self.driver.configure(driver_confdict) self.driver.configure_location(obs_site_confdict) self.driver.configure_observatory(obs_model_confdict) self.driver.configure_survey(survey_conf_file)