Gilad Chaplik has uploaded a new change for review. Change subject: core: fix numa node distance persist ......................................................................
core: fix numa node distance persist Persist node distance according to numa index (and not count). Change-Id: Ia3df943ef0a655b1250ebeade8caa7711b612440 Signed-off-by: Gilad Chaplik <gchap...@redhat.com> --- M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsNumaNodeDAODbFacadeImpl.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java 2 files changed, 22 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/32901/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsNumaNodeDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsNumaNodeDAODbFacadeImpl.java index bd999ff..94a9ecd 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsNumaNodeDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsNumaNodeDAODbFacadeImpl.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.NumaNodeStatistics; @@ -200,9 +201,10 @@ if (StringUtils.isBlank(distance)) { return nodeDistance; } - String[] distanceArray = distance.split(","); + String[] distanceArray = distance.split(";"); for (int i = 0; i < distanceArray.length; i++) { - nodeDistance.put(i, Integer.valueOf(distanceArray[i])); + String[] nodeDistanceArray = distanceArray[i].split(","); + nodeDistance.put(Integer.valueOf(nodeDistanceArray[0]), Integer.valueOf(nodeDistanceArray[1])); } return nodeDistance; } @@ -212,9 +214,11 @@ return null; } StringBuilder sb = new StringBuilder(); - for (int i = 0; i < distance.size(); i++) { - sb.append(distance.get(i)); + for (Entry<Integer, Integer> entry : distance.entrySet()) { + sb.append(entry.getKey()); sb.append(","); + sb.append(entry.getValue()); + sb.append(";"); } return sb.deleteCharAt(sb.length() - 1).toString(); } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java index 444150d..9eb328a 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java @@ -9,6 +9,7 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -1657,12 +1658,21 @@ newNumaNodeList.add(numaNode); } - for (Map.Entry<String, Object> item : numaNodeDistanceMap.entrySet()) { - int index = Integer.valueOf(item.getKey()); - List<Integer> distances = extractIntegerList(numaNodeDistanceMap, item.getKey()); + Collections.sort(newNumaNodeList, new Comparator<VdsNumaNode>() { + + @Override + public int compare(VdsNumaNode arg0, VdsNumaNode arg1) { + return arg0.getIndex() < arg1.getIndex() ? -1 : 1; + } + + }); + + for (VdsNumaNode vdsNumaNode : newNumaNodeList) { + int index = vdsNumaNode.getIndex(); + List<Integer> distances = extractIntegerList(numaNodeDistanceMap, String.valueOf(index)); Map<Integer, Integer> distanceMap = new HashMap<>(distances.size()); for (int i = 0; i < distances.size(); i++) { - distanceMap.put(i, distances.get(i)); + distanceMap.put(newNumaNodeList.get(i).getIndex(), distances.get(i)); } VdsNumaNode newNumaNode = NumaUtils.getVdsNumaNodeByIndex(newNumaNodeList, index); if (newNumaNode != null) { -- To view, visit http://gerrit.ovirt.org/32901 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia3df943ef0a655b1250ebeade8caa7711b612440 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches