private VirtualDeploymentUnit getVirtualDeploymentUnit( String idVdu, VirtualNetworkFunctionRecord virtualNetworkFunctionRecord) throws NotFoundException { VirtualDeploymentUnit virtualDeploymentUnit = null; for (VirtualDeploymentUnit virtualDeploymentUnit1 : virtualNetworkFunctionRecord.getVdu()) { if (virtualDeploymentUnit1.getId().equals(idVdu)) { virtualDeploymentUnit = virtualDeploymentUnit1; } } if (virtualDeploymentUnit == null) { throw new NotFoundException("No VirtualDeploymentUnit found with id " + idVdu); } return virtualDeploymentUnit; }
private VNFCInstance getVnfcInSuchState(String state) { for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { for (VNFCInstance vnfcInstance : vdu.getVnfc_instance()) { if (vnfcInstance.getState() != null && vnfcInstance.getState().equals(state)) { return vnfcInstance; } } } return null; }
private String getVNFCHostname(NetworkServiceRecord nsr, String vnfcId) { for (VirtualNetworkFunctionRecord vnfr : nsr.getVnfr()) { for (VirtualDeploymentUnit vdu : vnfr.getVdu()) { for (VNFCInstance vnfcInstance : vdu.getVnfc_instance()) { if (vnfcInstance.getId().equals(vnfcId)) { return vnfcInstance.getHostname(); } } } } return null; }
@Override public NFVMessage doWork() throws NsrNotFoundException { log.info("Stopped VNFR: " + virtualNetworkFunctionRecord.getName()); VirtualNetworkFunctionRecord existing = vnfrRepository.findFirstById(virtualNetworkFunctionRecord.getId()); log.trace("VNFR existing hibernate version = " + existing.getHbVersion()); log.trace("VNFR reiceived hibernate version = " + virtualNetworkFunctionRecord.getHbVersion()); for (VirtualDeploymentUnit virtualDeploymentUnit : virtualNetworkFunctionRecord.getVdu()) { for (VNFCInstance vnfcInstance : virtualDeploymentUnit.getVnfc_instance()) { log.trace("VNFCI received hibernate version = " + vnfcInstance.getHbVersion()); } } for (VirtualDeploymentUnit virtualDeploymentUnit : existing.getVdu()) { for (VNFCInstance vnfcInstance : virtualDeploymentUnit.getVnfc_instance()) { log.trace("VNFCI existing hibernate version = " + vnfcInstance.getHbVersion()); } } setHistoryLifecycleEvent(); saveVirtualNetworkFunctionRecord(); return null; }
@Override public VnfmOrLogMessage getLog(String nsrId, String vnfrName, String hostname) throws NotFoundException, InterruptedException, BadFormatException, ExecutionException { for (VirtualNetworkFunctionRecord virtualNetworkFunctionRecord : networkServiceRecordRepository.findFirstById(nsrId).getVnfr()) { if (virtualNetworkFunctionRecord.getName().equals(vnfrName)) { for (VirtualDeploymentUnit virtualDeploymentUnit : virtualNetworkFunctionRecord.getVdu()) { for (VNFCInstance vnfcInstance : virtualDeploymentUnit.getVnfc_instance()) { if (hostname.equals(vnfcInstance.getHostname())) { log.debug("Requesting log from VNFM"); Future<NFVMessage> futureMessage = vnfmManager.requestLog(virtualNetworkFunctionRecord, hostname); VnfmOrLogMessage vnfmOrLogMessage = (VnfmOrLogMessage) futureMessage.get(); return vnfmOrLogMessage; } } } } } throw new NotFoundException("Error something was not found"); } }
private VNFCInstance getVnfcInstance( VirtualNetworkFunctionRecord virtualNetworkFunctionRecord, VNFComponent component) { VNFCInstance vnfcInstance_new = null; boolean found = false; for (VirtualDeploymentUnit virtualDeploymentUnit : virtualNetworkFunctionRecord.getVdu()) { for (VNFCInstance vnfcInstance : virtualDeploymentUnit.getVnfc_instance()) { if (vnfcInstance.getVnfComponent().getId().equals(component.getId())) { vnfcInstance_new = vnfcInstance; fillProvidesVNFC(virtualNetworkFunctionRecord, vnfcInstance); found = true; log.debug("VNFComponentInstance FOUND : " + vnfcInstance_new.getVnfComponent()); break; } } if (found) { break; } } return vnfcInstance_new; }
private String getVnfcId() { for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { for (VNFCInstance vnfcInstance : vdu.getVnfc_instance()) { if (this.vnfcInstance.getVc_id().equals(vnfcInstance.getVc_id())) { return vnfcInstance.getId(); } } if (vnfcInstance.getId() != null) { return vnfcInstance.getId(); } } return null; }
@Test public void vnfLifecycleOperationGrantingTest() throws VimException, PluginException { VirtualNetworkFunctionRecord vnfr = createVirtualNetworkFunctionRecord(); when(vimInstanceRepository.findByProjectIdAndName(anyString(), anyString())) .thenReturn(createVimInstance()); when(vimBroker.getLeftQuota(any(BaseVimInstance.class))).thenReturn(createMaxQuota()); Map<String, BaseVimInstance> granted = vnfLifecycleOperationGranting.grantLifecycleOperation(vnfr); log.debug(granted.size() + " == " + vnfr.getVdu().size()); Assert.assertTrue(granted.size() == vnfr.getVdu().size()); when(vimBroker.getLeftQuota(any(BaseVimInstance.class))).thenReturn(createMinQuota()); granted = vnfLifecycleOperationGranting.grantLifecycleOperation(vnfr); Assert.assertFalse(granted.size() == vnfr.getVdu().size()); }
@Override protected NFVMessage doWork() throws Exception { log.info("Release resources for VNFR: " + virtualNetworkFunctionRecord.getName()); for (VirtualDeploymentUnit virtualDeploymentUnit : virtualNetworkFunctionRecord.getVdu()) { log.debug( "Removing VDU: " + virtualDeploymentUnit.getHostname() + " from VNFR " + virtualNetworkFunctionRecord.getId()); for (VNFCInstance vnfcInstance : virtualDeploymentUnit.getVnfc_instance()) { log.debug( "Removing VNFC instance: " + vnfcInstance + " from VNFR " + virtualNetworkFunctionRecord.getId()); this.resourceManagement.release(virtualDeploymentUnit, vnfcInstance); } } setHistoryLifecycleEvent(); saveVirtualNetworkFunctionRecord(); return null; }
private NFVMessage handleVimException(VimException e) { e.printStackTrace(); log.error(e.getMessage()); HistoryLifecycleEvent lifecycleEvent = new HistoryLifecycleEvent(); lifecycleEvent.setEvent(Event.ERROR.name()); SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd'-'HH:mm:ss:SSS'-'z"); lifecycleEvent.setExecutedAt(format.format(new Date())); lifecycleEvent.setDescription(e.getMessage()); VNFCInstance vnfcInstance = e.getVnfcInstance(); if (vnfcInstance != null) { log.info("The VM was not correctly deployed. ExtId is: " + vnfcInstance.getVc_id()); log.debug("Details are: " + vnfcInstance); for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { if (vdu.getId().equals(e.getVirtualDeploymentUnit().getId())) { if (vdu.getVnfc_instance() == null) { vdu.setVnfc_instance(new LinkedHashSet<>()); } vdu.getVnfc_instance().add(vnfcInstance); log.debug("Found VDU and set vnfcInstance"); } } } virtualNetworkFunctionRecord.getLifecycle_event_history().add(lifecycleEvent); try { saveVirtualNetworkFunctionRecord(); } catch (NotFoundException e1) { log.error(e1.getLocalizedMessage()); } return new OrVnfmErrorMessage(virtualNetworkFunctionRecord, e.getMessage()); }
VirtualDeploymentUnit virtualDeploymentUnit = null; for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { if (vdu.getProjectId() != null && vdu.getProjectId().equals(projectId)) { vdusFound.add(vdu);
for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { BaseVimInstance vimInstance = vims.get(vdu.getId()); if (vimInstance == null) {
for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { if (vdu.getId().equals(idVdu) && vdu.getProjectId() != null
@Override public void delete(String id, String projectId) throws NotFoundException, BadRequestException { BaseVimInstance vimInstance = vimRepository.findFirstByIdAndProjectId(id, projectId); if (vimInstance == null) { throw new NotFoundException("Vim Instance with id " + id + " was not found"); } if (checkForVimInVnfr) { for (NetworkServiceRecord nsr : nsrRepository.findByProjectId(projectId)) { for (VirtualNetworkFunctionRecord vnfr : nsr.getVnfr()) { for (VirtualDeploymentUnit vdu : vnfr.getVdu()) { if (vdu.getVimInstanceName().contains(vimInstance.getName())) { throw new BadRequestException( "Cannot delete VIM Instance " + vimInstance.getName() + " while it is in use."); } } } } } vimRepository.delete(vimInstance); }
for (VirtualDeploymentUnit vdu : vnfr.getVdu()) { if (vdu.getVimInstanceName().contains(vimInstanceOld.getName())) { vdu.getVimInstanceName().remove(vimInstanceOld.getName());
.findFirstById(virtualNetworkFunctionRecord.getParent_ns_id()) .getProjectId()); for (VirtualDeploymentUnit vdu : virtualNetworkFunctionRecord.getVdu()) { vdu.setProjectId( nsrRepository
private static void setVdu( VirtualNetworkFunctionDescriptor vnfd, Map<String, Collection<BaseVimInstance>> vimInstances, VirtualNetworkFunctionRecord virtualNetworkFunctionRecord) { virtualNetworkFunctionRecord.setVdu(new HashSet<>()); for (VirtualDeploymentUnit virtualDeploymentUnit : vnfd.getVdu()) { VirtualDeploymentUnit vduNew = new VirtualDeploymentUnit(); vduNew.setMetadata(new HashMap<>()); virtualDeploymentUnit.getMetadata().forEach((k, v) -> vduNew.getMetadata().put(k, v)); vduNew.setParent_vdu(virtualDeploymentUnit.getId()); vduNew.setName(virtualDeploymentUnit.getName()); vduNew.setVimInstanceName(virtualDeploymentUnit.getVimInstanceName()); vduNew.setHostname(virtualDeploymentUnit.getHostname()); vduNew.setComputation_requirement(virtualDeploymentUnit.getComputation_requirement()); vduNew.setScale_in_out(virtualDeploymentUnit.getScale_in_out()); vduNew.setVdu_constraint(virtualDeploymentUnit.getVdu_constraint()); vduNew.setVirtual_network_bandwidth_resource( virtualDeploymentUnit.getVirtual_network_bandwidth_resource()); vduNew.setVirtual_memory_resource_element( virtualDeploymentUnit.getVirtual_memory_resource_element()); setVnfComponents(virtualDeploymentUnit, vduNew); setVduLifeCycleEvents(virtualDeploymentUnit, vduNew); setMonitoringParameters(virtualDeploymentUnit, vduNew); setHighAvailability(virtualDeploymentUnit, vduNew); setFaultManagementPolicies(virtualDeploymentUnit, vduNew); setVmImages(virtualDeploymentUnit, vduNew); setVimInstanceNames(vimInstances, virtualDeploymentUnit, vduNew); virtualNetworkFunctionRecord.getVdu().add(vduNew); } }
private VirtualNetworkFunctionRecord createVirtualNetworkFunctionRecord() { VirtualNetworkFunctionRecord virtualNetworkFunctionRecord = new VirtualNetworkFunctionRecord(); virtualNetworkFunctionRecord.setMonitoring_parameter( new HashSet<String>() { { add("monitor1"); add("monitor2"); add("monitor3"); } }); VNFDeploymentFlavour vdf = new VNFDeploymentFlavour(); vdf.setExtId("mocked_vdu_ext_id"); vdf.setFlavour_key("m1.tiny"); virtualNetworkFunctionRecord.setName("mocked_vnfr"); virtualNetworkFunctionRecord.setDeployment_flavour_key(vdf.getFlavour_key()); virtualNetworkFunctionRecord.setVdu(new HashSet<VirtualDeploymentUnit>()); BaseVimInstance vimInstance = createVimInstance(); for (int i = 1; i <= 3; i++) { virtualNetworkFunctionRecord.getVdu().add(createVDU(i, vimInstance)); } return virtualNetworkFunctionRecord; }