java_restart.jsp 15.3 KB
<%@page language="java" contentType="text/html;charset=utf-8" %>
<%@page import="com.ui.contants.ProjectConstant"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";

    String api_type = request.getParameter("api_type");
    if (api_type == null)
        api_type = "0";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="<%=basePath %>css/bootstrap.min.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/bootstrap-datetimepicker.css"/>
    <link href="<%=basePath %>js/bootstrap-plugin/css/bootstrap.table.css" rel="stylesheet" media="screen"/>
    <link rel="stylesheet" href="<%=basePath %>css/bootstrap-responsive.min.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/fullcalendar.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/unicorn.main.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/unicorn.grey.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/jquery-ui.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/uniform.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
    <link rel="stylesheet" href="<%=basePath %>js/jstree/themes/proton/style.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
    <link rel="stylesheet" href="<%=basePath %>css/yoho.css"/>
    <script src="<%=basePath %>js/excanvas.min.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/jquery-1.12.0.min.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/jquery-ui.custom.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap.min.js"></script>
    <script src="<%=basePath %>js/unicorn.js"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/moment-with-locales.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/bootstrap-datetimepicker.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/global.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.pagination.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.table.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.dialog.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.panel.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.alerts.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.accordion.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.breadcrumb.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.validate.js" charset="UTF-8"
            type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/layer/layer.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/bootstrap-plugin/bootstrap.select.js" charset="UTF-8" type="text/javascript"></script>
    <script src="<%=basePath %>js/jstree/jstree.min.js"></script>
    <script src="<%=basePath %>js/jquery.toaster.js"></script>
    <script>
        var contextPath = '<%=basePath %>';
    </script>
    <title>YOHO!运维</title>
</head>
<body>

<!-- 头部 -->
<div id="head">
</div>
<!-- 右侧具体内容 -->
<div id="content">
    <div id="breadcrumb">
        <a href="#" title="Go to Home" class="tip-bottom"><i
                class="icon-home"></i> 关键切换</a> <a href="#" class="current">服务重启</a>
    </div>

    <div class="container-fluid">


        <div class="widget-box">
            <div class="widget-title">
                <h5>云服务操作</h5>
            </div>
            <div class="widget-content nopadding">
                <%--<div class="widget-title" style="height: 53px;">--%>
                    <%--<div>--%>
                        <%--<button id="qcloudRestart" class="btn btn-primary" style="margin-top: 12px;margin-left: 100px;"--%>
                                <%--onclick="restart('all','qcloud','')">--%>
                            <%--az1重启--%>
                        <%--</button>--%>
                        <%--&nbsp;--%>

                        <%--<button id="qcloudaz2Restart" class="btn btn-primary" style="margin-top: 12px;margin-left: 100px;"--%>
                                <%--onclick="restart('all','qcloudaz2','')">--%>
                            <%--az2重启--%>
                        <%--</button>--%>
                        <%--&nbsp;--%>

                        <%--&lt;%&ndash;<button id="qcloudaz3Restart" class="btn btn-primary" style="margin-top: 12px;margin-left: 100px;"&ndash;%&gt;--%>
                                <%--&lt;%&ndash;onclick="restart('all','qcloudaz3','')">&ndash;%&gt;--%>
                            <%--&lt;%&ndash;az3重启&ndash;%&gt;--%>
                        <%--&lt;%&ndash;</button>&ndash;%&gt;--%>
                        <%--&lt;%&ndash;&nbsp;&ndash;%&gt;--%>
                    <%--</div>--%>
                <%--</div>--%>
                <div id="infoTable">

                </div>
            </div>
        </div>
    </div>
</div>

</body>
<script src="<%=basePath %>script/common/genarate_left_panel.js?v=<%=ProjectConstant.MENU_VERSION %>"></script>
<script>
    $("#li_switch").addClass("active open");
    $("#li_javarestart").addClass("active");</script>
