import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.att.eelf.i18n.EELFResourceManager;
import com.google.common.util.concurrent.Futures;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.Action;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ActionStatusInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ActionStatusOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ActionStatusOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AttachVolumeOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AuditInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AuditOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AuditOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigureInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigureOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ConfigureOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.DetachVolumeOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.EvacuateInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.EvacuateOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.EvacuateOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.MigrateInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.MigrateOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.MigrateOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QueryOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.QuiesceTrafficOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.ResumeTrafficOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebootOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebuildInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebuildOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.RebuildOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SoftwareUploadInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SoftwareUploadOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.SoftwareUploadOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UnlockInput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UnlockOutput;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UnlockOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StartApplicationInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.StopApplicationInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePreCheckOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeSoftwareOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradePostCheckOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackupOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.UpgradeBackoutOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.status.Status;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.status.StatusBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.Action;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.onap.appc.Constants;
import org.onap.appc.configuration.Configuration;
import org.onap.appc.configuration.ConfigurationFactory;
-import org.onap.appc.domainmodel.lcm.ActionLevel;
-import org.onap.appc.domainmodel.lcm.ResponseContext;
-import org.onap.appc.exceptions.APPCException;
-import org.onap.appc.executor.objects.LCMCommandStatus;
-import org.onap.appc.executor.objects.Params;
import org.onap.appc.i18n.Msg;
import org.onap.appc.logging.LoggingConstants;
import org.onap.appc.logging.LoggingUtils;
+import org.onap.appc.provider.lcm.service.AbstractBaseUtils;
+import org.onap.appc.provider.lcm.service.ActionStatusService;
+import org.onap.appc.provider.lcm.service.QueryService;
+import org.onap.appc.provider.lcm.service.QuiesceTrafficService;
+import org.onap.appc.provider.lcm.service.ResumeTrafficService;
+import org.onap.appc.provider.lcm.service.UpgradeService;
+import org.onap.appc.provider.lcm.service.RebootService;
+import org.onap.appc.provider.lcm.service.RequestExecutor;
+import org.onap.appc.provider.lcm.service.VolumeService;
import org.onap.appc.provider.lcm.util.RequestInputBuilder;
import org.onap.appc.provider.lcm.util.ValidationService;
-import org.onap.appc.requesthandler.RequestHandler;
import org.onap.appc.requesthandler.objects.RequestHandlerInput;
import org.onap.appc.requesthandler.objects.RequestHandlerOutput;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
import java.text.ParseException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-import java.util.Collection;
-public class AppcProviderLcm implements AutoCloseable, AppcProviderLcmService {
+
+public class AppcProviderLcm
+ extends AbstractBaseUtils
+ implements AutoCloseable, AppcProviderLcmService {
private Configuration configuration = ConfigurationFactory.getConfiguration();
private final EELFLogger logger = EELFManager.getInstance().getLogger(AppcProviderLcm.class);
private final ExecutorService executor;
- private final String COMMON_ERROR_MESSAGE_TEMPLATE = "Error processing %s input : %s";
-
/**
* The ODL data store broker. Provides access to a conceptual data tree store and also provides the ability to
* subscribe for changes to data under a given branch of the tree.
/**
* Rebuilds a specific VNF
*
- * @see AppcProviderLcmService#rebuild(RebuildInput)
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#rebuild(RebuildInput)
*/
@Override
public Future<RpcResult<RebuildOutput>> rebuild(RebuildInput input) {
RebuildOutputBuilder outputBuilder = new RebuildOutputBuilder();
String action = Action.Rebuild.toString() ;
String rpcName = Action.Rebuild.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
outputBuilder.setStatus(status);
RpcResult<RebuildOutput> result = RpcResultBuilder.<RebuildOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
+
}
+
/**
* Restarts a specific VNF
*
RestartOutputBuilder outputBuilder = new RestartOutputBuilder();
String action = Action.Restart.toString() ;
String rpcName = Action.Restart.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
RequestHandlerInput request = new RequestInputBuilder().requestContext()
.build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
return Futures.immediateFuture(result);
}
+ /**
+ * Start Application
+ *
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#startApplication(StartApplicationInput)
+ */
+ @Override
+ public Future<RpcResult<StartApplicationOutput>> startApplication(StartApplicationInput input) {
+ logger.debug("Input received : " + input.toString());
+
+ StartApplicationOutputBuilder outputBuilder = new StartApplicationOutputBuilder();
+ String action = Action.StartApplication.toString() ;
+ String rpcName = Action.StartApplication.name().toLowerCase();
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ if(null == status) {
+ try {
+ RequestHandlerInput request = new RequestInputBuilder().requestContext()
+ .commonHeader(input.getCommonHeader())
+ .actionIdentifiers(input.getActionIdentifiers())
+ .payload(input.getPayload())
+ .action(action)
+ .rpcName(rpcName)
+ .build();
+
+ status = buildStatusWithDispatcherOutput(executeRequest(request));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ } catch (ParseException e) {
+ status = buildStatusWithParseException(e);
+
+ LoggingUtils.logErrorMessage(
+ LoggingConstants.TargetNames.APPC_PROVIDER,
+ String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
+ this.getClass().getName());
+
+ }
+ }
+ outputBuilder.setCommonHeader(input.getCommonHeader());
+ outputBuilder.setStatus(status);
+ RpcResult<StartApplicationOutput> result = RpcResultBuilder.<StartApplicationOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
/**
* Migrates a specific VNF
*
- * @see AppcProviderLcmService#migrate(MigrateInput)
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#migrate(MigrateInput)
*/
@Override
public Future<RpcResult<MigrateOutput>> migrate(MigrateInput input) {
MigrateOutputBuilder outputBuilder = new MigrateOutputBuilder();
String action = Action.Migrate.toString() ;
String rpcName = Action.Migrate.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
return Futures.immediateFuture(result);
}
+
/**
* Evacuates a specific VNF
*
- * @see AppcProviderLcmService#evacuate(EvacuateInput)
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#evacuate(EvacuateInput)
*/
@Override
public Future<RpcResult<EvacuateOutput>> evacuate(EvacuateInput input) {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
/**
* Evacuates a specific VNF
*
- * @see AppcProviderLcmService#snapshot(SnapshotInput)
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#snapshot(SnapshotInput)
*/
@Override
public Future<RpcResult<SnapshotOutput>> snapshot(SnapshotInput input) {
SnapshotOutputBuilder outputBuilder = new SnapshotOutputBuilder();
String action = Action.Snapshot.toString() ;
String rpcName = Action.Snapshot.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
String identityUrl = input.getIdentityUrl();
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName)
- .additionalContext("identity-url", identityUrl).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).additionalContext("identity-url", identityUrl).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
RollbackOutputBuilder outputBuilder = new RollbackOutputBuilder();
String rpcName = Action.Rollback.toString() ;
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), rpcName);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), rpcName);
String identityUrl = input.getIdentityUrl();
String snapshotId = input.getSnapshotId();
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).additionalContext("identity-url", identityUrl)
- .additionalContext("snapshot-id", snapshotId).action(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).additionalContext("identity-url", identityUrl).additionalContext("snapshot-id", snapshotId).action(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
SyncOutputBuilder outputBuilder = new SyncOutputBuilder();
String action = Action.Sync.toString() ;
String rpcName = Action.Sync.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
return Futures.immediateFuture(result);
}
- private Status buildParsingErrorStatus(ParseException e){
- LCMCommandStatus requestParsingFailure = LCMCommandStatus.REQUEST_PARSING_FAILED;
- String errorMessage = e.getMessage() != null ? e.getMessage() : e.toString();
- Params params = new Params().addParam("errorMsg", errorMessage);
- return buildStatus(requestParsingFailure.getResponseCode(), requestParsingFailure.getFormattedMessage(params));
+ @Override
+ public Future<RpcResult<QueryOutput>> query(QueryInput input) {
+ logger.debug(String.format("LCM query received input: %s", input.toString()));
+ QueryOutputBuilder outputBuilder = new QueryService().process(input);
+ RpcResult<QueryOutput> result =
+ RpcResultBuilder.<QueryOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
}
- private Status buildStatus(Integer code,String message){
- StatusBuilder status = new StatusBuilder();
- status.setCode(code);
- status.setMessage(message);
- return status.build();
+ @Override
+ public Future<RpcResult<RebootOutput>> reboot(RebootInput input) {
+ logger.debug(String.format("LCM reboot received input: %s", input.toString()));
+ RebootOutputBuilder outputBuilder = new RebootService().process(input);
+ RpcResult<RebootOutput> result =
+ RpcResultBuilder.<RebootOutput>status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
}
- private Status buildStatusWithDispatcherOutput(RequestHandlerOutput requestHandlerOutput){
- Integer statusCode = requestHandlerOutput.getResponseContext().getStatus().getCode();
- String statusMessage = requestHandlerOutput.getResponseContext().getStatus().getMessage();
- return buildStatus(statusCode, statusMessage);
+ @Override
+ public Future<RpcResult<AttachVolumeOutput>> attachVolume(AttachVolumeInput input) {
+ logger.debug(String.format("LCM attachVolume received input: %s", input.toString()));
+ AttachVolumeOutputBuilder outputBuilder = new VolumeService(true).attachVolume(input);
+ RpcResult<AttachVolumeOutput> result =
+ RpcResultBuilder.<AttachVolumeOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
}
- private RequestHandlerOutput createErrorRequestHandlerObj(RequestHandlerInput request,
- LCMCommandStatus cmdStatus,
- Msg msg,
- Exception e) {
- final String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
- final String reason = EELFResourceManager.format(msg, e,
- appName, e.getClass().getSimpleName(), "", e.getMessage());
-
- RequestHandlerOutput requestHandlerOutput = new RequestHandlerOutput();
- final ResponseContext responseContext = new ResponseContext();
- requestHandlerOutput.setResponseContext(responseContext);
- responseContext.setCommonHeader(request.getRequestContext().getCommonHeader());
-
- String errorMessage = e.getMessage() != null ? e.getMessage() : e.toString();
- Params params = new Params().addParam("errorMsg", errorMessage);
- responseContext.setStatus(cmdStatus.toStatus(params));
-
- LoggingUtils.logErrorMessage(
- LoggingConstants.TargetNames.APPC_PROVIDER,
- reason,
- this.getClass().getName());
-
- return requestHandlerOutput;
+ @Override
+ public Future<RpcResult<DetachVolumeOutput>> detachVolume(DetachVolumeInput input) {
+ logger.debug(String.format("LCM detachVolume received input: %s", input.toString()));
+ DetachVolumeOutputBuilder outputBuilder = new VolumeService(false).detachVolume(input);
+ RpcResult<DetachVolumeOutput> result =
+ RpcResultBuilder.<DetachVolumeOutput>status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
}
- private RequestHandler getRequestHandler(ActionLevel actionLevel){
- final BundleContext context = FrameworkUtil.getBundle(RequestHandler.class).getBundleContext();
- if (context != null) {
- String filter = null;
- try {
- filter = "(level=" + actionLevel.name() + ")";
- Collection<ServiceReference<RequestHandler>> serviceReferences = context.getServiceReferences(RequestHandler.class, filter);
- if (serviceReferences.size() != 1) {
- logger.error("Cannot find service reference for " + RequestHandler.class.getName());
- throw new RuntimeException();
- }
- ServiceReference<RequestHandler> serviceReference = serviceReferences.iterator().next();
- return context.getService(serviceReference);
- } catch (InvalidSyntaxException e) {
- logger.error("Cannot find service reference for " + RequestHandler.class.getName() + ": Invalid Syntax " + filter, e);
- throw new RuntimeException(e);
- }
- }
- return null;
+ @Override
+ public Future<RpcResult<QuiesceTrafficOutput>> quiesceTraffic(QuiesceTrafficInput input) {
+ logger.debug(String.format("LCM quiesce received input: %s", input.toString()));
+ QuiesceTrafficOutputBuilder outputBuilder = new QuiesceTrafficService().process(input);
+ RpcResult<QuiesceTrafficOutput> result =
+ RpcResultBuilder.<QuiesceTrafficOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
}
+ @Override
+ public Future<RpcResult<ResumeTrafficOutput>> resumeTraffic(ResumeTrafficInput input) {
+ logger.debug(String.format("LCM resume received input: %s", input.toString()));
+ ResumeTrafficOutputBuilder outputBuilder = new ResumeTrafficService().process(input);
+ RpcResult<ResumeTrafficOutput> result =
+ RpcResultBuilder.<ResumeTrafficOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<UpgradePreCheckOutput>> upgradePreCheck(UpgradePreCheckInput input) {
+ logger.debug(String.format("LCM upgradeprecheck received input: %s", input.toString()));
+ UpgradePreCheckOutputBuilder outputBuilder = new UpgradeService("upgradePre").upgradePreCheck(input);
+ RpcResult<UpgradePreCheckOutput> result =
+ RpcResultBuilder.<UpgradePreCheckOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<UpgradeSoftwareOutput>> upgradeSoftware(UpgradeSoftwareInput input) {
+ logger.debug(String.format("LCM upgradesoftware received input: %s", input.toString()));
+ UpgradeSoftwareOutputBuilder outputBuilder = new UpgradeService("upgradeSoft").upgradeSoftware(input);
+ RpcResult<UpgradeSoftwareOutput> result =
+ RpcResultBuilder.<UpgradeSoftwareOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<UpgradePostCheckOutput>> upgradePostCheck(UpgradePostCheckInput input) {
+ logger.debug(String.format("LCM upgradepostcheck received input: %s", input.toString()));
+ UpgradePostCheckOutputBuilder outputBuilder = new UpgradeService("upgradePost").upgradePostCheck(input);
+ RpcResult<UpgradePostCheckOutput> result =
+ RpcResultBuilder.<UpgradePostCheckOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<UpgradeBackupOutput>> upgradeBackup(UpgradeBackupInput input) {
+ logger.debug(String.format("LCM backup received input: %s", input.toString()));
+ UpgradeBackupOutputBuilder outputBuilder = new UpgradeService("upgradeBackup").upgradeBackup(input);
+ RpcResult<UpgradeBackupOutput> result =
+ RpcResultBuilder.<UpgradeBackupOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<UpgradeBackoutOutput>> upgradeBackout(UpgradeBackoutInput input) {
+ logger.debug(String.format("LCM backout received input: %s", input.toString()));
+ UpgradeBackoutOutputBuilder outputBuilder = new UpgradeService("upgradeBackout").upgradeBackout(input);
+ RpcResult<UpgradeBackoutOutput> result =
+ RpcResultBuilder.<UpgradeBackoutOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
@Override
public Future<RpcResult<TerminateOutput>> terminate(TerminateInput input) {
logger.debug("Input received : " + input.toString());
TerminateOutputBuilder outputBuilder = new TerminateOutputBuilder();
- String action = Action.Terminate.toString() ;
- String rpcName = Action.Terminate.name().toLowerCase();
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Action myAction = Action.Terminate;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
- RpcResult<TerminateOutput> result =
- RpcResultBuilder.<TerminateOutput> status(true).withResult(outputBuilder.build()).build();
+ RpcResult<TerminateOutput> result = RpcResultBuilder.<TerminateOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<ConfigureOutput>> configure(ConfigureInput input) {
logger.debug("Input received : " + input.toString());
ConfigureOutputBuilder outputBuilder = new ConfigureOutputBuilder();
- String action = Action.Configure.toString() ;
- String rpcName = "configure";
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Action myAction = Action.Configure;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
- RpcResult<ConfigureOutput> result =
- RpcResultBuilder.<ConfigureOutput> status(true).withResult(outputBuilder.build()).build();
+ RpcResult<ConfigureOutput> result = RpcResultBuilder.<ConfigureOutput> status(true).withResult(outputBuilder.build()).build();
+ return Futures.immediateFuture(result);
+ }
+
+ @Override
+ public Future<RpcResult<ActionStatusOutput>> actionStatus(ActionStatusInput input) {
+ logger.debug(String.format("Input received : %s", input.toString()));
+ ActionStatusOutputBuilder outputBuilder = (new ActionStatusService()).queryStatus(input);
+ RpcResult<ActionStatusOutput> result = RpcResultBuilder.<ActionStatusOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<ConfigModifyOutput>> configModify(ConfigModifyInput input) {
logger.debug("Input received : " + input.toString());
ConfigModifyOutputBuilder outputBuilder = new ConfigModifyOutputBuilder();
- String action = Action.ConfigModify.toString() ;
- String rpcName = "config-modify";
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Action myAction = Action.ConfigModify;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
- RpcResult<ConfigModifyOutput> result =
- RpcResultBuilder.<ConfigModifyOutput> status(true).withResult(outputBuilder.build()).build();
+ RpcResult<ConfigModifyOutput> result = RpcResultBuilder.<ConfigModifyOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<ConfigScaleoutOutput>> configScaleout(ConfigScaleoutInput input) {
logger.debug("Input received : " + input.toString());
ConfigScaleoutOutputBuilder outputBuilder = new ConfigScaleoutOutputBuilder();
- String action = Action.ConfigScaleOut.toString() ;
- String rpcName = "config-scaleout";
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Action myAction = Action.ConfigScaleOut;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
- RpcResult<ConfigScaleoutOutput> result =
- RpcResultBuilder.<ConfigScaleoutOutput> status(true).withResult(outputBuilder.build()).build();
+ RpcResult<ConfigScaleoutOutput> result = RpcResultBuilder.<ConfigScaleoutOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<ConfigRestoreOutput>> configRestore(ConfigRestoreInput input) {
logger.debug("Input received : " + input.toString());
ConfigRestoreOutputBuilder outputBuilder = new ConfigRestoreOutputBuilder();
- String action = Action.ConfigRestore.toString() ;
- String rpcName = "config-restore";
- Status status =
- ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
+ Action myAction = Action.ConfigRestore;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
- RpcResult<ConfigRestoreOutput> result =
- RpcResultBuilder.<ConfigRestoreOutput> status(true).withResult(outputBuilder.build()).build();
+ RpcResult<ConfigRestoreOutput> result = RpcResultBuilder.<ConfigRestoreOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<TestOutput>> test(TestInput input) {
logger.debug("Input received : " + input.toString());
TestOutputBuilder outputBuilder = new TestOutputBuilder();
- String action = Action.Test.toString() ;
- String rpcName = Action.Test.name().toLowerCase();
+ Action myAction = Action.Test;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<StopOutput>> stop(StopInput input) {
logger.debug("Input received : " + input.toString());
StopOutputBuilder outputBuilder = new StopOutputBuilder();
- String action = Action.Stop.toString() ;
- String rpcName = Action.Stop.name().toLowerCase();
+ Action myAction = Action.Stop;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
/**
* Starts a specific VNF
*
- * @see AppcProviderLcmService#start(StartInput)
+ * @see org.opendaylight.yang.gen.v1.org.onap.appc.lcm.rev160108.AppcProviderLcmService#start(StartInput)
*/
@Override
public Future<RpcResult<StartOutput>> start(StartInput input) {
logger.debug("Input received : " + input.toString());
StartOutputBuilder outputBuilder = new StartOutputBuilder();
- String action = Action.Start.toString() ;
- String rpcName = Action.Start.name().toLowerCase();
+ Action myAction = Action.Start;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<AuditOutput>> audit(AuditInput input) {
logger.debug("Input received : " + input.toString());
AuditOutputBuilder outputBuilder = new AuditOutputBuilder();
- String action = Action.Audit.toString();
- String rpcName = Action.Audit.name().toLowerCase();
+ Action myAction = Action.Audit;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<SoftwareUploadOutput>> softwareUpload(SoftwareUploadInput input) {
logger.debug("Input received : " + input.toString());
SoftwareUploadOutputBuilder outputBuilder = new SoftwareUploadOutputBuilder();
- String action = Action.SoftwareUpload.toString() ;
- String rpcName = convertActionNameToUrl(action);
+ Action myAction = Action.SoftwareUpload;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<HealthCheckOutput>> healthCheck(HealthCheckInput input) {
logger.debug("Input received : " + input.toString());
HealthCheckOutputBuilder outputBuilder = new HealthCheckOutputBuilder();
- String action = Action.HealthCheck.toString() ;
- String rpcName = convertActionNameToUrl(action);
+ Action myAction = Action.HealthCheck;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<LiveUpgradeOutput>> liveUpgrade(LiveUpgradeInput input) {
logger.debug("Input received : " + input.toString());
LiveUpgradeOutputBuilder outputBuilder = new LiveUpgradeOutputBuilder();
- String action = Action.LiveUpgrade.toString() ;
- String rpcName = convertActionNameToUrl(action);
+ Action myAction = Action.LiveUpgrade;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<LockOutput>> lock(LockInput input) {
logger.debug("Input received : " + input.toString());
LockOutputBuilder outputBuilder = new LockOutputBuilder();
- String action = Action.Lock.toString() ;
- String rpcName = Action.Lock.name().toLowerCase();
+ Action myAction = Action.Lock;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<UnlockOutput>> unlock(UnlockInput input) {
logger.debug("Input received : " + input.toString());
UnlockOutputBuilder outputBuilder = new UnlockOutputBuilder();
- String action = Action.Unlock.toString() ;
- String rpcName = Action.Unlock.name().toLowerCase();
+ Action myAction = Action.Unlock;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<CheckLockOutput>> checkLock(CheckLockInput input) {
logger.debug("Input received : " + input.toString());
CheckLockOutputBuilder outputBuilder = new CheckLockOutputBuilder();
- String action = Action.CheckLock.toString();
- String rpcName = Action.CheckLock.name().toLowerCase();
+ Action myAction = Action.CheckLock;
+ String action = myAction.toString();
+ String rpcName = getRpcName(myAction);
RequestHandlerOutput requestHandlerOutput = null;
- Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(),
- input.getAction(), action);
+ Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(),
+ action);
if (null == status) {
try {
RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input
- .getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).action(action)
- .rpcName(rpcName).build();
+ .getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).action(action).rpcName
+ (rpcName).build();
requestHandlerOutput = executeRequest(request);
status = buildStatusWithDispatcherOutput(requestHandlerOutput);
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s",
- input.getActionIdentifiers(), status.getCode(), status.getMessage()));
+ logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input
+ .getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
}
}
+
outputBuilder.setCommonHeader(input.getCommonHeader());
outputBuilder.setStatus(status);
if (requestHandlerOutput != null && requestHandlerOutput.getResponseContext().getStatus().getCode() == 400) {
outputBuilder.setLocked(CheckLockOutput.Locked.valueOf(requestHandlerOutput.getResponseContext()
.getAdditionalContext().get("locked").toUpperCase()));
}
- RpcResult<CheckLockOutput> result = RpcResultBuilder.<CheckLockOutput>status(true)
- .withResult(outputBuilder.build()).build();
+ RpcResult<CheckLockOutput> result = RpcResultBuilder.<CheckLockOutput>status(true).withResult(outputBuilder
+ .build()).build();
return Futures.immediateFuture(result);
}
public Future<RpcResult<ConfigBackupOutput>> configBackup(ConfigBackupInput input) {
logger.debug("Input received : " + input.toString());
ConfigBackupOutputBuilder outputBuilder = new ConfigBackupOutputBuilder();
- String action = Action.ConfigBackup.toString() ;
- String rpcName = Action.ConfigBackup.name().toLowerCase();
+ Action myAction = Action.ConfigBackup;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<ConfigBackupDeleteOutput>> configBackupDelete(ConfigBackupDeleteInput input) {
logger.debug("Input received : " + input.toString());
ConfigBackupDeleteOutputBuilder outputBuilder = new ConfigBackupDeleteOutputBuilder();
- String action = Action.ConfigBackupDelete.toString() ;
- String rpcName = Action.ConfigBackupDelete.name().toLowerCase();
+ Action myAction = Action.ConfigBackupDelete;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
public Future<RpcResult<ConfigExportOutput>> configExport(ConfigExportInput input) {
logger.debug("Input received : " + input.toString());
ConfigExportOutputBuilder outputBuilder = new ConfigExportOutputBuilder();
- String action = Action.ConfigExport.toString() ;
- String rpcName = Action.ConfigExport.name().toLowerCase();
+ Action myAction = Action.ConfigExport;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
RpcResult<ConfigExportOutput> result = RpcResultBuilder.<ConfigExportOutput> status(true).withResult(outputBuilder.build()).build();
return Futures.immediateFuture(result);
}
- @Override
- public Future<RpcResult<StartApplicationOutput>> startApplication(StartApplicationInput input) {
- logger.debug("Input received : " + input.toString());
- StartApplicationOutputBuilder outputBuilder = new StartApplicationOutputBuilder();
- String action = Action.StartApplication.toString() ;
- String rpcName = Action.StartApplication.name().toLowerCase();
- Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
- if(null == status) {
- try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext()
- .commonHeader(input.getCommonHeader())
- .actionIdentifiers(input.getActionIdentifiers())
- .payload(input.getPayload())
- .action(action)
- .rpcName(rpcName)
- .build();
- status = buildStatusWithDispatcherOutput(executeRequest(request));
- logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
- } catch (ParseException e) {
- status = buildParsingErrorStatus(e);
-
- LoggingUtils.logErrorMessage(
- LoggingConstants.TargetNames.APPC_PROVIDER,
- String.format(COMMON_ERROR_MESSAGE_TEMPLATE, action, e.getMessage()),
- this.getClass().getName());
-
- }
- }
- outputBuilder.setCommonHeader(input.getCommonHeader());
- outputBuilder.setStatus(status);
- RpcResult<StartApplicationOutput> result = RpcResultBuilder.<StartApplicationOutput> status(true).withResult(outputBuilder.build()).build();
- return Futures.immediateFuture(result);
- }
- @Override
public Future<RpcResult<StopApplicationOutput>> stopApplication(StopApplicationInput input){
logger.debug("Input received : " + input.toString());
StopApplicationOutputBuilder outputBuilder = new StopApplicationOutputBuilder();
- String action = Action.StopApplication.toString() ;
- String rpcName = Action.StopApplication.name().toLowerCase();
+ Action myAction = Action.StopApplication;
+ String action = myAction.toString() ;
+ String rpcName = getRpcName(myAction);
Status status = ValidationService.getInstance().validateInput(input.getCommonHeader(), input.getAction(), action);
if(null == status) {
try {
- RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).payload(input.getPayload()).action(action).rpcName(rpcName).build();
+ RequestHandlerInput request = new RequestInputBuilder().requestContext().commonHeader(input.getCommonHeader()).actionIdentifiers(input.getActionIdentifiers()).action(action).rpcName(rpcName).build();
status = buildStatusWithDispatcherOutput(executeRequest(request));
logger.info(String.format("Execute of '%s' finished with status %s. Reason: %s", input.getActionIdentifiers(), status.getCode(), status.getMessage()));
} catch (ParseException e) {
- status = buildParsingErrorStatus(e);
+ status = buildStatusWithParseException(e);
LoggingUtils.logErrorMessage(
LoggingConstants.TargetNames.APPC_PROVIDER,
return Futures.immediateFuture(result);
}
- private String convertActionNameToUrl(String action) {
- String regex = "([a-z])([A-Z]+)";
- String replacement = "$1-$2";
- return action.replaceAll(regex, replacement)
- .toLowerCase();
- }
-
RequestHandlerOutput executeRequest(RequestHandlerInput request){
- RequestHandler handler = getRequestHandler(request.getRequestContext().getActionLevel());
- RequestHandlerOutput requestHandlerOutput;
- if (handler != null) {
- try {
- requestHandlerOutput = handler.handleRequest(request);
- } catch (Exception e) {
- logger.info("UNEXPECTED FAILURE while executing " + request.getRequestContext().getAction().name());
- requestHandlerOutput = createErrorRequestHandlerObj(request,
- LCMCommandStatus.UNEXPECTED_ERROR, Msg.EXCEPTION_CALLING_DG, e);
- }
- } else {
- String errorMsg = "LCM request cannot be processed at the moment because APPC isn't running";
- requestHandlerOutput = createErrorRequestHandlerObj(request,
- LCMCommandStatus.REJECTED, Msg.REQUEST_HANDLER_UNAVAILABLE, new APPCException(errorMsg));
- }
- return requestHandlerOutput;
+ return new RequestExecutor().executeRequest(request);
}
}