@Override public BaseVimInstance query(String vimId) { return vimRepository.findFirstById(vimId); }
@Override @Transactional public BaseNfvImage addImage(String id, BaseNfvImage image) { image = imageRepository.save(image); vimRepository.findFirstById(id).addImage(image); return image; }
@Override @Transactional public void deleteImage(String idVim, String idImage) { vimRepository.findFirstById(idVim).getImages().remove(imageRepository.findOne(idImage)); imageRepository.delete(idImage); } }
@Override @Async public Future<Void> release( VirtualDeploymentUnit virtualDeploymentUnit, VNFCInstance vnfcInstance) throws VimException, ExecutionException, InterruptedException, PluginException { BaseVimInstance vimInstance = vimInstanceRepository.findFirstById(vnfcInstance.getVim_id()); org.openbaton.nfvo.vim_interfaces.resource_management.ResourceManagement vim = vimBroker.getVim(vimInstance.getType()); log.debug("Removing vnfcInstance: " + vnfcInstance); vim.release(vnfcInstance, vimInstance).get(); virtualDeploymentUnit.getVnfc().remove(vnfcInstance.getVnfComponent()); return new AsyncResult<>(null); }
@Override @Async public Future<Void> operate(VirtualDeploymentUnit vdu, String operation) throws PluginException, ExecutionException, InterruptedException, VimException { for (VNFCInstance vnfcInstance : vdu.getVnfc_instance()) { BaseVimInstance vimInstance = vimInstanceRepository.findFirstById(vnfcInstance.getVim_id()); org.openbaton.nfvo.vim_interfaces.resource_management.ResourceManagement vim = vimBroker.getVim(vimInstance.getType()); log.info("rebuilding vnfcInstance: " + vnfcInstance.getHostname()); vim.operate(vimInstance, vdu, vnfcInstance, operation).get(); } return new AsyncResult<>(null); }
"Our algorithms are too complex, even for us, this is what abnormal IQ means :("); vimInstance = vimRepository.findFirstById(vimInstance.getId()); log.debug( "Allocating VDU: "