Commit 2b45944c by Nepxion

增加图形化灰度发布功能

parent e799431e
...@@ -35,7 +35,6 @@ import javax.swing.JPanel; ...@@ -35,7 +35,6 @@ import javax.swing.JPanel;
import javax.swing.JToolBar; import javax.swing.JToolBar;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.nepxion.cots.twaver.element.TElement; import com.nepxion.cots.twaver.element.TElement;
...@@ -173,38 +172,28 @@ public class ServiceTopology extends AbstractTopology { ...@@ -173,38 +172,28 @@ public class ServiceTopology extends AbstractTopology {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void addServices(Map<String, List<InstanceEntity>> instanceMap) { private void addServices(Map<String, List<InstanceEntity>> instanceMap) {
List<String> filterList = new ArrayList<String>(); Object[] filters = filter(instanceMap);
filterList.add(""); // 表示不过滤
for (Map.Entry<String, List<InstanceEntity>> entry : instanceMap.entrySet()) {
List<InstanceEntity> instances = entry.getValue();
if (CollectionUtils.isNotEmpty(instances)) {
for (InstanceEntity instance : instances) {
String filter = instance.getFilter();
if (!filterList.contains(filter)) {
filterList.add(filter);
}
}
}
}
if (filterComboBox == null) { if (filterComboBox == null) {
filterComboBox = new JBasicComboBox(); filterComboBox = new JBasicComboBox();
filterComboBox.setPreferredSize(new Dimension(300, filterComboBox.getPreferredSize().height)); filterComboBox.setPreferredSize(new Dimension(300, filterComboBox.getPreferredSize().height));
} }
filterComboBox.setModel(new DefaultComboBoxModel<>(filterList.toArray())); filterComboBox.setModel(new DefaultComboBoxModel<>(filters));
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), filterComboBox, "服务集群过滤", JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true); String filter = "";
int selectedValue = JBasicOptionPane.showOptionDialog(HandleManager.getFrame(this), filterComboBox, "服务集群过滤", JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/query.png"), new Object[] { SwingLocale.getString("yes"), SwingLocale.getString("no") }, null, true);
if (selectedValue == 0) {
filter = filterComboBox.getSelectedItem().toString();
}
for (Map.Entry<String, List<InstanceEntity>> entry : instanceMap.entrySet()) { for (Map.Entry<String, List<InstanceEntity>> entry : instanceMap.entrySet()) {
String serviceId = entry.getKey(); String serviceId = entry.getKey();
List<InstanceEntity> instances = entry.getValue(); List<InstanceEntity> instances = entry.getValue();
addService(serviceId, instances); addService(filter, serviceId, instances);
} }
} }
private void addService(String serviceId, List<InstanceEntity> instances) { private void addService(String filter, String serviceId, List<InstanceEntity> instances) {
int count = groupLocationMap.size(); int count = groupLocationMap.size();
String groupName = getGroupName(serviceId, instances.size(), null); String groupName = getGroupName(serviceId, instances.size(), null);
...@@ -216,7 +205,6 @@ public class ServiceTopology extends AbstractTopology { ...@@ -216,7 +205,6 @@ public class ServiceTopology extends AbstractTopology {
} }
private void addInstances(TGroup group, String serviceId, List<InstanceEntity> instances) { private void addInstances(TGroup group, String serviceId, List<InstanceEntity> instances) {
if (CollectionUtils.isNotEmpty(instances)) {
for (int i = 0; i < instances.size(); i++) { for (int i = 0; i < instances.size(); i++) {
InstanceEntity instance = instances.get(i); InstanceEntity instance = instances.get(i);
String filter = instance.getFilter(); String filter = instance.getFilter();
...@@ -233,7 +221,6 @@ public class ServiceTopology extends AbstractTopology { ...@@ -233,7 +221,6 @@ public class ServiceTopology extends AbstractTopology {
group.addChild(node); group.addChild(node);
} }
}
updateGroup(group); updateGroup(group);
...@@ -265,6 +252,26 @@ public class ServiceTopology extends AbstractTopology { ...@@ -265,6 +252,26 @@ public class ServiceTopology extends AbstractTopology {
return StringUtils.isNotEmpty(plugin); return StringUtils.isNotEmpty(plugin);
} }
private Object[] filter(Map<String, List<InstanceEntity>> instanceMap) {
List<String> filters = new ArrayList<String>();
for (Map.Entry<String, List<InstanceEntity>> entry : instanceMap.entrySet()) {
List<InstanceEntity> instances = entry.getValue();
for (InstanceEntity instance : instances) {
String filter = instance.getFilter();
if (!filters.contains(filter)) {
filters.add(filter);
}
}
}
if (filters.contains("")) {
filters.remove("");
}
return filters.toArray();
}
private Object[] filterServices(TNode node) { private Object[] filterServices(TNode node) {
Set<String> services = instanceMap.keySet(); Set<String> services = instanceMap.keySet();
List<String> filterServices = new ArrayList<String>(); List<String> filterServices = new ArrayList<String>();
...@@ -388,7 +395,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -388,7 +395,7 @@ public class ServiceTopology extends AbstractTopology {
try { try {
updateGrayState(node); updateGrayState(node);
} catch (Exception e) { } catch (Exception e) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), e); JExceptionDialog.traceException(HandleManager.getFrame(this), ConsoleLocale.getString("query_data_failure"), e);
group.removeChild(node); group.removeChild(node);
dataBox.removeElement(node); dataBox.removeElement(node);
...@@ -414,7 +421,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -414,7 +421,7 @@ public class ServiceTopology extends AbstractTopology {
try { try {
updateGrayState(node); updateGrayState(node);
} catch (Exception e) { } catch (Exception e) {
JExceptionDialog.traceException(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("query_data_failure"), e); JExceptionDialog.traceException(HandleManager.getFrame(this), ConsoleLocale.getString("query_data_failure"), e);
iterator.remove(); iterator.remove();
dataBox.removeElement(node); dataBox.removeElement(node);
...@@ -436,7 +443,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -436,7 +443,7 @@ public class ServiceTopology extends AbstractTopology {
} }
resultTextArea.setText(result.toString()); resultTextArea.setText(result.toString());
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), new JBasicScrollPane(resultTextArea), ConsoleLocale.getString("execute_result"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/edit.png"), new Object[] { SwingLocale.getString("close") }, null, true); JBasicOptionPane.showOptionDialog(HandleManager.getFrame(this), new JBasicScrollPane(resultTextArea), ConsoleLocale.getString("execute_result"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/edit.png"), new Object[] { SwingLocale.getString("close") }, null, true);
} }
@Override @Override
......
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