Commit 31d895e5 by Nepxion

增加图形化灰度发布功能

parent 4179fbf1
...@@ -19,6 +19,7 @@ import java.awt.BorderLayout; ...@@ -19,6 +19,7 @@ import java.awt.BorderLayout;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Point; import java.awt.Point;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -218,15 +219,33 @@ public class ServiceTopology extends AbstractTopology { ...@@ -218,15 +219,33 @@ public class ServiceTopology extends AbstractTopology {
TElementManager.addGroupChildren(dataBox, group); TElementManager.addGroupChildren(dataBox, group);
} }
private Object[] filterServices(TNode node) {
Object[] services = instanceMap.keySet().toArray();
List<Object> filterServices = new ArrayList<Object>();
for (Object service : services) {
TGroup group = getGroup(service.toString());
// node.getParent() != group 表示自己不能路由自己,暂时不禁止
if (group != null && StringUtils.isNotEmpty(group.getClientProperty("plugin").toString())) {
filterServices.add(service);
}
}
return filterServices.toArray();
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void locateGroups() { private TGroup getGroup(String serviceId) {
List<TGroup> groups = TElementManager.getGroups(dataBox); List<TElement> elements = dataBox.getAllElements();
for (TGroup group : groups) { for (TElement element : elements) {
String key = group.getUserObject().toString(); if (element instanceof TGroup) {
if (groupLocationMap.containsKey(key)) { if (StringUtils.equals(element.getUserObject().toString(), serviceId)) {
group.setLocation(groupLocationMap.get(key)); return (TGroup) element;
}
} }
} }
return null;
} }
private String getGroupName(String serviceId, int count, String plugin) { private String getGroupName(String serviceId, int count, String plugin) {
...@@ -267,6 +286,17 @@ public class ServiceTopology extends AbstractTopology { ...@@ -267,6 +286,17 @@ public class ServiceTopology extends AbstractTopology {
} }
} }
@SuppressWarnings("unchecked")
private void locateGroups() {
List<TGroup> groups = TElementManager.getGroups(dataBox);
for (TGroup group : groups) {
String key = group.getUserObject().toString();
if (groupLocationMap.containsKey(key)) {
group.setLocation(groupLocationMap.get(key));
}
}
}
private void showTopology(boolean reloaded) { private void showTopology(boolean reloaded) {
dataBox.clear(); dataBox.clear();
groupLocationMap.clear(); groupLocationMap.clear();
...@@ -474,7 +504,8 @@ public class ServiceTopology extends AbstractTopology { ...@@ -474,7 +504,8 @@ public class ServiceTopology extends AbstractTopology {
routerTopology.setPreferredSize(new Dimension(1280, 900)); routerTopology.setPreferredSize(new Dimension(1280, 900));
} }
routerTopology.setServices(instanceMap.keySet().toArray()); Object[] filterServices = filterServices(node);
routerTopology.setServices(filterServices);
routerTopology.setInstance(instance); routerTopology.setInstance(instance);
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), routerTopology, ConsoleLocale.getString("execute_gray_router"), 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, ConsoleLocale.getString("execute_gray_router"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true);
......
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