def toggle(self, item_id, wait=None, uuid=None, priority=None): """ toggle lvar value Change lvar value to opposite boolean (0->1, 1->0) Args: lvar_id: lvar id Raises: FunctionFailed: lvar value set error ResourceNotFound: lvar is not found """ if is_oid(item_id) and oid_type(item_id) == 'unit': return self.action_toggle(unit_id=item_id, wait=wait, uuid=uuid, priority=priority) v = self.lvar_value(item_id) if v is None: raise FunctionFailed('lvar value is null') if v: return self.clear(item_id) else: return self.reset(item_id)
def clone_item(item_id, new_item_id=None, group=None, save=False): i = get_item(item_id) ni = get_item((group + '/') if group else '' + new_item_id) if not i or not new_item_id or i.is_destroyed() or \ i.item_type not in ['unit', 'sensor']: raise ResourceNotFound if ni: raise ResourceAlreadyExists(ni.oid) if group and new_item_id.find('/') != -1: raise InvalidParameter('Group specified but item id contains /') if is_oid(new_item_id): if oid_type(new_item_id) != i.item_type: return InvalidParameter('oids should be equal') _ni = oid_to_id(new_item_id) else: _ni = new_item_id if _ni.find('/') == -1: ni_id = _ni _g = i.group if group is None else group else: ni_id = _ni.split('/')[-1] _g = '/'.join(_ni.split('/')[:-1]) ni = create_item(ni_id, i.item_type, _g, start=False, save=False) cfg = i.serialize(props=True) if 'description' in cfg: del cfg['description'] ni.update_config(cfg) if save: ni.save() ni.start_processors() return ni
def get_mu(mu_id): if not mu_id: return None if is_oid(mu_id) and oid_type(mu_id) != 'mu': return None i = oid_to_id(mu_id) if i.find('/') > -1: if i in mu_by_full_id: return mu_by_full_id[i] elif not eva.core.config.enterprise_layout and i in mu_by_id: return mu_by_id[i] return None
def get_unit(unit_id): if not unit_id: return None if is_oid(unit_id) and oid_type(unit_id) != 'unit': return None i = oid_to_id(unit_id) if i.find('/') > -1: if i in units_by_full_id: return units_by_full_id[i] elif not eva.core.config.enterprise_layout and i in units_by_id: return units_by_id[i] return None
def get_lvar(lvar_id): if not lvar_id: return None if is_oid(lvar_id) and oid_type(lvar_id) != 'lvar': return None i = oid_to_id(lvar_id) if i.find('/') > -1: if i in lvars_by_full_id: return lvars_by_full_id[i] elif not eva.core.config.enterprise_layout and i in lvars_by_id: return lvars_by_id[i] return None
def get_sensor(sensor_id): if not sensor_id: return None if is_oid(sensor_id) and oid_type(sensor_id) != 'sensor': return None i = oid_to_id(sensor_id) if i.find('/') > -1: if i in sensors_by_full_id: return sensors_by_full_id[i] elif not eva.core.config.enterprise_layout and i in sensors_by_id: return sensors_by_id[i] return None