(task *types.AlarmTask)
| 165 | } |
| 166 | |
| 167 | func (this *Inspector) processTask(task *types.AlarmTask) { |
| 168 | triggers_results := make(map[string]*types.TriggerResultSet) |
| 169 | parameters := make(map[string]interface{}) |
| 170 | host_id := strings.SplitN(task.ID, "@", 2)[1] |
| 171 | error_message := "" |
| 172 | for index, trigger := range task.Triggers { |
| 173 | var trigger_result_set *types.TriggerResultSet |
| 174 | var err error |
| 175 | if trigger.Tags == "" { |
| 176 | trigger.Tags = fmt.Sprintf("uuid=%s", host_id) |
| 177 | } else { |
| 178 | trigger.Tags = fmt.Sprintf("%s,uuid=%s", trigger.Tags, host_id) |
| 179 | } |
| 180 | switch trigger.Method { |
| 181 | case MAX_METHOD: |
| 182 | trigger_result_set, err = maxMethod(task.Strategy.Cycle, trigger) |
| 183 | case MIN_METHOD: |
| 184 | trigger_result_set, err = minMethod(task.Strategy.Cycle, trigger) |
| 185 | case RATIO_METHOD: |
| 186 | trigger_result_set, err = ratioMethod(task.Strategy.Cycle, trigger) |
| 187 | case TOP_METHOD: |
| 188 | trigger_result_set, err = topMethod(task.Strategy.Cycle, trigger) |
| 189 | case BOTTOM_METHOD: |
| 190 | trigger_result_set, err = bottomMethod(task.Strategy.Cycle, trigger) |
| 191 | case LAST_METHOD: |
| 192 | trigger_result_set, err = lastMethod(task.Strategy.Cycle, trigger) |
| 193 | case DIFF_METHOD: |
| 194 | trigger_result_set, err = diffMethod(task.Strategy.Cycle, trigger) |
| 195 | case NODATA_METHOD: |
| 196 | trigger_result_set, err = nodataMethod(task.Strategy.Cycle, trigger) |
| 197 | case AVG_METHOD: |
| 198 | trigger_result_set, err = avgMethod(task.Strategy.Cycle, trigger) |
| 199 | default: |
| 200 | err = errors.New(fmt.Sprintf("trigger method %v not found", trigger.Method)) |
| 201 | } |
| 202 | |
| 203 | if err != nil { |
| 204 | error_message = err.Error() |
| 205 | break |
| 206 | } |
| 207 | |
| 208 | if len(trigger_result_set.TriggerResults) == 0 { |
| 209 | error_message = "no data" |
| 210 | break |
| 211 | } |
| 212 | triggers_results[index] = trigger_result_set |
| 213 | parameters[index] = trigger_result_set.Triggered |
| 214 | } |
| 215 | |
| 216 | result := false |
| 217 | if error_message == "" { |
| 218 | compute_result, err := compute(parameters, task.Strategy.Expression) |
| 219 | if err != nil { |
| 220 | error_message = err.Error() |
| 221 | } |
| 222 | result = compute_result |
| 223 | } |
| 224 |
no test coverage detected