本文整理汇总了Python中ion.services.sa.observatory.observatory_util.ObservatoryUtil.get_child_devices方法的典型用法代码示例。如果您正苦于以下问题:Python ObservatoryUtil.get_child_devices方法的具体用法?Python ObservatoryUtil.get_child_devices怎么用?Python ObservatoryUtil.get_child_devices使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ion.services.sa.observatory.observatory_util.ObservatoryUtil
的用法示例。
在下文中一共展示了ObservatoryUtil.get_child_devices方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _notification_children
# 需要导入模块: from ion.services.sa.observatory.observatory_util import ObservatoryUtil [as 别名]
# 或者: from ion.services.sa.observatory.observatory_util.ObservatoryUtil import get_child_devices [as 别名]
def _notification_children(notification_origin, notification_type, observatory_util=None):
if observatory_util is None:
observatory_util = ObservatoryUtil()
children = []
if notification_type == NotificationTypeEnum.PLATFORM:
device_relations = observatory_util.get_child_devices(notification_origin)
children = [did for pt,did,dt in device_relations[notification_origin]]
elif type == NotificationTypeEnum.SITE:
child_site_dict, ancestors = observatory_util.get_child_sites(notification_origin)
children = child_site_dict.keys()
elif type == NotificationTypeEnum.FACILITY:
objects, _ = resource_registry.find_objects(subject=notification_origin, predicate=PRED.hasResource, id_only=False)
for o in objects:
if o.type_ == RT.DataProduct \
or o.type_ == RT.InstrumentSite \
or o.type_ == RT.InstrumentDevice \
or o.type_ == RT.PlatformSite \
or o.type_ == RT.PlatformDevice:
children.append(o._id)
if notification_origin in children:
children.remove(notification_origin)
return children
示例2: TestObservatoryUtil
# 需要导入模块: from ion.services.sa.observatory.observatory_util import ObservatoryUtil [as 别名]
# 或者: from ion.services.sa.observatory.observatory_util.ObservatoryUtil import get_child_devices [as 别名]
#.........这里部分代码省略.........
self.mu.assign_mockres_find_objects(filter_predicate="hasResource")
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=False, id_only=True)
self.assertEquals(len(child_sites), 6)
self.assertEquals(len(site_ancestors), 5)
self.assertIn('Sub_1', child_sites)
self.assertIn('PS_1', child_sites)
self.assertIn('IS_1', child_sites)
self.assertIn('Obs_1', child_sites)
self.assertIn('Obs_2', child_sites)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=True, id_only=True)
self.assertEquals(len(child_sites), 7)
self.assertEquals(len(site_ancestors), 5)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=True, id_only=False)
self.assertEquals(len(child_sites), 7)
self.assertEquals(len(site_ancestors), 5)
self.assertEquals(len([v for v in child_sites.values() if v is None]), 0)
self.assertEquals(child_sites['Org_1']._get_type(), RT.Org)
def test_get_site_devices(self):
self.mu.load_mock_resources(self.res_list)
self.mu.load_mock_associations(self.assoc_list2)
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
site_devices = self.obs_util.get_site_devices(['Sub_1', 'PS_1', 'IS_1'])
self.assertEquals(len(site_devices), 3)
self.assertEquals(site_devices['Sub_1'], [])
self.assertEquals(site_devices['IS_1'], [('InstrumentSite', 'ID_1', 'InstrumentDevice')])
def test_get_child_devices(self):
self.mu.load_mock_resources(self.res_list)
self.mu.load_mock_associations(self.assoc_list2)
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
child_devices = self.obs_util.get_child_devices('PD_1')
self.assertEquals(len(child_devices), 2)
self.assertEquals(child_devices['PD_1'][0][1], 'ID_1')
child_devices = self.obs_util.get_child_devices('ID_1')
self.assertEquals(len(child_devices), 1)
self.assertEquals(child_devices['ID_1'], [])
child_devices = self.obs_util.get_child_devices('Sub_1')
self.assertEquals(len(child_devices), 1)
self.assertEquals(child_devices['Sub_1'], [])
child_devices = self.obs_util.get_child_devices('XXX')
self.assertEquals(len(child_devices), 1)
def test_get_device_data_products(self):
self.mu.load_mock_resources(self.res_list + self.res_list1)
self.mu.load_mock_associations(self.assoc_list + self.assoc_list1 + self.assoc_list2 + self.assoc_list3)
self.mu.assign_mockres_find_objects(filter_predicate="hasResource")
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
res_dict = self.obs_util.get_site_data_products('Obs_1', RT.Observatory)
self.assertGreaterEqual(len(res_dict), 6)
self.assertIsNone(res_dict['data_product_resources'])
self.assertIn('ID_1', res_dict['device_data_products'])
self.assertEquals(len(res_dict['device_data_products']['ID_1']), 3)
self.assertIn('DP_1', res_dict['device_data_products']['ID_1'])
示例3: DeploymentPlanner
# 需要导入模块: from ion.services.sa.observatory.observatory_util import ObservatoryUtil [as 别名]
# 或者: from ion.services.sa.observatory.observatory_util.ObservatoryUtil import get_child_devices [as 别名]
#.........这里部分代码省略.........
site_resources, site_children = self.outil.get_child_sites( parent_site_id=top_site._id, id_only=False)
site_ids = site_resources.keys()
# get_site_devices returns a tuple that includes all devices linked to deployment sites
site_devices = self.outil.get_site_devices(site_ids)
for site, tuple_list in site_devices.iteritems():
for (site_type, device_id, device_type) in tuple_list:
device_ids.append(device_id)
return site_ids, device_ids
def prepare_activation(self, deployment_obj):
"""
Prepare (validate) a deployment for activation, returning lists of what associations need to be added
and which ones need to be removed.
"""
self.match_list = []
self.remove_list = []
self.unmatched_device_list = []
self.models_map = {}
self.top_device = ''
self.top_site = ''
self.deployment_obj = deployment_obj
self.site_resources = {}
self.device_resources = {}
self.outil = ObservatoryUtil(self, enhanced_rr=self.enhanced_rr)
# retrieve the site tree information using the OUTIL functions; site info as well has site children
self.top_site, self.top_device = self._find_top_site_device(deployment_obj._id)
# must have a site and a device to continue
if not self.top_site or not self.top_device:
return [], []
log.debug("port_assignments: %s", self.deployment_obj.port_assignments )
# retrieve all models to use in match validation
self._get_models()
self.site_resources, site_children = self.outil.get_child_sites( parent_site_id=self.top_site._id, id_only=False)
log.debug("site_resources: %s", self.site_resources)
log.debug("site_children: %s", site_children)
site_ref_designator_map = self._get_site_ref_designator_map()
# retrieve the device tree from outil then cache the device resources
device_tree = self.outil.get_child_devices(device_id=self.top_device._id)
self._get_device_resources(device_tree)
self._match_devices(self.top_device._id, device_tree, site_ref_designator_map)
# check for hasDevice relations to remove and existing hasDevice relations
self. _find_pairs_to_remove()
if self.unmatched_device_list:
log.warning("Devices not matched to sites: %s ", self.unmatched_device_list)
return self.remove_list, self.match_list
def _match_devices(self, device_id, device_tree, site_ref_designator_map):
# there will not be a port assignment for the top device
if device_id == self.top_device._id:
self._validate_models(self.top_site._id, self.top_device._id)
self.match_list.append((self.top_site._id, self.top_device._id))
tuple_list = device_tree[device_id]
for (pt, child_id, ct) in tuple_list:
log.debug(" tuple - pt: %s child_id: %s ct: %s", pt, child_id, ct)
# match this child device then if it has children, call _match_devices with this id
# check that this device is represented in device tree and in port assignments
if child_id in self.device_resources and child_id in self.deployment_obj.port_assignments:
platform_port = self.deployment_obj.port_assignments[child_id]
log.debug("device platform_port: %s", platform_port)
# validate PlatformPort info for this device
self._validate_port_assignments(child_id, platform_port)
if platform_port.reference_designator in site_ref_designator_map:
matched_site = site_ref_designator_map[platform_port.reference_designator]
self._validate_models(matched_site, child_id)
log.info("match_list append site: %s device: %s", matched_site, child_id)
self.match_list.append((matched_site, child_id))
#recurse on the children of this device
self._match_devices(child_id, device_tree, site_ref_designator_map)
# otherwise cant be matched to a site
else:
self.unmatched_device_list.append(child_id)
示例4: TestObservatoryUtil
# 需要导入模块: from ion.services.sa.observatory.observatory_util import ObservatoryUtil [as 别名]
# 或者: from ion.services.sa.observatory.observatory_util.ObservatoryUtil import get_child_devices [as 别名]
#.........这里部分代码省略.........
self.mu.assign_mockres_find_objects(filter_predicate="hasResource")
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=False, id_only=True)
self.assertEquals(len(child_sites), 6)
self.assertEquals(len(site_ancestors), 5)
self.assertIn('Sub_1', child_sites)
self.assertIn('PS_1', child_sites)
self.assertIn('IS_1', child_sites)
self.assertIn('Obs_1', child_sites)
self.assertIn('Obs_2', child_sites)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=True, id_only=True)
self.assertEquals(len(child_sites), 7)
self.assertEquals(len(site_ancestors), 5)
child_sites, site_ancestors = self.obs_util.get_child_sites(org_id='Org_1', include_parents=True, id_only=False)
self.assertEquals(len(child_sites), 7)
self.assertEquals(len(site_ancestors), 5)
self.assertEquals(len([v for v in child_sites.values() if v is None]), 0)
self.assertEquals(child_sites['Org_1']._get_type(), RT.Org)
def test_get_site_devices(self):
self.mu.load_mock_resources(self.res_list)
self.mu.load_mock_associations(self.assoc_list2)
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
site_devices = self.obs_util.get_site_devices(['Sub_1', 'PS_1', 'IS_1'])
self.assertEquals(len(site_devices), 3)
self.assertEquals(site_devices['Sub_1'], [])
self.assertEquals(site_devices['IS_1'], [('InstrumentSite', 'ID_1', 'InstrumentDevice')])
def test_get_child_devices(self):
self.mu.load_mock_resources(self.res_list)
self.mu.load_mock_associations(self.assoc_list2)
self.obs_util = ObservatoryUtil(self.process_mock, self.container_mock)
child_devices = self.obs_util.get_child_devices('PD_1')
self.assertEquals(len(child_devices), 1)
self.assertEquals(child_devices['PD_1'][0][1], 'ID_1')
child_devices = self.obs_util.get_child_devices('ID_1')
self.assertEquals(len(child_devices), 1)
self.assertEquals(child_devices['ID_1'], [])
child_devices = self.obs_util.get_child_devices('Sub_1')
self.assertEquals(len(child_devices), 1)
self.assertEquals(child_devices['Sub_1'], [])
child_devices = self.obs_util.get_child_devices('XXX')
self.assertEquals(len(child_devices), 1)
event_list1 = [
dict(et='DeviceStatusEvent', o='ID_1', attr=dict(status=DeviceStatusType.STATUS_WARNING) )
]
event_list2 = [
dict(et='DeviceStatusEvent', o='ID_1', attr=dict(status=DeviceStatusType.STATUS_WARNING))
]
event_list3 = [
dict(et='DeviceCommsEvent', o='ID_1', attr=dict(state=DeviceCommsType.DATA_DELIVERY_INTERRUPTION))
]
event_list4 = [
dict(et='DeviceStatusEvent', o='PD_1', attr=dict(status=DeviceStatusType.STATUS_WARNING)),
dict(et='DeviceCommsEvent', o='PD_1', attr=dict(state=DeviceCommsType.DATA_DELIVERY_INTERRUPTION))
]