package org.openecomp.appc.executor.impl;
-import java.util.Date;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang.ObjectUtils;
+import org.openecomp.appc.domainmodel.lcm.RuntimeContext;
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 org.openecomp.appc.executor.impl.objects.CommandRequest;
-import org.openecomp.appc.executor.impl.objects.LCMCommandRequest;
-import org.openecomp.appc.executor.impl.objects.LCMReadOnlyCommandRequest;
-import org.openecomp.appc.executor.objects.CommandExecutorInput;
+
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
* @throws APPCException in case of error.
*/
@Override
- public void executeCommand (CommandExecutorInput commandExecutorInput) throws APPCException{
+ public void executeCommand (RuntimeContext commandExecutorInput) throws APPCException{
if (logger.isTraceEnabled()) {
logger.trace("Entering to executeCommand with CommandExecutorInput = "+ ObjectUtils.toString(commandExecutorInput));
}
- CommandRequest request = getCommandRequest(commandExecutorInput);
- enqueRequest(request);
+ enqueRequest(commandExecutorInput);
if (logger.isTraceEnabled()) {
logger.trace("Exiting from executeCommand");
}
}
- private CommandRequest getCommandRequest(CommandExecutorInput commandExecutorInput){
- if (logger.isTraceEnabled()) {
- logger.trace("Entering to getCommandRequest with CommandExecutorInput = "+ ObjectUtils.toString(commandExecutorInput));
- }
- CommandRequest commandRequest;
-
- switch(commandExecutorInput.getRuntimeContext().getRequestContext().getAction()){
- case Sync:
- commandRequest = new LCMReadOnlyCommandRequest(commandExecutorInput);
- break;
- case Audit:
- commandRequest = new LCMReadOnlyCommandRequest(commandExecutorInput);
- break;
- default:
- commandRequest = new LCMCommandRequest(commandExecutorInput);
- break;
- }
- if (logger.isTraceEnabled()) {
- logger.trace("Exiting from getCommandRequest with (CommandRequest = "+ ObjectUtils.toString(commandRequest)+")");
- }
- return commandRequest;
- }
-
@SuppressWarnings("unchecked")
- private void enqueRequest(CommandRequest request) throws APPCException{
+ private void enqueRequest(RuntimeContext request) throws APPCException{
if (logger.isTraceEnabled()) {
logger.trace("Entering to enqueRequest with CommandRequest = "+ ObjectUtils.toString(request));
}
try {
- CommandTask commandTask = getMessageExecutor(request.getCommandExecutorInput().getRuntimeContext().getRequestContext().getAction().name());
+ CommandTask commandTask = getMessageExecutor(request.getRequestContext().getAction().name());
commandTask.setCommandRequest(request);
long remainingTTL = getRemainingTTL(request);
executionQueueService.putMessage(commandTask,remainingTTL, TimeUnit.MILLISECONDS);
}
}
- private long getRemainingTTL(CommandRequest request) {
- Date requestTimestamp = request.getCommandExecutorInput().getRuntimeContext().getRequestContext().getCommonHeader().getTimeStamp();
- int ttl = request.getCommandExecutorInput().getRuntimeContext().getRequestContext().getCommonHeader().getFlags().getTtl();
- return ttl*1000 + requestTimestamp.getTime() - System.currentTimeMillis();
+ private long getRemainingTTL(RuntimeContext request) {
+ Instant requestTimestamp = request.getRequestContext().getCommonHeader().getTimeStamp();
+ int ttl = request.getRequestContext().getCommonHeader().getFlags().getTtl();
+ return ChronoUnit.MILLIS.between(Instant.now(), requestTimestamp.plusSeconds(ttl));
}
private CommandTask getMessageExecutor(String action){