Jason Liao has posted comments on this change. Change subject: engine: NUMA feature queries and actions validation ......................................................................
Patch Set 4: (8 comments) http://gerrit.ovirt.org/#/c/27617/4/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/numa/vm/AddVmNumaNodesCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/numa/vm/AddVmNumaNodesCommand.java: Line 57: @Override Line 58: protected boolean canDoAction() { Line 59: Guid vdsId = getVm().getDedicatedVmForVds(); Line 60: if (vdsId == null) { Line 61: return failCanDoAction(VdcBllMessages.VM_NUMA_PINNED_VDS_NOT_EXIST); > should be configurable. I am not sure what you are mean ? Line 62: } Line 63: List<VdsNumaNode> vdsNumaNodes = getDbFacade().getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vdsId); Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { Line 59: Guid vdsId = getVm().getDedicatedVmForVds(); Line 60: if (vdsId == null) { Line 61: return failCanDoAction(VdcBllMessages.VM_NUMA_PINNED_VDS_NOT_EXIST); Line 62: } Line 63: List<VdsNumaNode> vdsNumaNodes = getDbFacade().getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vdsId); > define getVdsNumaNodeDAO() in base class (convention). I think you are right, I will create a base class for it Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { Line 66: for (Pair<Guid, Pair<Boolean, Integer>> pair : vmNumaNode.getVdsNumaNodeList()) { Line 67: int index = pair.getSecond().getSecond(); Line 61: return failCanDoAction(VdcBllMessages.VM_NUMA_PINNED_VDS_NOT_EXIST); Line 62: } Line 63: List<VdsNumaNode> vdsNumaNodes = getDbFacade().getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vdsId); Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { > nullity check on collection. Copy that Line 66: for (Pair<Guid, Pair<Boolean, Integer>> pair : vmNumaNode.getVdsNumaNodeList()) { Line 67: int index = pair.getSecond().getSecond(); Line 68: for (VdsNumaNode vdsNumaNode : vdsNumaNodes) { Line 69: if (vdsNumaNode.getIndex() == index) { Line 62: } Line 63: List<VdsNumaNode> vdsNumaNodes = getDbFacade().getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vdsId); Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { Line 66: for (Pair<Guid, Pair<Boolean, Integer>> pair : vmNumaNode.getVdsNumaNodeList()) { > nullity check on collection. Copy that Line 67: int index = pair.getSecond().getSecond(); Line 68: for (VdsNumaNode vdsNumaNode : vdsNumaNodes) { Line 69: if (vdsNumaNode.getIndex() == index) { Line 70: if (vmNumaNode.getMemTotal() > vdsNumaNode.getMemTotal()) { Line 63: List<VdsNumaNode> vdsNumaNodes = getDbFacade().getVdsNumaNodeDAO().getAllVdsNumaNodeByVdsId(vdsId); Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { Line 66: for (Pair<Guid, Pair<Boolean, Integer>> pair : vmNumaNode.getVdsNumaNodeList()) { Line 67: int index = pair.getSecond().getSecond(); > why auto-boxing here? I will use no-boxing one Line 68: for (VdsNumaNode vdsNumaNode : vdsNumaNodes) { Line 69: if (vdsNumaNode.getIndex() == index) { Line 70: if (vmNumaNode.getMemTotal() > vdsNumaNode.getMemTotal()) { Line 71: return failCanDoAction(VdcBllMessages.VM_NUMA_NODE_MEMRORY_ERROR); Line 64: List<VmNumaNode> vmNumaNodes = getParameters().getVmNumaNodeList(); Line 65: for (VmNumaNode vmNumaNode : vmNumaNodes) { Line 66: for (Pair<Guid, Pair<Boolean, Integer>> pair : vmNumaNode.getVdsNumaNodeList()) { Line 67: int index = pair.getSecond().getSecond(); Line 68: for (VdsNumaNode vdsNumaNode : vdsNumaNodes) { > nullity check on collection. Copy that Line 69: if (vdsNumaNode.getIndex() == index) { Line 70: if (vmNumaNode.getMemTotal() > vdsNumaNode.getMemTotal()) { Line 71: return failCanDoAction(VdcBllMessages.VM_NUMA_NODE_MEMRORY_ERROR); Line 72: } Line 67: int index = pair.getSecond().getSecond(); Line 68: for (VdsNumaNode vdsNumaNode : vdsNumaNodes) { Line 69: if (vdsNumaNode.getIndex() == index) { Line 70: if (vmNumaNode.getMemTotal() > vdsNumaNode.getMemTotal()) { Line 71: return failCanDoAction(VdcBllMessages.VM_NUMA_NODE_MEMRORY_ERROR); > should depend on mem-tune no? What is you mean of mem-tune Line 72: } Line 73: break; Line 74: } Line 75: } http://gerrit.ovirt.org/#/c/27617/4/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/numa/vm/UpdateVmNumaNodesCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/numa/vm/UpdateVmNumaNodesCommand.java: Line 72: } Line 73: } Line 74: } Line 75: return true; Line 76: } > very similar to other command. please extract and unify code. Copy that Line 77: Line 78: @Override Line 79: public List<PermissionSubject> getPermissionCheckSubjects() { Line 80: List<PermissionSubject> permissionList = new ArrayList<PermissionSubject>(); -- To view, visit http://gerrit.ovirt.org/27617 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9c299405ec5d82ada713ed3d220554bf3055c145 Gerrit-PatchSet: 4 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Jason Liao <chuan.l...@hp.com> Gerrit-Reviewer: Doron Fediuck <dfedi...@redhat.com> Gerrit-Reviewer: Gilad Chaplik <gchap...@redhat.com> Gerrit-Reviewer: Jason Liao <chuan.l...@hp.com> Gerrit-Reviewer: Kobi Ianko <k...@redhat.com> Gerrit-Reviewer: Xiaolei Shi <xiao-lei....@hp.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches