From 4efc0f6078d94062b884a1cbe50c2037f1bd0b8d Mon Sep 17 00:00:00 2001 From: rewerma Date: Sat, 13 Jul 2019 18:03:28 +0800 Subject: [PATCH] modify --- .../controller/CanalInstanceController.java | 10 +- .../otter/canal/admin/jmx/JMXConnection.java | 2 +- .../admin/model/CanalInstanceConfig.java | 28 ++---- .../impl/CanalInstanceServiceImpl.java | 8 +- .../canal-admin-ui/src/api/canalInstance.js | 24 +++++ .../canal-admin-ui/src/router/index.js | 4 +- .../src/views/canalServer/canalInstance.vue | 78 ++++++++++++++++ .../views/canalServer/canalInstanceUpdate.vue | 92 +++++++++++++++++++ 8 files changed, 215 insertions(+), 31 deletions(-) create mode 100644 canal-admin/canal-admin-ui/src/api/canalInstance.js create mode 100644 canal-admin/canal-admin-ui/src/views/canalServer/canalInstance.vue create mode 100644 canal-admin/canal-admin-ui/src/views/canalServer/canalInstanceUpdate.vue diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java index 5c31da85..075f19df 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java @@ -16,30 +16,30 @@ public class CanalInstanceController { @Autowired CanalInstanceService canalInstanceConfigService; - @GetMapping(value = "/canalInstances") + @GetMapping(value = "/instances") public BaseModel> nodeServers(CanalInstanceConfig canalInstanceConfig, @PathVariable String env) { return BaseModel.getInstance(canalInstanceConfigService.findList(canalInstanceConfig)); } - @PostMapping(value = "/canalInstance") + @PostMapping(value = "/iInstance") public BaseModel save(@RequestBody CanalInstanceConfig canalInstanceConfig, @PathVariable String env) { canalInstanceConfigService.save(canalInstanceConfig); return BaseModel.getInstance("success"); } - @GetMapping(value = "/canalInstance/{id}") + @GetMapping(value = "/instance/{id}") public BaseModel detail(@PathVariable Long id, @PathVariable String env) { return BaseModel.getInstance(canalInstanceConfigService.detail(id)); } - @PutMapping(value = "/canalInstance") + @PutMapping(value = "/instance") public BaseModel update(@RequestBody CanalInstanceConfig canalInstanceConfig, @PathVariable String env) { canalInstanceConfigService.updateContent(canalInstanceConfig); return BaseModel.getInstance("success"); } - @DeleteMapping(value = "/nodeServer/{id}") + @DeleteMapping(value = "/instance/{id}") public BaseModel delete(@PathVariable Long id, @PathVariable String env) { canalInstanceConfigService.delete(id); return BaseModel.getInstance("success"); diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/jmx/JMXConnection.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/jmx/JMXConnection.java index 8fc9b96d..2352926c 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/jmx/JMXConnection.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/jmx/JMXConnection.java @@ -34,7 +34,7 @@ public class JMXConnection { CanalServerMXBean canalServerMXBean = jmxConnection.getCanalServerMXBean(); return function.apply(canalServerMXBean); } catch (Exception e) { - logger.error(e.getMessage(), e); + logger.error(e.getMessage()); } finally { jmxConnection.close(); } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalInstanceConfig.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalInstanceConfig.java index 78dbea1f..c366b033 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalInstanceConfig.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalInstanceConfig.java @@ -24,15 +24,13 @@ public class CanalInstanceConfig extends Model { } @Id - private Long id; - private String name; - private String content; - private Date modifiedTime; + private Long id; + private String name; + private String content; + private Date modifiedTime; @Transient - private NodeServer nodeServer; - @Transient - private Integer status = 0; + private String nodeIp; public Long getId() { return id; @@ -66,19 +64,11 @@ public class CanalInstanceConfig extends Model { this.modifiedTime = modifiedTime; } - public NodeServer getNodeServer() { - return nodeServer; + public String getNodeIp() { + return nodeIp; } - public void setNodeServer(NodeServer nodeServer) { - this.nodeServer = nodeServer; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; + public void setNodeIp(String nodeIp) { + this.nodeIp = nodeIp; } } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/CanalInstanceServiceImpl.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/CanalInstanceServiceImpl.java index 648ddb5d..dae327a8 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/CanalInstanceServiceImpl.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/CanalInstanceServiceImpl.java @@ -2,16 +2,16 @@ package com.alibaba.otter.canal.admin.service.impl; import java.util.List; -import com.alibaba.otter.canal.admin.service.CanalInstanceService; import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; import com.alibaba.otter.canal.admin.jmx.CanalServerMXBean; import com.alibaba.otter.canal.admin.jmx.JMXConnection; import com.alibaba.otter.canal.admin.model.CanalInstanceConfig; import com.alibaba.otter.canal.admin.model.NodeServer; +import com.alibaba.otter.canal.admin.service.CanalInstanceService; import io.ebean.Query; -import org.springframework.stereotype.Service; @Service public class CanalInstanceServiceImpl implements CanalInstanceService { @@ -25,6 +25,7 @@ public class CanalInstanceServiceImpl implements CanalInstanceService { query.where().like("name", "%" + canalInstanceConfig.getName() + "%"); } } + query.order().asc("id"); List canalInstanceConfigs = query.findList(); // check all canal instances running status @@ -39,8 +40,7 @@ public class CanalInstanceServiceImpl implements CanalInstanceService { for (String instance : instances) { for (CanalInstanceConfig cig : canalInstanceConfigs) { if (instance.equals(cig.getName())) { - cig.setNodeServer(nodeServer); - cig.setStatus(1); + cig.setNodeIp(nodeServer.getIp()); break; } } diff --git a/canal-admin/canal-admin-ui/src/api/canalInstance.js b/canal-admin/canal-admin-ui/src/api/canalInstance.js new file mode 100644 index 00000000..afcbc9ab --- /dev/null +++ b/canal-admin/canal-admin-ui/src/api/canalInstance.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +export function getCanalInstances(params) { + return request({ + url: '/canal/instances', + method: 'get', + params: params + }) +} + +export function canalInstanceDetail(id) { + return request({ + url: '/canal/instance/' + id, + method: 'get' + }) +} + +export function updateCanalInstance(data) { + return request({ + url: '/canal/instance', + method: 'put', + data + }) +} diff --git a/canal-admin/canal-admin-ui/src/router/index.js b/canal-admin/canal-admin-ui/src/router/index.js index ab8143d8..68df06ba 100644 --- a/canal-admin/canal-admin-ui/src/router/index.js +++ b/canal-admin/canal-admin-ui/src/router/index.js @@ -75,9 +75,9 @@ export const constantRoutes = [ meta: { title: 'Canal主配置', icon: 'form' } }, { - path: 'tree', + path: 'canalInstance', name: '实例管理', - component: () => import('@/views/tree/index'), + component: () => import('@/views/canalServer/canalInstance'), meta: { title: '实例管理', icon: 'nested' } } ] diff --git a/canal-admin/canal-admin-ui/src/views/canalServer/canalInstance.vue b/canal-admin/canal-admin-ui/src/views/canalServer/canalInstance.vue new file mode 100644 index 00000000..caf1e854 --- /dev/null +++ b/canal-admin/canal-admin-ui/src/views/canalServer/canalInstance.vue @@ -0,0 +1,78 @@ + + + diff --git a/canal-admin/canal-admin-ui/src/views/canalServer/canalInstanceUpdate.vue b/canal-admin/canal-admin-ui/src/views/canalServer/canalInstanceUpdate.vue new file mode 100644 index 00000000..e9712e5c --- /dev/null +++ b/canal-admin/canal-admin-ui/src/views/canalServer/canalInstanceUpdate.vue @@ -0,0 +1,92 @@ + + + + + +