<script>
    var table_data;
    $(function () {
        var tableParam = {
            columnAutoWidth: false,
            url: contextPath + "/javaRestart/query",
            striped: true,
            title: "java服务进程列表",
            dataType: "json",
            pagination: true,
            pageSize: 50,
            loadFilter: function (data) {
                return defaultLoadFilter(data);
            },
            onLoadSuccess: function (data) {
//                console.log(data);
                table_data = data;
                setStatus();
            },
            columns: [{
                title: "项目名称",
                field: "name",
                width: "10%"
            }, {
                title: "qcloud",
                field: "name",
                formatter: function (value, rowData, rowIndex) {
                    var div = $("<div >").attr('id', 'qcloud_' + rowData.name);
                    return div;
                },
                width: "25%"

            }]
        };
//        , {
//                title: "qcloudaz2",
//                field: "name",
//                formatter: function (value, rowData, rowIndex) {
//                    var div = $("<div >").attr('id', 'qcloudaz2_' + rowData.name);
//                    return div;
//                },
//                width: "25%"
//
//                /*}, {
//                title: "qcloudaz3",
//                field: "name",
//                formatter: function (value, rowData, rowIndex) {
//                    var div = $("<div >").attr('id', 'qcloudaz3_' + rowData.name);
//                    return div;
//                },
//                width: "25%"*/
//
//            }, {
//                title: "操作",
//                field: "op",
//                formatter: function (value, rowData, rowIndex) {
//                    var div = $("<div>");
//                    /*$("<button onclick=\"restart(\'" + rowData.name + "\',\'aws\',\'\')\">").addClass("btn btn-xs btn-primary").html("aws重启").appendTo(div);
//                    div.append("&nbsp;");*/
//                    $("<button onclick=\"restart(\'" + rowData.name + "\',\'qcloud\',\'\')\">").addClass("btn btn-xs btn-primary").html("az1重启").appendTo(div);
//                    div.append("&nbsp;");
//                    $("<button onclick=\"restart(\'" + rowData.name + "\',\'qcloudaz2\',\'\')\">").addClass("btn btn-xs btn-primary").html("az2重启").appendTo(div);
//                    /*div.append("&nbsp;");
//                    $("<button onclick=\"restart(\'" + rowData.name + "\',\'qcloudaz3\',\'\')\">").addClass("btn btn-xs btn-primary").html("az3重启").appendTo(div);*/
//                    div.append("</br>");
//                    div.append("</br>");
//                   /* $("<button onclick=\"stop(\'" + rowData.name + "\',\'aws\',\'\')\">").addClass("btn btn-xs btn-primary").html("aws停止").appendTo(div);
//                    div.append("&nbsp;");*/
//                    $("<button onclick=\"stop(\'" + rowData.name + "\',\'qcloud\',\'\')\">").addClass("btn btn-xs btn-primary").html("az1停止").appendTo(div);
//                    div.append("&nbsp;");
//                    $("<button onclick=\"stop(\'" + rowData.name + "\',\'qcloudaz2\',\'\')\">").addClass("btn btn-xs btn-primary").html("az2停止").appendTo(div);
//                    /*div.append("&nbsp;");
//                    $("<button onclick=\"stop(\'" + rowData.name + "\',\'qcloudaz3\',\'\')\">").addClass("btn btn-xs btn-primary").html("az3停止").appendTo(div);*/
//                    return div;
//                },
//                width: "15%"
//            }

        //加载表格
        $("#infoTable").table(tableParam);
    });

    function setStatus() {
        if (table_data == null || table_data.rows == undefined)
            return;

        $.each(table_data.rows, function (idx, val) {
            createJavaAppDiv(val.name);
        });
    }

    var createJavaAppDiv = function (name) {
        $.ajax({
            type: 'post',
            url: contextPath + "/javaRestart/getProjectStatus?project=" + name,
            dataType: 'json',
            success: function (resp) {
                if (!resp || resp.code != 200) {
                    return;
                }
                var aws_div = $("<div>");
                var qcloud_div = $("<div>");
                var qcloudaz2_div = $("<div>");
                var qcloudaz3_div = $("<div>");

                $.each(resp.data, function (idx, val) {
                    var span;
                    span = $("<button class='btn btn-default btn-xs has-popover' >").attr("id", "span_" + name + "_" + val.ip).html(val.ip);
                    span.attr("data-toggle", "popover");
                    span.attr("data-placement", "bottom");
                    span.attr("data-html", "true");
                    span.attr("title", val.refreshDateTime+"<br>"+val.lastStart);
                    span.attr("data-content", "<button class='btn btn-primary btn-xs' onclick=\"restart(\'" + name + "\',\'single\',\'"+val.ip+"\')\">重启</button>&nbsp;&nbsp;<button class='btn btn-primary btn-xs' onclick=\"stop(\'" + name + "\',\'single\',\'"+val.ip+"\')\">停止</button>");
//                    span.attr("data-content", "unkown");
                    span.popover({
                    //delay: {"show": 500, "hide": 100}
                        //  container: 'tip_well'
                    });

//                    span.attr("onclick","singleOp('"+val.ip+"','"+name+"')");
                    if (val.status == "1") {
                        span.addClass('btn-success');
                    } else if (val.status == "0"){
                        span.addClass('btn-danger');
                    }else{
                        span.addClass('btn-warning');
                    }
                    if (val.cloud == "aws") {
                        aws_div.append(span);
                    }else if(val.cloud == "qcloudaz2"){
                        qcloudaz2_div.append(span);
                    }else if(val.cloud == "qcloudaz3"){
                        qcloudaz3_div.append(span);
                    } else {
                        qcloud_div.append(span);
                    }


                });

                /*$("#aws_" + name).html("");
                $("#aws_" + name).append(aws_div);*/

                $("#qcloud_" + name).html("");
                $("#qcloud_" + name).append(qcloud_div);

                $("#qcloudaz2_" + name).html("");
                $("#qcloudaz2_" + name).append(qcloudaz2_div);

                $("#qcloudaz3_" + name).html("");
                $("#qcloudaz3_" + name).append(qcloudaz3_div);
            },
            error: function (data) {
                layer.msg("异常", {icon: 2});
            }
        });
    }

    function restart(project, cloud,ip) {
        var dialog = $("<div>").appendTo($("body"));
        dialog.dialog({
            title: "重启确定",
            backdrop: "static",
            content: "服务:"+project+",云:"+cloud+",ip:"+ip+"",
            buttons: [{
                text: "否",
                className: "btn-danger",
                onclick: function () {
                    $(dialog).dialog("hide");
                }
            }, {
                text: "是",
                className: "btn-success",
                onclick: function () {

                    var iWidth = 900;
                    var iHeight = 700;
                    var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;
                    var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;
                    window.open(contextPath + "javaRestart/toStopOrRestart?project=" + project + "&cloud=" + cloud + "&exe=restart"+ "&ip=" + ip, "_blank", "height=" + iHeight + ", width=" + iWidth + ", top=" + iTop + ", left=" + iLeft);
                    $(dialog).dialog("hide");
                }
            }]
        });
    }

    function stop(project, cloud,ip) {
        var dialog = $("<div>").appendTo($("body"));
        dialog.dialog({
            title: "停机确定",
            backdrop: "static",
            content: "服务:"+project+",云:"+cloud+",ip:"+ip+"",
            buttons: [{
                text: "否",
                className: "btn-danger",
                onclick: function () {
                    $(dialog).dialog("hide");
                }
            }, {
                text: "是",
                className: "btn-success",
                onclick: function () {

                    var iWidth = 1200;
                    var iHeight = 900;
                    var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;
                    var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;
                    window.open(contextPath + "javaRestart/toStopOrRestart?project=" + project + "&cloud=" + cloud + "&exe=stop"+ "&ip=" + ip, "_blank", "height=" + iHeight + ", width=" + iWidth + ", top=" + iTop + ", left=" + iLeft);
                    $(dialog).dialog("hide");
                }
            }]
        });
    }
</script>