def test_get_agent_definition(self): loader = IONLoader() ooi_loader = OOILoader(None, asset_path='res/preload/r2_ioc/ooi_assets', mapping_path=OOI_MAPPING_DOC) loader.ooi_loader = ooi_loader loader.ooi_loader.extract_ooi_assets() inst_objs = ooi_loader.get_type_assets("instrument") node_objs = ooi_loader.get_type_assets("node") loader._get_resource_obj = Mock(return_value=IonObject(RT.ExternalDatasetAgent)) # for ooi_id in sorted(inst_objs): # ooi_rd = OOIReferenceDesignator(ooi_id) # agent_id, agent_obj = loader._get_agent_definition(ooi_rd) # log.info("RD: %s, agent_id: %s", ooi_id, agent_id) checks = [ # Check some mapping override cases ("CP01CNSM-MF004-03-DOSTAD999", "DART_DOSTA_D_CSTL"), ("CP01CNSM-RI003-05-FLORTD999", "DART_FLORT_D_CSTL"), ("CP02PMUO-RI001-01-ADCPSL999", "DART_ADCPS_L_CSTL"), # Check some default cases ("GA03FLMB-RI001-03-DOSTAD999", "DART_DOSTA_D"), ("GA03FLMB-RI001-01-FLORTD999", "DART_FLORT_D"), ("GA03FLMB-RI001-04-ADCPSL999", "DART_ADCPS_L"), # Check some cases without mapping (using default) ("GI05MOAS-GL001-01-FLORDM999", "DART_FLORD_M"), ] for ooi_id, expected_agent_id in checks: ooi_rd = OOIReferenceDesignator(ooi_id) agent_id, agent_obj = loader._get_agent_definition(ooi_rd) self.assertEquals(agent_id, expected_agent_id)
def test_parse_alert_ranges(self): loader = IONLoader() out = loader._parse_alert_range('5<temp<10') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp<10') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<temp<=10') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp<=10') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<temp') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual(3, len(out), msg='value: %r' % out) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out)) out = loader._parse_alert_range('temp<10') self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out)) out = loader._parse_alert_range('temp<=10') self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out))
def test_parse_alert_ranges(self): loader = IONLoader() out = loader._parse_alert_range('5<temp<10') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp<10') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<temp<=10') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp<=10') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<temp') self.assertEqual('<', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual(3, len(out), msg='value: %r'%out) self.assertEqual('temp', out['value_id']) out = loader._parse_alert_range('5<=temp') self.assertEqual('<=', out['lower_rel_op']) self.assertEqual(5, out['lower_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out)) out = loader._parse_alert_range('temp<10') self.assertEqual('<', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out)) out = loader._parse_alert_range('temp<=10') self.assertEqual('<=', out['upper_rel_op']) self.assertEqual(10, out['upper_bound']) self.assertEqual('temp', out['value_id']) self.assertEqual(3, len(out))
def __init__(self, config, process, container): self.config = config self.loader = IONLoader() self.loader.categories = DEFAULT_CATEGORIES self.loader.excludecategories = [] self.loader.debug = ( self.loader.loadooi ) = ( self.loader.loadui ) = ( self.loader.exportui ) = self.loader.update = self.loader.bulk = self.loader.idmap = self.loader.clearcols = False self.loader.row_count = 0 self.loader.container = container self.loader.rpc_sender = process self.loader.CFG = process.CFG # self.loader.obj_classes = {} # Cache of class for object types # self.loader.resource_ids = {} # Holds a mapping of preload IDs to internal resource ids # self.loader.resource_objs = {} # Holds a mapping of preload IDs to the actual resource objects # self.loader.existing_resources = None # self.loader.unknown_fields = {} # track unknown fields so we only warn once # self.loader.constraint_defs = {} # alias -> value for refs, since not stored in DB # self.loader.contact_defs = {} # alias -> value for refs, since not stored in DB # self.loader.stream_config = {} # name -> obj for StreamConfiguration objects, used by *AgentInstance self.success = False
class _PreloadBaseTask(object): def __init__(self, config, process, container): self.config = config self.loader = IONLoader() self.loader.categories = DEFAULT_CATEGORIES self.loader.excludecategories = [] self.loader.debug = ( self.loader.loadooi ) = ( self.loader.loadui ) = ( self.loader.exportui ) = self.loader.update = self.loader.bulk = self.loader.idmap = self.loader.clearcols = False self.loader.row_count = 0 self.loader.container = container self.loader.rpc_sender = process self.loader.CFG = process.CFG # self.loader.obj_classes = {} # Cache of class for object types # self.loader.resource_ids = {} # Holds a mapping of preload IDs to internal resource ids # self.loader.resource_objs = {} # Holds a mapping of preload IDs to the actual resource objects # self.loader.existing_resources = None # self.loader.unknown_fields = {} # track unknown fields so we only warn once # self.loader.constraint_defs = {} # alias -> value for refs, since not stored in DB # self.loader.contact_defs = {} # alias -> value for refs, since not stored in DB # self.loader.stream_config = {} # name -> obj for StreamConfiguration objects, used by *AgentInstance self.success = False def run(self): # try: # self.prepare_loader() # except: # log.error('preload component failed to initialize', exc_info=True) # return try: self.perform_preload() self.success = True except: log.error("preload component failed to load rows", exc_info=True) return def prepare_loader(self): if not self.loader.resource_ids: self.loader._load_system_ids() self.loader._prepare_incremental()
def test_get_agent_definition(self): loader = IONLoader() ooi_loader = OOILoader(None, asset_path='res/preload/r2_ioc/ooi_assets', mapping_path=OOI_MAPPING_DOC) loader.ooi_loader = ooi_loader loader.ooi_loader.extract_ooi_assets() inst_objs = ooi_loader.get_type_assets("instrument") node_objs = ooi_loader.get_type_assets("node") loader._get_resource_obj = Mock( return_value=IonObject(RT.ExternalDatasetAgent)) # for ooi_id in sorted(inst_objs): # ooi_rd = OOIReferenceDesignator(ooi_id) # agent_id, agent_obj = loader._get_agent_definition(ooi_rd) # log.info("RD: %s, agent_id: %s", ooi_id, agent_id) checks = [ # Check some mapping override cases ("CP01CNSM-MF004-03-DOSTAD999", "DART_DOSTA_D_CSTL"), ("CP01CNSM-RI003-05-FLORTD999", "DART_FLORT_D_CSTL"), ("CP02PMUO-RI001-01-ADCPSL999", "DART_ADCPS_L_CSTL"), # Check some default cases ("GA03FLMB-RI001-03-DOSTAD999", "DART_DOSTA_D"), ("GA03FLMB-RI001-01-FLORTD999", "DART_FLORT_D"), ("GA03FLMB-RI001-04-ADCPSL999", "DART_ADCPS_L"), # Check some cases without mapping (using default) ("GI05MOAS-GL001-01-FLORDM999", "DART_FLORD_M"), ] for ooi_id, expected_agent_id in checks: ooi_rd = OOIReferenceDesignator(ooi_id) agent_id, agent_obj = loader._get_agent_definition(ooi_rd) self.assertEquals(agent_id, expected_agent_id)