Exemple #1
0
    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)
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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