本文整理汇总了Python中ion.services.sa.observatory.observatory_util.ObservatoryUtil._get_predicate_assocs方法的典型用法代码示例。如果您正苦于以下问题:Python ObservatoryUtil._get_predicate_assocs方法的具体用法?Python ObservatoryUtil._get_predicate_assocs怎么用?Python ObservatoryUtil._get_predicate_assocs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ion.services.sa.observatory.observatory_util.ObservatoryUtil
的用法示例。
在下文中一共展示了ObservatoryUtil._get_predicate_assocs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DeploymentPlanner
# 需要导入模块: from ion.services.sa.observatory.observatory_util import ObservatoryUtil [as 别名]
# 或者: from ion.services.sa.observatory.observatory_util.ObservatoryUtil import _get_predicate_assocs [as 别名]
#.........这里部分代码省略.........
if found_device_id == device_id:
ret_ignore = (site_id, device_id)
else:
ret_remove = (site_id, found_device_id)
log.warning("%s '%s' already hasDevice %s", site_type, site_id, device_type)
except NotFound:
pass
return ret_remove, ret_ignore
def _get_site_ref_designator_map(self):
# create a map of site ids to their reference designator codes to facilitate matching
site_ref_designator_map = {}
for id, site_obj in self.site_resources.iteritems():
site_ref_designator_map[site_obj.reference_designator] = id
log.debug("prepare_activation site_ref_designator_map: %s", site_ref_designator_map)
return site_ref_designator_map
def _get_device_resources(self, device_tree):
# create a map of device ids to their full resource object to assit with lookup and validation
device_objs = self.clients.resource_registry.read_mult(device_tree.keys())
log.debug("prepare_activation device_objectss: %s", device_objs)
for device_obj in device_objs:
self.device_resources[device_obj._id] = device_obj
def _get_models(self):
# retrieve all hasModel associations from the registry then filter
models_tuples = {}
assoc_list = self.outil._get_predicate_assocs(PRED.hasModel)
for assoc in assoc_list:
# only include these subject types in the map
if assoc.st in [RT.InstrumentDevice, RT.InstrumentSite, RT.PlatformDevice, RT.PlatformSite]:
if assoc.s not in models_tuples:
models_tuples[assoc.s] = []
# a site may support more than one model so map to a list of models
models_tuples[assoc.s].append((assoc.st, assoc.o, assoc.ot))
if assoc.s not in self.models_map:
self.models_map[assoc.s] = []
self.models_map[assoc.s].append(assoc.o)
log.debug("models_map: %s", self.models_map )
def _validate_models(self, site_id, device_id):
# validate that the device and the site models are compatible
if device_id in self.models_map:
device_model_list = self.models_map[device_id]
# devices should only be associated to one model
if len(device_model_list) != 1:
log.error("Device not associated to one distinct model. Device id: %s", device_id)
elif device_model_list and device_model_list[0] not in self.models_map[site_id]:
log.error("Device and Site to not share a compatible model. Device id: %s Site id: %s", site_id)
else:
log.error("Device not associated with a device model. Device id: %s", device_id)
raise NotFound("Device not associated with a device model. Device id: %s", device_id)
def _validate_port_assignments(self, device_id, platform_port):
deployment_context_type = type(self.deployment_obj.context).__name__
self._validate_ooi_reference_designator(device_id, platform_port)