def test_compare_thresh(self): values = [501, 500, 4999] self.assertEqual('ALARM', calculator.compare_thresh(values, 'GTE', 500)) self.assertEqual('OK', calculator.compare_thresh(values, 'GT', 500)) values = [501, 500, 4999, None] self.assertEqual('UNDETERMINED', calculator.compare_thresh(values, 'LTE', 5000)) values = [501, 500, 4999, None] self.assertEqual('OK', calculator.compare_thresh(values, 'LT', 4999))
def _update_state(): """Update state of a sub expr.""" data_sub = expr_data['data'][expr.fmtd_sub_expr_str] data_list = data_sub['metrics'] period = float(expr.period) periods = int(expr.periods) right = t_now left = right - period temp_data = [] value_in_periods = [] i = len(data_list) - 1 while i >= 0: if data_list[i]['timestamp'] >= left: temp_data.append(float(data_list[i]['value'])) else: value = calculator.calc_value(expr.normalized_func, temp_data) value_in_periods.append(value) right = left left = right - period temp_data = [] i += 1 i -= 1 value = calculator.calc_value(expr.normalized_func, temp_data) value_in_periods.append(value) for i in range(len(value_in_periods), periods, 1): value_in_periods.append( calculator.calc_value(expr.normalized_func, [])) expr_data['data'][expr.fmtd_sub_expr_str]['values'] = ( value_in_periods) expr_data['data'][expr.fmtd_sub_expr_str]['state'] = ( calculator.compare_thresh(value_in_periods, expr.normalized_operator, float(expr.threshold)))
def _update_state(): """Update state of a sub expr.""" data_sub = expr_data['data'][expr.fmtd_sub_expr_str] data_list = data_sub['metrics'] if len(data_list) == 0: data_sub['state'] = 'UNDETERMINED' else: period = float(expr.period) periods = int(expr.periods) right = t_now left = right - period temp_data = [] value_in_periods = [] for i in range(len(data_list) - 1, -1, -1): if data_list[i]['timestamp'] >= left: temp_data.append(float(data_list[i]['value'])) else: value = calculator.calc_value( expr.normalized_func, temp_data) value_in_periods.append(value) right = left left = right - period temp_data = [] value = calculator.calc_value( expr.normalized_func, temp_data) value_in_periods.append(value) for i in range(len(value_in_periods), periods, 1): value_in_periods.append(None) expr_data['data'][expr.fmtd_sub_expr_str]['values'] = ( value_in_periods) expr_data['data'][expr.fmtd_sub_expr_str]['state'] = ( calculator.compare_thresh( value_in_periods, expr.normalized_operator, float(expr.threshold)))