diff options
author | Hao Kuang <Hao.Kuang@amdocs.com> | 2017-08-18 16:07:56 +0000 |
---|---|---|
committer | Patrick Brady <pb071s@att.com> | 2017-08-18 20:16:17 +0000 |
commit | 7fec0d41c1fdfdb0eef04c6df8fb4b5368a975a5 (patch) | |
tree | e18d5951fc7888f68af1c2f059234ab6bbd7978a /appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java | |
parent | 5b7590935559fe9e286a703dc662a60b47b7ed1a (diff) |
Fix ExecutionQueue cannot be cleaned
Fix that LCM Requests in Execution Queue continue after Stop OAM
request sent.
Fix that Appc-Ansible bundle cannot be fully stopped because
of NPE.
Issue-Id: APPC-159
Change-Id: I8f0a3a79a5c572ad84e66f71b4ddb47118704302
Signed-off-by: Hao Kuang <Hao.Kuang@amdocs.com>
Diffstat (limited to 'appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java')
-rw-r--r-- | appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandExecutorImpl.java | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandExecutorImpl.java b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandExecutorImpl.java index 5054d34c7..f7ffdadce 100644 --- a/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandExecutorImpl.java +++ b/appc-dispatcher/appc-command-executor/appc-command-executor-core/src/main/java/org/openecomp/appc/executor/impl/CommandExecutorImpl.java @@ -28,45 +28,50 @@ package org.openecomp.appc.executor.impl; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.concurrent.TimeUnit; - +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; import org.apache.commons.lang.ObjectUtils; import org.openecomp.appc.domainmodel.lcm.RuntimeContext; -import org.openecomp.appc.domainmodel.lcm.ActionLevel; import org.openecomp.appc.exceptions.APPCException; import org.openecomp.appc.executionqueue.ExecutionQueueService; -import org.openecomp.appc.executionqueue.impl.ExecutionQueueServiceFactory; import org.openecomp.appc.executor.CommandExecutor; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.concurrent.TimeUnit; public class CommandExecutorImpl implements CommandExecutor { - private CommandTaskFactory executionTaskFactory ; + private CommandTaskFactory executionTaskFactory; private static final EELFLogger logger = EELFManager.getInstance().getLogger(CommandExecutorImpl.class); private ExecutionQueueService executionQueueService; private ExpiredMessageHandler expiredMessageHandler; - public CommandExecutorImpl(){ + public CommandExecutorImpl() { } + /** + * Injected by blueprint + * + * @param executionQueueService + */ public void setExecutionQueueService(ExecutionQueueService executionQueueService) { this.executionQueueService = executionQueueService; } + /** + * Injected by blueprint + * @param expiredMessageHandler + */ public void setExpiredMessageHandler(ExpiredMessageHandler expiredMessageHandler) { this.expiredMessageHandler = expiredMessageHandler; } public void initialize() { logger.info("initialization started of CommandExecutorImpl"); - executionQueueService = ExecutionQueueServiceFactory.getExecutionQueueService(); executionQueueService.registerMessageExpirationListener(expiredMessageHandler); } @@ -77,13 +82,14 @@ public class CommandExecutorImpl implements CommandExecutor { /** * Execute given command * Create command request and enqueue it for execution. + * * @param commandExecutorInput Contains CommandHeader, command , target Id , payload and conf ID (optional) * @throws APPCException in case of error. */ @Override - public void executeCommand (RuntimeContext commandExecutorInput) throws APPCException{ + public void executeCommand(RuntimeContext commandExecutorInput) throws APPCException { if (logger.isTraceEnabled()) { - logger.trace("Entering to executeCommand with CommandExecutorInput = "+ ObjectUtils.toString(commandExecutorInput)); + logger.trace("Entering to executeCommand with CommandExecutorInput = " + ObjectUtils.toString(commandExecutorInput)); } enqueRequest(commandExecutorInput); if (logger.isTraceEnabled()) { @@ -91,30 +97,31 @@ public class CommandExecutorImpl implements CommandExecutor { } } - private RuntimeContext getCommandRequest(RuntimeContext commandExecutorInput){ + private RuntimeContext getCommandRequest(RuntimeContext commandExecutorInput) { if (logger.isTraceEnabled()) { - logger.trace("Entering to getCommandRequest with CommandExecutorInput = "+ ObjectUtils.toString(commandExecutorInput)); + logger.trace("Entering to getCommandRequest with CommandExecutorInput = " + ObjectUtils.toString(commandExecutorInput)); } RuntimeContext commandRequest; commandRequest = commandExecutorInput; if (logger.isTraceEnabled()) { - logger.trace("Exiting from getCommandRequest with (CommandRequest = "+ ObjectUtils.toString(commandRequest)+")"); + logger.trace("Exiting from getCommandRequest with (CommandRequest = " + ObjectUtils.toString(commandRequest) + ")"); } return commandRequest; } @SuppressWarnings("unchecked") - private void enqueRequest(RuntimeContext request) throws APPCException{ + private void enqueRequest(RuntimeContext request) throws APPCException { if (logger.isTraceEnabled()) { - logger.trace("Entering to enqueRequest with CommandRequest = "+ ObjectUtils.toString(request)); + logger.trace("Entering to enqueRequest with CommandRequest = " + ObjectUtils.toString(request)); } try { - String action = request.getRequestContext().getAction().name(); CommandTask commandTask = executionTaskFactory.getExecutionTask(request); + long remainingTTL = getRemainingTTL(request); - executionQueueService.putMessage(commandTask,remainingTTL, TimeUnit.MILLISECONDS); + + executionQueueService.putMessage(commandTask, remainingTTL, TimeUnit.MILLISECONDS); } catch (Exception e) { - logger.error("Exception: "+e.getMessage()); + logger.error("Exception: " + e.getMessage()); throw new APPCException(e); } @@ -129,9 +136,9 @@ public class CommandExecutorImpl implements CommandExecutor { return ChronoUnit.MILLIS.between(Instant.now(), requestTimestamp.plusSeconds(ttl)); } - private CommandTask getMessageExecutor(RuntimeContext request){ + private CommandTask getMessageExecutor(RuntimeContext request) { if (logger.isTraceEnabled()) { - logger.trace("Entering to getMessageExecutor with command = "+ request); + logger.trace("Entering to getMessageExecutor with command = " + request); } CommandTask executionTask = executionTaskFactory.getExecutionTask(request); if (logger.isTraceEnabled()) { @@ -139,6 +146,4 @@ public class CommandExecutorImpl implements CommandExecutor { } return executionTask; } - - } |