Commit 20b518f3 by Nepxion

增加图形化灰度发布功能

parent 9102e520
...@@ -19,7 +19,6 @@ import java.awt.Dimension; ...@@ -19,7 +19,6 @@ import java.awt.Dimension;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyEvent;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.swing.Box; import javax.swing.Box;
import javax.swing.DefaultComboBoxModel; import javax.swing.DefaultComboBoxModel;
...@@ -33,6 +32,7 @@ import com.nepxion.cots.twaver.element.TLink; ...@@ -33,6 +32,7 @@ import com.nepxion.cots.twaver.element.TLink;
import com.nepxion.cots.twaver.element.TNode; import com.nepxion.cots.twaver.element.TNode;
import com.nepxion.cots.twaver.graph.TGraphControlBar; import com.nepxion.cots.twaver.graph.TGraphControlBar;
import com.nepxion.cots.twaver.graph.TGraphManager; import com.nepxion.cots.twaver.graph.TGraphManager;
import com.nepxion.discovery.console.desktop.controller.ServiceController;
import com.nepxion.discovery.console.desktop.entity.InstanceEntity; import com.nepxion.discovery.console.desktop.entity.InstanceEntity;
import com.nepxion.discovery.console.desktop.entity.RouterEntity; import com.nepxion.discovery.console.desktop.entity.RouterEntity;
import com.nepxion.discovery.console.desktop.icon.ConsoleIconFactory; import com.nepxion.discovery.console.desktop.icon.ConsoleIconFactory;
...@@ -45,7 +45,10 @@ import com.nepxion.swing.button.ButtonManager; ...@@ -45,7 +45,10 @@ import com.nepxion.swing.button.ButtonManager;
import com.nepxion.swing.button.JBasicToggleButton; import com.nepxion.swing.button.JBasicToggleButton;
import com.nepxion.swing.button.JClassicButton; import com.nepxion.swing.button.JClassicButton;
import com.nepxion.swing.combobox.JBasicComboBox; import com.nepxion.swing.combobox.JBasicComboBox;
import com.nepxion.swing.handle.HandleManager;
import com.nepxion.swing.listener.DisplayAbilityListener; import com.nepxion.swing.listener.DisplayAbilityListener;
import com.nepxion.swing.locale.SwingLocale;
import com.nepxion.swing.optionpane.JBasicOptionPane;
import com.nepxion.swing.textfield.JBasicTextField; import com.nepxion.swing.textfield.JBasicTextField;
public class RouterTopology extends AbstractTopology { public class RouterTopology extends AbstractTopology {
...@@ -61,6 +64,8 @@ public class RouterTopology extends AbstractTopology { ...@@ -61,6 +64,8 @@ public class RouterTopology extends AbstractTopology {
private JBasicTextField textField = new JBasicTextField(); private JBasicTextField textField = new JBasicTextField();
private JBasicComboBox comboBox = new JBasicComboBox(); private JBasicComboBox comboBox = new JBasicComboBox();
private InstanceEntity instance;
public RouterTopology() { public RouterTopology() {
initializeToolBar(); initializeToolBar();
initializeTopology(); initializeTopology();
...@@ -113,7 +118,7 @@ public class RouterTopology extends AbstractTopology { ...@@ -113,7 +118,7 @@ public class RouterTopology extends AbstractTopology {
}); });
} }
public void route(RouterEntity routerEntity) { private void route(RouterEntity routerEntity) {
dataBox.clear(); dataBox.clear();
int index = 0; int index = 0;
...@@ -170,8 +175,12 @@ public class RouterTopology extends AbstractTopology { ...@@ -170,8 +175,12 @@ public class RouterTopology extends AbstractTopology {
} }
@SuppressWarnings({ "unchecked" }) @SuppressWarnings({ "unchecked" })
public void setInstanceMap(Map<String, List<InstanceEntity>> instanceMap) { public void setServices(Object[] services) {
comboBox.setModel(new DefaultComboBoxModel<>(instanceMap.keySet().toArray())); comboBox.setModel(new DefaultComboBoxModel<>(services));
}
public void setInstance(InstanceEntity instance) {
this.instance = instance;
} }
private JSecurityAction createAddServiceAction() { private JSecurityAction createAddServiceAction() {
...@@ -179,6 +188,14 @@ public class RouterTopology extends AbstractTopology { ...@@ -179,6 +188,14 @@ public class RouterTopology extends AbstractTopology {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public void execute(ActionEvent e) { public void execute(ActionEvent e) {
String routerPath = textField.getText();
String serviceId = comboBox.getSelectedItem().toString();
if (StringUtils.isNotEmpty(routerPath)) {
routerPath = routerPath + ";" + serviceId;
} else {
routerPath = serviceId;
}
textField.setText(routerPath);
} }
}; };
...@@ -190,7 +207,15 @@ public class RouterTopology extends AbstractTopology { ...@@ -190,7 +207,15 @@ public class RouterTopology extends AbstractTopology {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public void execute(ActionEvent e) { public void execute(ActionEvent e) {
String routerPath = textField.getText();
if (StringUtils.isEmpty(routerPath)) {
JBasicOptionPane.showMessageDialog(HandleManager.getFrame(RouterTopology.this), ConsoleLocale.getString("router_path_invalid"), SwingLocale.getString("warning"), JBasicOptionPane.WARNING_MESSAGE);
return;
}
RouterEntity routerEntity = ServiceController.routes(instance, routerPath);
route(routerEntity);
} }
}; };
......
...@@ -37,7 +37,6 @@ import com.nepxion.cots.twaver.element.TNode; ...@@ -37,7 +37,6 @@ import com.nepxion.cots.twaver.element.TNode;
import com.nepxion.cots.twaver.graph.TGraphManager; import com.nepxion.cots.twaver.graph.TGraphManager;
import com.nepxion.discovery.console.desktop.controller.ServiceController; import com.nepxion.discovery.console.desktop.controller.ServiceController;
import com.nepxion.discovery.console.desktop.entity.InstanceEntity; import com.nepxion.discovery.console.desktop.entity.InstanceEntity;
import com.nepxion.discovery.console.desktop.entity.RouterEntity;
import com.nepxion.discovery.console.desktop.icon.ConsoleIconFactory; import com.nepxion.discovery.console.desktop.icon.ConsoleIconFactory;
import com.nepxion.discovery.console.desktop.locale.ConsoleLocale; import com.nepxion.discovery.console.desktop.locale.ConsoleLocale;
import com.nepxion.discovery.console.desktop.workspace.common.UIUtil; import com.nepxion.discovery.console.desktop.workspace.common.UIUtil;
...@@ -335,15 +334,13 @@ public class ServiceTopology extends AbstractTopology { ...@@ -335,15 +334,13 @@ public class ServiceTopology extends AbstractTopology {
InstanceEntity instance = (InstanceEntity) node.getUserObject(); InstanceEntity instance = (InstanceEntity) node.getUserObject();
RouterEntity routerEntity = ServiceController.routes(instance, "discovery-springcloud-example-a;discovery-springcloud-example-b;discovery-springcloud-example-c");
if (routerTopology == null) { if (routerTopology == null) {
routerTopology = new RouterTopology(); routerTopology = new RouterTopology();
routerTopology.setPreferredSize(new Dimension(1200, 900)); routerTopology.setPreferredSize(new Dimension(1200, 900));
} }
routerTopology.route(routerEntity); routerTopology.setServices(instanceMap.keySet().toArray());
routerTopology.setInstanceMap(instanceMap); routerTopology.setInstance(instance);
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), routerTopology, "路由信息", JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true); JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), routerTopology, "路由信息", JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true);
} }
......
...@@ -12,6 +12,7 @@ view_router_info=查看路由信息 ...@@ -12,6 +12,7 @@ view_router_info=查看路由信息
service_list=服务列表 service_list=服务列表
execute_router=执行路由 execute_router=执行路由
router_path_invalid=路由路径不能为空
get_service_instances_failure=获取服务和实例列表失败 get_service_instances_failure=获取服务和实例列表失败
query_data_failure=查询数据失败,可能该实例已下线 query_data_failure=查询数据失败,可能该实例已下线
......
...@@ -12,6 +12,7 @@ view_router_info=\u67e5\u770b\u8def\u7531\u4fe1\u606f ...@@ -12,6 +12,7 @@ view_router_info=\u67e5\u770b\u8def\u7531\u4fe1\u606f
service_list=\u670d\u52a1\u5217\u8868 service_list=\u670d\u52a1\u5217\u8868
execute_router=\u6267\u884c\u8def\u7531 execute_router=\u6267\u884c\u8def\u7531
router_path_invalid=\u8def\u7531\u8def\u5f84\u4e0d\u80fd\u4e3a\u7a7a
get_service_instances_failure=\u83b7\u53d6\u670d\u52a1\u548c\u5b9e\u4f8b\u5217\u8868\u5931\u8d25 get_service_instances_failure=\u83b7\u53d6\u670d\u52a1\u548c\u5b9e\u4f8b\u5217\u8868\u5931\u8d25
query_data_failure=\u67e5\u8be2\u6570\u636e\u5931\u8d25\uff0c\u53ef\u80fd\u8be5\u5b9e\u4f8b\u5df2\u4e0b\u7ebf query_data_failure=\u67e5\u8be2\u6570\u636e\u5931\u8d25\uff0c\u53ef\u80fd\u8be5\u5b9e\u4f8b\u5df2\u4e0b\u7ebf
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment