/** * Return VMs that include vNUMA pinning to hosts NUMAs */ private Set<Guid> getOnlyVmsWithPinnedvNumaNodes(List<VM> vmsWithvNumaNodesConf) { Set<Guid> vmsWithPinnedvNumaNodes = new HashSet<>(); for (Iterator<VM> vmIterator = vmsWithvNumaNodesConf.iterator(); vmIterator.hasNext(); ) { final VM vm = vmIterator.next(); if (vm.getvNumaNodeList() != null && vm.getvNumaNodeList().stream().anyMatch(node -> !node.getVdsNumaNodeList().isEmpty())) { vmsWithPinnedvNumaNodes.add(vm.getId()); } } return vmsWithPinnedvNumaNodes; }
public void setVmsWithvNumaNodeList(List<VM> vmsWithvNumaNodeList) { if (!hosts.getSelectedItem().isNumaSupport()) { vmsWithvNumaNodeList.clear(); } for (Iterator<VM> vmIterator = vmsWithvNumaNodeList.iterator(); vmIterator.hasNext(); ) { final VM vm = vmIterator.next(); if (vm.getDedicatedVmForVdsList().isEmpty() || !vm.getDedicatedVmForVdsList().contains(getHosts().getSelectedItem().getId()) || vm.getvNumaNodeList() == null || vm.getvNumaNodeList().isEmpty()) { vmIterator.remove(); } } this.vmsWithvNumaNodeList = vmsWithvNumaNodeList; }
@Override public IsWidget getHostSummaryContent(VDS selectedItem, NumaSupportModel supportModel) { HostSummaryContentPanel contentPanel = hostSummaryContentProvider.get(); List<VM> vmsWithVNuma = supportModel.getVmsWithvNumaNodeList(); List<VNodeModel> numaNodes = new ArrayList<>(); for (VM vm: vmsWithVNuma) { for(VmNumaNode vmNumaNode: vm.getvNumaNodeList()) { numaNodes.add(new VNodeModel(vm, vmNumaNode)); } } contentPanel.setModel(supportModel.getNumaNodeList(), numaNodes); return contentPanel; }
@Override protected VM getVmWithNuma() { VM dummyVm = super.getVmWithNuma(); dummyVm.setId(vm.getId()); List<VmNumaNode> vmNumaNodes = getModel().getVmNumaNodes(); if (vmNumaNodes != null && !vmNumaNodes.isEmpty() && vmNumaNodes.size() == dummyVm.getvNumaNodeList().size()) { dummyVm.setvNumaNodeList(vmNumaNodes); } return dummyVm; }
protected void initVNumaNodes() { unassignedNumaNodes = new LinkedHashSet<>(); assignedNumaNodes = new HashMap<>(); final Set<Integer> hostIndices = new HashSet<>(); for (VdsNumaNode numaNode : numaNodeList) { hostIndices.add(numaNode.getIndex()); } for (final VM vm : getVmsWithvNumaNodeList()) { numaModelsPerVm.put(vm.getId(), new HashMap<Integer, VNodeModel>()); for (VmNumaNode vmNumaNode : vm.getvNumaNodeList()) { VNodeModel vNodeModel = new VNodeModel(vm, vmNumaNode); numaModelsPerVm.get(vm.getId()).put(vNodeModel.getIndex(), vNodeModel); if (vNodeModel.isPinned()) { if (!hostIndices.contains(vNodeModel.getHostNodeIndex())) { // host numa node does not exist. Unpin the numa node and update the configuration vNodeModel.unpin(); vmsToUpdate.add(vm.getId()); } } if (!vNodeModel.isPinned()) { // virtual numa node is not assigned to any host numa node unassignedNumaNodes.add(vNodeModel); } else { // virtual numa node is assigned to a host numa node assignVNumaToPhysicalNuma(vNodeModel); } } } }
protected VM getVmWithNuma() { VM vm = new VM(); String vmName = getModel().getName().getEntity(); if (vmName == null || vmName.isEmpty()) { vmName = "new_vm"; //$NON-NLS-1$ } vm.setName(vmName); Integer nodeCount = getModel().getNumaNodeCount().getEntity(); vm.setvNumaNodeList(new ArrayList<>()); for (int i = 0; i < nodeCount; i++) { VmNumaNode vmNumaNode = new VmNumaNode(); vmNumaNode.setIndex(i); vm.getvNumaNodeList().add(vmNumaNode); } return vm; }
private void populateHostSummary() { CollapsiblePanelPresenterWidget hostSummaryPanel = collapsiblePanelProvider.get(); setInSlot(TYPE_revealHostSummary, hostSummaryPanel); List<VM> vmsWithVNuma = supportModel.getVmsWithvNumaNodeList(); int totalVNuma = 0; for (VM vm: vmsWithVNuma) { totalVNuma += vm.getvNumaNodeList().size(); } VDS selectedVds = supportModel.getHosts().getSelectedItem(); hostSummaryPanel.getView().setTitleWidget(getView().getHostSummaryTitle( selectedVds.getCpuThreads(), selectedVds.getUsageCpuPercent(), selectedVds.getPhysicalMemMb(), selectedVds.getMemFree().intValue(), supportModel.getNumaNodeList().size(), totalVNuma)); hostSummaryPanel.getView().addContentWidget(getView().getHostSummaryContent( selectedVds, supportModel)); getView().setHostSummaryPanel(hostSummaryPanel); } }
vmFromDb.setvNumaNodeList(vm.getvNumaNodeList()); break;