Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DomainResultHandler implements NewStepHandler {
- private final DomainOperationContext domainOperationContext;
- public DomainResultHandler(DomainOperationContext domainOperationContext) {
- this.domainOperationContext = domainOperationContext;
- }
- @Override
- public void execute(NewOperationContext context, ModelNode operation) throws OperationFailedException {
- final ModelNode result = context.getResult();
- populateServerResults(result);
- //TODO implement execute
- throw new UnsupportedOperationException();
- }
- private void populateServerResults(ModelNode result) {
- final Set<String> groupNames = new TreeSet<String>();
- final Map<String, Set<HostServer>> groupToServerMap = new HashMap<String, Set<HostServer>>();
- for (Map.Entry<ServerIdentity, ModelNode> entry : domainOperationContext.getServerResults().entrySet()) {
- final String serverGroup = entry.getKey().getServerGroupName();
- groupNames.add(serverGroup);
- final String hostName = entry.getKey().getHostName();
- final String serverName = entry.getKey().getHostName();
- if(!groupToServerMap.containsKey(serverGroup)) {
- groupToServerMap.put(serverGroup, new TreeSet<HostServer>());
- }
- groupToServerMap.get(serverGroup).add(new HostServer(hostName, serverName, entry.getValue()));
- }
- for(String groupName : groupNames) {
- final ModelNode groupNode = new ModelNode();
- for(HostServer hostServer : groupToServerMap.get(groupName)) {
- final ModelNode serverNode = new ModelNode();
- serverNode.get(HOST).set(hostServer.hostName);
- serverNode.get(RESPONSE).set(hostServer.result);
- groupNode.add(hostServer.serverName, serverNode);
- }
- result.get(SERVER_GROUPS).add(groupName, groupNode);
- }
- }
- private class HostServer implements Comparable<HostServer> {
- private final String hostName;
- private final String serverName;
- private final ModelNode result;
- private HostServer(String hostName, String serverName, ModelNode result) {
- this.hostName = hostName;
- this.serverName = serverName;
- this.result = result;
- }
- public int compareTo(HostServer hostServer) {
- int hostCompare = hostName.compareTo(hostServer.hostName);
- if(hostCompare != 0) {
- return hostCompare;
- }
- return serverName.compareTo(hostServer.serverName);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement