Skip to content

Commit

Permalink
Refactor lite console for job status.
Browse files Browse the repository at this point in the history
  • Loading branch information
haocao committed Apr 1, 2017
1 parent bbdf2d0 commit b99ee27
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,28 +43,26 @@ function statusFormatter(value, row) {
return "<span class='label label-success'>正常</span>";
break;
case "DISABLED":
return "<span class='label label-warning'>被禁用</span>";
break;
case "PARTIAL_ALIVE":
return "<span class='label label-warning'>部分可用</span>";
case "SHARDING_ERROR":
return "<span class='label label-warning'>分片错误</span>";
break;
case "CRASHED":
return "<span class='label'>下线</span>";
return "<span class='label label-default'>已下线</span>";
break;
}
}

function generateOperationButtons(val, row) {
var detailButton = "<button operation='job-detail' class='btn-xs btn-info' job-name='" + row.jobName + "'>分片状态</button>";
var shardingStatusButton = "<button operation='job-detail' class='btn-xs btn-info' job-name='" + row.jobName + "'>分片状态</button>";
var triggerButton = "<button operation='trigger-job' class='btn-xs btn-success' job-name='" + row.jobName + "'>触发</button>";
var disableButton = "<button operation='disable-job' class='btn-xs btn-warning' job-name='" + row.jobName + "'>禁用</button>";
var enableButton = "<button operation='enable-job' class='btn-xs btn-primary' job-name='" + row.jobName + "'>启用</button>";
var shutdownButton = "<button operation='shutdown-job' class='btn-xs btn-danger' job-name='" + row.jobName + "'>终止</button>";
var operationTd = detailButton + "&nbsp;";
var operationTd = shardingStatusButton + "&nbsp;";
if ("OK" === row.status) {
operationTd = operationTd + triggerButton + "&nbsp;" + disableButton + "&nbsp;" + shutdownButton;
}
if ("DISABLED" === row.status) {
if ("DISABLED" === row.status || "SHARDING_ERR" === row.status) {
operationTd = operationTd + enableButton + "&nbsp;" + shutdownButton;
}
if ("CRASHED" === row.status) {
Expand All @@ -74,14 +72,14 @@ function generateOperationButtons(val, row) {
}

function bindButtons() {
bindDetailButton();
bindShardingStatusButton();
bindTriggerButton();
bindShutdownButton();
bindDisableButton();
bindEnableButton();
}

function bindDetailButton() {
function bindShardingStatusButton() {
$(document).on("click", "button[operation='job-detail'][data-toggle!='modal']", function(event) {
var jobName = $(event.currentTarget).attr("job-name");
$("#index-job-name").text(jobName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public int compareTo(final JobBriefInfo o) {
public enum JobStatus {
OK,
CRASHED,
DISABLED
DISABLED,
SHARDING_ERROR
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
* 作业状态展示的实现类.
Expand Down Expand Up @@ -64,17 +66,30 @@ public JobBriefInfo getJobBriefInfo(final String jobName) {

private JobStatus getJobStatus(final String jobName) {
JobNodePath jobNodePath = new JobNodePath(jobName);
List<String> servers = regCenter.getChildrenKeys(jobNodePath.getServerNodePath());
if (servers.isEmpty()) {
List<String> instances = regCenter.getChildrenKeys(jobNodePath.getInstancesNodePath());
if (instances.isEmpty()) {
return JobStatus.CRASHED;
}
for (String each : servers) {
String status = regCenter.get(jobNodePath.getServerNodePath(each));
if ("DISABLED".equalsIgnoreCase(status)) {
return JobStatus.DISABLED;
Set<String> shardingInstanceServerIps = new HashSet<>();
for (String each : regCenter.getChildrenKeys(jobNodePath.getShardingNodePath())) {
String instanceId = regCenter.get(jobNodePath.getShardingNodePath(each, "instance"));
if (!instanceId.isEmpty()) {
shardingInstanceServerIps.add(instanceId.split("@-@")[0]);
}
}
return JobStatus.OK;
Set<String> serverIps = new HashSet<>();
Set<String> disabledServerIps = new HashSet<>();
for (String each : regCenter.getChildrenKeys(jobNodePath.getServerNodePath())) {
if ("DISABLED".equals(regCenter.get(jobNodePath.getServerNodePath(each)))) {
disabledServerIps.add(each);
} else {
serverIps.add(each);
}
}
if (disabledServerIps.equals(shardingInstanceServerIps)) {
return JobStatus.DISABLED;
}
return serverIps.equals(shardingInstanceServerIps) ? JobStatus.OK : JobStatus.SHARDING_ERROR;
}

private String getJobShardingItems(final String jobName) {
Expand Down

0 comments on commit b99ee27

Please sign in to comment.