Skip to content

Commit cc4636b

Browse files
committed
reshard process detail show
1 parent 2352d3c commit cc4636b

File tree

3 files changed

+90
-33
lines changed

3 files changed

+90
-33
lines changed

cachecloud-open-web/src/main/java/com/sohu/cache/entity/InstanceReshardProcess.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.alibaba.fastjson.JSONObject;
44
import com.sohu.cache.constant.ReshardStatusEnum;
55

6+
import java.text.SimpleDateFormat;
67
import java.util.Date;
78

89
/**
@@ -81,6 +82,8 @@ public class InstanceReshardProcess {
8182
* 更新时间
8283
*/
8384
private Date updateTime;
85+
86+
private final static String dateTimeFormat = "yyyy-MM-dd HH:mm:ss";
8487

8588
public int getId() {
8689
return id;
@@ -170,6 +173,11 @@ public int getStatus() {
170173
public Date getStartTime() {
171174
return startTime;
172175
}
176+
177+
public String getStartTimeFormat() {
178+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateTimeFormat);
179+
return simpleDateFormat.format(startTime);
180+
}
173181

174182
public void setStartTime(Date startTime) {
175183
this.startTime = startTime;
@@ -178,10 +186,20 @@ public void setStartTime(Date startTime) {
178186
public Date getEndTime() {
179187
return endTime;
180188
}
189+
190+
public String getEndTimeFormat() {
191+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateTimeFormat);
192+
return simpleDateFormat.format(endTime);
193+
}
181194

182195
public Date getCreateTime() {
183196
return createTime;
184197
}
198+
199+
public String getCreateTimeFormat() {
200+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateTimeFormat);
201+
return simpleDateFormat.format(createTime);
202+
}
185203

186204
public void setCreateTime(Date createTime) {
187205
this.createTime = createTime;
@@ -190,6 +208,11 @@ public void setCreateTime(Date createTime) {
190208
public Date getUpdateTime() {
191209
return updateTime;
192210
}
211+
212+
public String getUpdateTimeFormat() {
213+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateTimeFormat);
214+
return simpleDateFormat.format(updateTime);
215+
}
193216

194217
public void setUpdateTime(Date updateTime) {
195218
this.updateTime = updateTime;

cachecloud-open-web/src/main/java/com/sohu/cache/web/controller/BaseController.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,23 @@ protected boolean checkAppUserProvilege(HttpServletRequest request, long appId)
206206
* @param model
207207
*/
208208
protected void fillAppInstanceStats(Long appId, Model model) {
209+
// 实例列表
209210
List<InstanceInfo> instanceList = appService.getAppInstanceInfo(appId);
211+
model.addAttribute("instanceList", instanceList);
212+
213+
// 实例Map
214+
Map<Integer, InstanceInfo> instanceInfoMap = new HashMap<Integer, InstanceInfo>();
215+
for (InstanceInfo instanceInfo : instanceList) {
216+
instanceInfoMap.put(instanceInfo.getId(), instanceInfo);
217+
}
218+
model.addAttribute("instanceInfoMap", instanceInfoMap);
219+
220+
// 实例统计
210221
List<InstanceStats> appInstanceStats = appService.getAppInstanceStats(appId);
211-
212222
Map<String, InstanceStats> instanceStatsMap = new HashMap<String, InstanceStats>();
213-
214223
for (InstanceStats instanceStats : appInstanceStats) {
215224
instanceStatsMap.put(instanceStats.getIp() + ":" + instanceStats.getPort(), instanceStats);
216225
}
217-
model.addAttribute("instanceList", instanceList);
218226
model.addAttribute("instanceStatsMap", instanceStatsMap);
219227

220228
//slot分布

cachecloud-open-web/src/main/webapp/WEB-INF/jsp/manage/appAudit/horizontalScaleProcessList.jsp

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,43 +21,61 @@
2121
<table class="table table-striped table-bordered table-hover" id="tableDataList">
2222
<thead>
2323
<tr>
24-
<td>应用id</td>
24+
<td>id</td>
2525
<td>slot迁移进度</td>
26+
<td>目标源实例</td>
27+
<td>开始结束slot</td>
28+
<td>正在迁移的slot</td>
2629
<td>状态</td>
2730
<td>开始时间</td>
2831
<td>结束时间 </td>
2932
</tr>
3033
</thead>
3134
<tbody>
32-
<c:forEach var="instanceReshardProcess" items="${instanceReshardProcessList}">
33-
<tr>
34-
<td>${instanceReshardProcess.appId}</td>
35-
<td>
36-
<div class="progress margin-custom-bottom0">
37-
<div id="reshardSlotProgress${instanceReshardProcess.id}" class="progress-bar progress-bar-success"
38-
role="progressbar" aria-valuenow="${instanceReshardProcess.finishSlotNum}" aria-valuemax="${instanceReshardProcess.totalSlot}"
39-
aria-valuemin="0" style="width: ${instanceReshardProcess.finishSlotNum / instanceReshardProcess.totalSlot}">
40-
<label style="color: #000000">
41-
<span id="finishSlotNum${instanceReshardProcess.id}">${instanceReshardProcess.finishSlotNum}</span>&nbsp;&nbsp;Finish/<span id="totalSlot${instanceReshardProcess.id}">${instanceReshardProcess.totalSlot}</span>&nbsp;&nbsp;Total
42-
</label>
43-
</div>
44-
</div>
45-
</td>
46-
<td id="statusDesc${instanceReshardProcess.id}">
47-
<c:choose>
48-
<c:when test="${instanceReshardProcess.status == 0}">运行中</c:when>
49-
<c:when test="${instanceReshardProcess.status == 1}">完成</c:when>
50-
<c:when test="${instanceReshardProcess.status == 2}">出错</c:when>
51-
</c:choose>
52-
</td>
53-
<td>
54-
<fmt:formatDate value="${instanceReshardProcess.startTime}" type="time" timeStyle="full" pattern="yyyy-MM-dd HH:mm:ss"/>
55-
</td>
56-
<td>
57-
<fmt:formatDate value="${instanceReshardProcess.endTime}" type="time" timeStyle="full" pattern="yyyy-MM-dd HH:mm:ss"/>
58-
</td>
59-
</tr>
60-
</c:forEach>
35+
<c:forEach var="instanceReshardProcess" items="${instanceReshardProcessList}">
36+
<tr>
37+
<td>${instanceReshardProcess.id}</td>
38+
<td>
39+
<div class="progress margin-custom-bottom0">
40+
<div id="reshardSlotProgress${instanceReshardProcess.id}" class="progress-bar progress-bar-success"
41+
role="progressbar" aria-valuenow="${instanceReshardProcess.finishSlotNum}" aria-valuemax="${instanceReshardProcess.totalSlot}"
42+
aria-valuemin="0" style="width: ${instanceReshardProcess.finishSlotNum / instanceReshardProcess.totalSlot}">
43+
<label style="color: #000000">
44+
<span id="finishSlotNum${instanceReshardProcess.id}">${instanceReshardProcess.finishSlotNum}</span>&nbsp;&nbsp;Finish/<span id="totalSlot${instanceReshardProcess.id}">${instanceReshardProcess.totalSlot}</span>&nbsp;&nbsp;Total
45+
</label>
46+
</div>
47+
</div>
48+
</td>
49+
<td id="sourceTargetInstance${instanceReshardProcess.id}">
50+
${instanceReshardProcess.sourceInstanceId}(${instanceInfoMap[instanceReshardProcess.sourceInstanceId].ip}:${instanceInfoMap[instanceReshardProcess.sourceInstanceId].port})
51+
-->
52+
${instanceReshardProcess.targetInstanceId}(${instanceInfoMap[instanceReshardProcess.targetInstanceId].ip}:${instanceInfoMap[instanceReshardProcess.targetInstanceId].port})
53+
</td>
54+
<td id="startEndSlot${instanceReshardProcess.id}">
55+
${instanceReshardProcess.startSlot}
56+
-->
57+
${instanceReshardProcess.endSlot}
58+
</td>
59+
<td id="migratingSlot${instanceReshardProcess.id}">
60+
${instanceReshardProcess.migratingSlot}
61+
</td>
62+
<td id="statusDesc${instanceReshardProcess.id}">
63+
<c:choose>
64+
<c:when test="${instanceReshardProcess.status == 0}">运行中</c:when>
65+
<c:when test="${instanceReshardProcess.status == 1}">完成</c:when>
66+
<c:when test="${instanceReshardProcess.status == 2}">出错</c:when>
67+
</c:choose>
68+
</td>
69+
<td>
70+
<fmt:formatDate value="${instanceReshardProcess.startTime}" type="time" timeStyle="full" pattern="yyyy-MM-dd HH:mm:ss"/>
71+
</td>
72+
<td id="startTime${instanceReshardProcess.id}">
73+
<c:if test="${instanceReshardProcess.status == 1}">
74+
<fmt:formatDate value="${instanceReshardProcess.endTime}" type="time" timeStyle="full" pattern="yyyy-MM-dd HH:mm:ss"/>
75+
</c:if>
76+
</td>
77+
</tr>
78+
</c:forEach>
6179
</tbody>
6280
</table>
6381
</div>
@@ -79,11 +97,19 @@
7997
var appId = data.appId;
8098
var finishSlotNum = data.finishSlotNum;
8199
var totalSlot = data.totalSlot;
100+
var status = data.status;
82101
var statusDesc = data.statusDesc;
102+
var migratingSlot = data.migratingSlot;
103+
var endTimeFormat = data.endTimeFormat;
83104
document.getElementById("finishSlotNum" + id).innerHTML = finishSlotNum;
84105
document.getElementById("totalSlot" + id).innerHTML = totalSlot;
85106
document.getElementById("reshardSlotProgress" + id).style.width = (finishSlotNum * 100 / totalSlot ) + "%";
86107
document.getElementById("statusDesc" + id).innerHTML = statusDesc;
108+
document.getElementById("migratingSlot" + id).innerHTML = migratingSlot;
109+
//如果完成显示结束时间
110+
if (status == 1) {
111+
document.getElementById("startTime" + id).innerHTML = endTimeFormat;
112+
}
87113
}
88114
});
89115
}

0 commit comments

Comments
 (0)