Package com.alibaba.otter.manager.web.home.module.action

Source Code of com.alibaba.otter.manager.web.home.module.action.AlarmRuleAction

/*
* Copyright (C) 2010-2101 Alibaba Group Holding Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.alibaba.otter.manager.web.home.module.action;

import java.util.Arrays;
import java.util.List;

import javax.annotation.Resource;

import com.alibaba.citrus.service.form.CustomErrors;
import com.alibaba.citrus.service.form.Group;
import com.alibaba.citrus.turbine.Navigator;
import com.alibaba.citrus.turbine.dataresolver.FormField;
import com.alibaba.citrus.turbine.dataresolver.FormGroup;
import com.alibaba.citrus.turbine.dataresolver.Param;
import com.alibaba.citrus.webx.WebxException;
import com.alibaba.otter.manager.biz.common.exceptions.RepeatConfigureException;
import com.alibaba.otter.manager.biz.config.alarm.AlarmRuleService;
import com.alibaba.otter.shared.common.model.config.alarm.AlarmRule;
import com.alibaba.otter.shared.common.model.config.alarm.AlarmRuleStatus;
import com.alibaba.otter.shared.common.model.config.alarm.MonitorName;

public class AlarmRuleAction extends AbstractAction {

    @Resource(name = "alarmRuleService")
    private AlarmRuleService alarmRuleService;

    public void doAdd(@FormGroup("alarmRuleInfo") Group alarmRuleInfo,
                      @FormField(name = "formAlarmRuleError", group = "alarmRuleInfo") CustomErrors err, Navigator nav)
                                                                                                                       throws Exception {
        AlarmRule alarmRule = new AlarmRule();
        alarmRuleInfo.setProperties(alarmRule);

        try {
            alarmRuleService.create(alarmRule);
        } catch (RepeatConfigureException rce) {
            err.setMessage("invalidAlarmRule");
            return;
        }
        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + alarmRule.getPipelineId());
    }

    /**
     * 一键添加监控
     */
    public void doOnekeyAddMonitor(@Param("pipelineId") Long pipelineId, Navigator nav) throws Exception {
        List<AlarmRule> existRules = alarmRuleService.getAlarmRules(pipelineId);
        if (!existRules.isEmpty()) {
            nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + pipelineId);
            return;
        }

        AlarmRule alarmRule = new AlarmRule();
        alarmRule.setPipelineId(pipelineId);
        alarmRule.setDescription("one key added!");
        alarmRule.setAutoRecovery(Boolean.FALSE);
        alarmRule.setReceiverKey("otterteam");
        alarmRule.setStatus(AlarmRuleStatus.DISABLE);
        alarmRule.setRecoveryThresold(3);
        alarmRule.setIntervalTime(1800L);

        try {
            alarmRule.setMonitorName(MonitorName.EXCEPTION);
            alarmRule.setMatchValue("ERROR,EXCEPTION");
            alarmRule.setIntervalTime(1800L);
            alarmRule.setAutoRecovery(false);
            alarmRule.setRecoveryThresold(2);
            alarmRuleService.create(alarmRule);
            alarmRule.setMonitorName(MonitorName.POSITIONTIMEOUT);
            alarmRule.setMatchValue("1800");
            alarmRule.setIntervalTime(1800L);
            alarmRule.setAutoRecovery(true);
            alarmRule.setRecoveryThresold(0);
            alarmRuleService.create(alarmRule);
            alarmRule.setMonitorName(MonitorName.DELAYTIME);
            alarmRule.setMatchValue("1800");
            alarmRule.setIntervalTime(1800L);
            alarmRule.setAutoRecovery(false);
            alarmRule.setRecoveryThresold(2);
            alarmRuleService.create(alarmRule);
            alarmRule.setMonitorName(MonitorName.PROCESSTIMEOUT);
            alarmRule.setMatchValue("60");
            alarmRule.setIntervalTime(1800L);
            alarmRule.setAutoRecovery(true);
            alarmRule.setRecoveryThresold(2);
            alarmRuleService.create(alarmRule);
            // alarmRule.setMonitorName(MonitorName.PIPELINETIMEOUT);
            // alarmRule.setMatchValue("43200");
            // alarmRuleService.create(alarmRule);
        } catch (Exception e) {
            return;
        }
        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + pipelineId);
    }

    /**
     * 修改Node
     */
    public void doEdit(@FormGroup("alarmRuleInfo") Group alarmRuleInfo,
                       @FormField(name = "formNodeError", group = "nodeInfo") CustomErrors err, Navigator nav)
                                                                                                              throws Exception {
        AlarmRule alarmRule = new AlarmRule();
        alarmRuleInfo.setProperties(alarmRule);

        try {
            alarmRuleService.modify(alarmRule);
        } catch (RepeatConfigureException rce) {
            err.setMessage("invalidAlarmRule");
            return;
        }
        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + alarmRule.getPipelineId());
    }

    /**
     * 删除node
     */
    public void doDelete(@Param("alarmRuleId") Long alarmRuleId, @Param("pipelineId") Long pipelineId, Navigator nav)
                                                                                                                     throws WebxException {
        alarmRuleService.remove(alarmRuleId);

        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + pipelineId);

    }

    public void doStatus(@Param("alarmRuleId") Long alarmRuleId, @Param("pipelineId") Long pipelineId,
                         @Param("status") String status, @Param("pauseTime") String pauseTime, Navigator nav)
                                                                                                             throws WebxException {
        if (status.equals("enable")) {
            alarmRuleService.enableMonitor(alarmRuleId);
        } else if (status.equals("disable")) {
            if (pauseTime != null) {
                alarmRuleService.disableMonitor(alarmRuleId, pauseTime);
            } else {
                alarmRuleService.disableMonitor(alarmRuleId);
            }
        }

        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + pipelineId);
    }

    public void doStatusSystem(@Param("alarmRuleId") Long alarmRuleId, @Param("pageIndex") int pageIndex,
                               @Param("status") String status, @Param("pauseTime") String pauseTime, Navigator nav)
                                                                                                                   throws WebxException {

        if (status.equals("enable")) {
            alarmRuleService.enableMonitor(alarmRuleId);
        } else if (status.equals("disable")) {
            if (pauseTime != null) {
                alarmRuleService.disableMonitor(alarmRuleId, pauseTime);
            } else {
                alarmRuleService.disableMonitor(alarmRuleId);
            }
        }
        nav.redirectToLocation("alarmSystemList.htm?pageIndex=" + pageIndex);
    }

    public void doStatusByPipeline(@Param("pipelineId") Long pipelineId, @Param("status") String status,
                                   @Param("pauseTime") String pauseTime, Navigator nav) throws WebxException {

        List<AlarmRule> alarmRules = alarmRuleService.getAlarmRules(pipelineId);
        for (AlarmRule alarmRule : alarmRules) {
            if (status.equals("enable")) {
                if (alarmRule.getStatus().isDisable()) {
                    alarmRuleService.enableMonitor(alarmRule.getId());
                }
            } else if (status.equals("disable")) {
                if (alarmRule.getStatus().isEnable()) {
                    if (pauseTime != null) {
                        alarmRuleService.disableMonitor(alarmRule.getId(), pauseTime);
                    } else {
                        alarmRuleService.disableMonitor(alarmRule.getId());
                    }
                }
            }
        }
        nav.redirectToLocation("alarmRuleList.htm?pipelineId=" + pipelineId);
    }

    public void doStatusByRule(@Param("alarmRuleIds") String alarmRuleIds, @Param("pageIndex") int pageIndex,
                               @Param("status") String status, @Param("pauseTime") String pauseTime, Navigator nav)
                                                                                                                   throws WebxException {

        String[] a = alarmRuleIds.split(",");
        List<String> alarmRuleArray = Arrays.asList(a);
        for (String alarmRuleId : alarmRuleArray) {
            if (status.equals("enable")) {
                alarmRuleService.enableMonitor(Long.valueOf(alarmRuleId));
            } else if (status.equals("disable")) {
                if (pauseTime != null) {
                    alarmRuleService.disableMonitor(Long.valueOf(alarmRuleId), pauseTime);
                } else {
                    alarmRuleService.disableMonitor(Long.valueOf(alarmRuleId));
                }
            }
        }
        nav.redirectToLocation("alarmSystemList.htm?pageIndex=" + pageIndex);
    }
}
TOP

Related Classes of com.alibaba.otter.manager.web.home.module.action.AlarmRuleAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.