public static NFVMessage getNfvErrorMessage( VirtualNetworkFunctionRecord payload, Throwable exception, String nsrId) { NFVMessage nfvMessage; nfvMessage = new VnfmOrErrorMessage(new Exception(exception), payload, nsrId); nfvMessage.setAction(Action.ERROR); return nfvMessage; }
public Future<NFVMessage> sendToVnfm(NFVMessage nfvMessage, String url) { String json = gson.toJson(nfvMessage); if (!url.endsWith("/")) { url += "/"; } url += "core-rest-actions"; if (log.isTraceEnabled()) { log.trace("Sending message: " + json + " to url " + url); } else { log.debug("Sending message: " + nfvMessage.getAction() + " to url " + url); } return new AsyncResult<>(gson.fromJson(this.post(json, url), NFVMessage.class)); } }
@Override @RabbitListener( bindings = @QueueBinding( value = @Queue( value = RabbitConfiguration.QUEUE_NAME_VNFM_CORE_ACTIONS_REPLY, durable = RabbitConfiguration.QUEUE_DURABLE, autoDelete = RabbitConfiguration.QUEUE_AUTODELETE), exchange = @Exchange( value = RabbitConfiguration.EXCHANGE_NAME_OPENBATON, ignoreDeclarationExceptions = "true", type = RabbitConfiguration.EXCHANGE_TYPE_OPENBATON, durable = RabbitConfiguration.EXCHANGE_DURABLE_OPENBATON), key = RabbitConfiguration.QUEUE_NAME_VNFM_CORE_ACTIONS_REPLY)) public String actionFinished(String nfvMessage) throws ExecutionException, InterruptedException { NFVMessage message = gson.fromJson(nfvMessage, NFVMessage.class); log.debug("NFVO - core module received (via MB): " + message.getAction()); log.debug("Received ACTION: " + message.getAction()); Future<NFVMessage> res = stateHandler.executeAction(message); String result = gson.toJson(res.get()); log.debug("Concluded ACTION: " + message.getAction()); return result; }
break; result.setAction(Action.valueOf(action)); log.trace("Deserialized message is " + result); return result;
@Override @RabbitListener( bindings = @QueueBinding( value = @Queue( value = RabbitConfiguration.QUEUE_NAME_VNFM_CORE_ACTIONS, durable = RabbitConfiguration.QUEUE_DURABLE, autoDelete = RabbitConfiguration.QUEUE_AUTODELETE), exchange = @Exchange( value = RabbitConfiguration.EXCHANGE_NAME_OPENBATON, ignoreDeclarationExceptions = "true", type = RabbitConfiguration.EXCHANGE_TYPE_OPENBATON, durable = RabbitConfiguration.EXCHANGE_DURABLE_OPENBATON), key = RabbitConfiguration.QUEUE_NAME_VNFM_CORE_ACTIONS)) public void actionFinishedVoid(String nfvMessage) throws ExecutionException, InterruptedException { NFVMessage message = gson.fromJson(nfvMessage, NFVMessage.class); log.debug("NFVO - core module received (via MB)" + message.getAction()); log.debug("----------Executing ACTION: " + message.getAction()); stateHandler.executeAction(message).get(); log.debug("-----------Finished ACTION: " + message.getAction()); } }
break; result.setAction(Action.valueOf(action)); log.trace("Deserialized message is " + result); return result;
log.debug( "Sending NFVMessage with action: " + nfvMessage.getAction() + " to destination: " + destinationName);
@Override @Async public Future<Void> handleVNF( NetworkServiceDescriptor networkServiceDescriptor, NetworkServiceRecord networkServiceRecord, DeployNSRBody body, Map<String, Set<String>> vduVimInstances, VirtualNetworkFunctionDescriptor vnfd, String monitoringIp) throws NotFoundException, BadFormatException, ExecutionException, InterruptedException { log.debug( "Processing VNFD (" + vnfd.getName() + ") for NSD (" + networkServiceDescriptor.getName() + ")"); VnfmSender vnfmSender = generator.getVnfmSender(vnfd); NFVMessage message = generator.getNextMessage(vnfd, vduVimInstances, networkServiceRecord, body, monitoringIp); VnfmManagerEndpoint endpoint = generator.getEndpoint(vnfd); log.debug("----------Executing ACTION: " + message.getAction()); executeAction(vnfmSender.sendCommand(message, endpoint)); log.info("Sent " + message.getAction() + " to VNF: " + vnfd.getName()); return new AsyncResult<>(null); }
if (response.getAction().ordinal() == Action.ERROR.ordinal()) { OrVnfmErrorMessage errorMessage = (OrVnfmErrorMessage) response; log.error(errorMessage.getMessage());
private OrVnfmGrantLifecycleOperationMessage grantLifecycleOperation() throws VnfmSdkException { NFVMessage response; try { response = vnfmHelper.sendAndReceive( VnfmUtils.getNfvMessage(Action.GRANT_OPERATION, virtualNetworkFunctionRecord)); } catch (Exception e) { throw new VnfmSdkException("Not able to grant operation", e, virtualNetworkFunctionRecord); } if (response != null) { if (response.getAction().ordinal() == Action.ERROR.ordinal()) { throw new VnfmSdkException( "Not able to grant operation because: " + ((OrVnfmErrorMessage) response).getMessage(), ((OrVnfmErrorMessage) response).getVnfr()); } OrVnfmGrantLifecycleOperationMessage orVnfmGrantLifecycleOperationMessage = (OrVnfmGrantLifecycleOperationMessage) response; return orVnfmGrantLifecycleOperationMessage; } return null; }
private Future<NFVMessage> executeActionNotAsync(NFVMessage nfvMessage) { String actionName = nfvMessage.getAction().toString().replace("_", "").toLowerCase(); String beanName = actionName + "Task"; log.debug("Looking for bean called: " + beanName); AbstractTask task = (AbstractTask) this.context.getBean(beanName); log.trace("message: " + nfvMessage); task.setAction(nfvMessage.getAction()); if (isaReturningTask(nfvMessage.getAction())) { return executor.submit(task); } else {
+ nfvMessage.getAction() + " to " + virtualNetworkFunctionRecordDest.getName());
public VirtualNetworkFunctionRecord setupTask( NFVMessage nfvMessage, org.openbaton.vnfm.interfaces.tasks.AbstractTask task) { VirtualNetworkFunctionRecord virtualNetworkFunctionRecord; if (nfvMessage.getAction().ordinal() == Action.ERROR.ordinal()) { VnfmOrErrorMessage vnfmOrErrorMessage = (VnfmOrErrorMessage) nfvMessage; virtualNetworkFunctionRecord = vnfmOrErrorMessage.getVirtualNetworkFunctionRecord(); ((ErrorTask) task).setException(e); ((ErrorTask) task).setNsrId(vnfmOrErrorMessage.getNsrId()); } else if (nfvMessage.getAction().ordinal() == Action.INSTANTIATE.ordinal()) { VnfmOrInstantiateMessage vnfmOrInstantiate = (VnfmOrInstantiateMessage) nfvMessage; virtualNetworkFunctionRecord = vnfmOrInstantiate.getVirtualNetworkFunctionRecord(); } else if (nfvMessage.getAction().ordinal() == Action.SCALED.ordinal()) { VnfmOrScaledMessage vnfmOrScaled = (VnfmOrScaledMessage) nfvMessage; virtualNetworkFunctionRecord = vnfmOrScaled.getVirtualNetworkFunctionRecord(); ((ScaledTask) task).setVnfcInstance(vnfmOrScaled.getVnfcInstance()); } else if (nfvMessage.getAction().ordinal() == Action.HEAL.ordinal()) { VnfmOrHealedMessage vnfmOrHealedMessage = (VnfmOrHealedMessage) nfvMessage; virtualNetworkFunctionRecord = vnfmOrHealedMessage.getVirtualNetworkFunctionRecord(); ((HealTask) task).setVnfcInstance(vnfmOrHealedMessage.getVnfcInstance()); ((HealTask) task).setCause(vnfmOrHealedMessage.getCause()); } else if (nfvMessage.getAction().ordinal() == Action.SCALING.ordinal()) { VnfmOrScalingMessage vnfmOrScalingMessage = (VnfmOrScalingMessage) nfvMessage; virtualNetworkFunctionRecord = vnfmOrScalingMessage.getVirtualNetworkFunctionRecord(); ((ScalingTask) task).setUserdata(vnfmOrScalingMessage.getUserData()); ((ScalingTask) task).setVimInstance(vnfmOrScalingMessage.getVimInstance()); } else if (nfvMessage.getAction().ordinal() == Action.ALLOCATE_RESOURCES.ordinal()) { VnfmOrAllocateResourcesMessage vnfmOrAllocateResourcesMessage = (VnfmOrAllocateResourcesMessage) nfvMessage;
log.debug( "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + message.getAction() + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); log.trace("VNFM: Received Message: " + message.getAction()); NFVMessage nfvMessage = null; OrVnfmGenericMessage orVnfmGenericMessage = null; switch (message.getAction()) { case SCALE_IN: OrVnfmScalingMessage scalingMessage = (OrVnfmScalingMessage) message;