diff options
author | liamfallon <liam.fallon@est.tech> | 2020-09-04 11:03:24 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2020-09-04 11:24:29 +0100 |
commit | 25e3f7a0d6cd5e364e4fd69eef310fcdb8a58b55 (patch) | |
tree | 0bf44a0a6a7be18568e368c35f983e18a23fa42b /client/client-deployment/src/main/java/org | |
parent | 508bdbd4d17ebf3726d92553839cc4b3af922250 (diff) |
Remove client code from apex-pdp
Removal of the deployment and monitoring client from the apex-pdp as
the functionality is replaced by the Policy Framework deployment using
PAP and the Policy Framework monitoring GUI.
Code in the engine proper that was used to administer apex-pdp over the
Web Socket port is also removed, as this code was only used by the
apex-pdp legacy GUIs.
Issue-ID: POLICY-2621
Change-Id: Ib9fc4a667a4bc79377bb7b82fae6a2bd520a3e3d
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'client/client-deployment/src/main/java/org')
8 files changed, 0 insertions, 1061 deletions
diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRest.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRest.java deleted file mode 100644 index db226274f..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRest.java +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.glassfish.jersey.server.ResourceConfig; -import org.onap.policy.common.utils.validation.Assertions; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * This class is used to launch the services. It creates a Grizzly embedded web server and runs the - * services. - */ -public class ApexDeploymentRest { - // Logger for this class - private static final XLogger logger = XLoggerFactory.getXLogger(ApexDeploymentRest.class); - - // The HTTP server exposing JAX-RS resources defined in this application. - private HttpServer server; - - /** - * Starts the HTTP server for the Apex services client on the default base URI and with the - * default REST packages. - */ - public ApexDeploymentRest() { - this(new ApexDeploymentRestParameters()); - } - - /** - * Starts the HTTP server for the Apex services client. - * - * @param parameters The Apex parameters to use to start the server - */ - public ApexDeploymentRest(final ApexDeploymentRestParameters parameters) { - Assertions.argumentNotNull(parameters, "parameters may not be null"); - - logger.debug("Apex services RESTful client starting . . ."); - - // Create a resource configuration that scans for JAX-RS resources and providers - // in org.onap.policy.apex.client.deployment.rest package - final ResourceConfig rc = new ResourceConfig().packages(parameters.getRestPackages()); - - // Add MultiPartFeature class for jersey-media-multipart - rc.register(MultiPartFeature.class); - - // create and start a new instance of grizzly http server - // exposing the Jersey application at BASE_URI - server = GrizzlyHttpServerFactory.createHttpServer(parameters.getBaseUri(), rc); - - // Add static content - server.getServerConfiguration().addHttpHandler(new org.glassfish.grizzly.http.server.CLStaticHttpHandler( - ApexDeploymentRestMain.class.getClassLoader(), "/webapp/"), parameters.getStaticPath()); - - logger.debug("Apex services RESTful client started"); - } - - /** - * Shut down the web server. - */ - public void shutdown() { - logger.debug("Apex services RESTful client shutting down . . ."); - server.shutdown(); - logger.debug("Apex services RESTful client shut down"); - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestMain.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestMain.java deleted file mode 100644 index 093c35258..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestMain.java +++ /dev/null @@ -1,204 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import java.io.PrintStream; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The main class for ApexDeploymentRest. - * - * @author Michael Watkins (michael.watkins@ericsson.com) - */ -public class ApexDeploymentRestMain { - // Logger for this class - private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexDeploymentRestMain.class); - - // Recurring string constants - private static final String REST_ENDPOINT_PREFIX = "Apex Services REST endpoint ("; - - // Services state - public enum ServicesState { - STOPPED, - READY, - INITIALIZING, - RUNNING - } - - private ServicesState state = ServicesState.STOPPED; - - // The parameters for the client - private ApexDeploymentRestParameters parameters = null; - - // Output and error streams for messages - private final PrintStream outStream; - - // The Apex services client this class is running - private ApexDeploymentRest apexDeploymentRest = null; - - /** - * Constructor, kicks off the rest service. - * - * @param args The command line arguments for the RESTful service - * @param outStream The stream for output messages - */ - public ApexDeploymentRestMain(final String[] args, final PrintStream outStream) { - // Save the streams for output and error - this.outStream = outStream; - - // Client parameter parsing - final ApexDeploymentRestParameterParser parser = new ApexDeploymentRestParameterParser(); - - try { - // Get and check the parameters - parameters = parser.parse(args); - } catch (final ApexDeploymentRestParameterException e) { - throw new ApexDeploymentRestParameterException( - REST_ENDPOINT_PREFIX + this.toString() + ") parameter error, " + e.getMessage() + '\n' - + parser.getHelp(ApexDeploymentRestMain.class.getName()), - e); - } - - if (parameters.isHelpSet()) { - throw new ApexDeploymentRestParameterException(parser.getHelp(ApexDeploymentRestMain.class.getName())); - } - - // Validate the parameters - final String validationMessage = parameters.validate(); - if (validationMessage.length() > 0) { - throw new ApexDeploymentRestParameterException( - REST_ENDPOINT_PREFIX + this.toString() + ") parameters invalid, " + validationMessage + '\n' - + parser.getHelp(ApexDeploymentRestMain.class.getName())); - } - - state = ServicesState.READY; - } - - /** - * Initialize the rest service. - */ - public void init() { - outStream.println(REST_ENDPOINT_PREFIX + this.toString() + ") starting at " + parameters.getBaseUri().toString() - + " . . ."); - - try { - state = ServicesState.INITIALIZING; - - // Start the REST service - apexDeploymentRest = new ApexDeploymentRest(parameters); - - // Add a shutdown hook to shut down the rest services when the process is exiting - Runtime.getRuntime().addShutdownHook(new Thread(new ApexServicesShutdownHook())); - - state = ServicesState.RUNNING; - - if (parameters.getTimeToLive() == ApexDeploymentRestParameters.INFINITY_TIME_TO_LIVE) { - outStream.println(REST_ENDPOINT_PREFIX + this.toString() + ") started at " - + parameters.getBaseUri().toString()); - } else { - outStream.println(REST_ENDPOINT_PREFIX + this.toString() + ") started"); - } - - // Find out how long is left to wait - long timeRemaining = parameters.getTimeToLive(); - while (timeRemaining == ApexDeploymentRestParameters.INFINITY_TIME_TO_LIVE || timeRemaining > 0) { - // decrement the time to live in the non-infinity case - if (timeRemaining > 0) { - timeRemaining--; - } - - // Wait for a second - Thread.sleep(1000); - } - } catch (final Exception e) { - String message = REST_ENDPOINT_PREFIX + this.toString() + ") failed at with error: " + e.getMessage(); - outStream.println(message); - LOGGER.warn(message, e); - } finally { - if (apexDeploymentRest != null) { - apexDeploymentRest.shutdown(); - apexDeploymentRest = null; - } - state = ServicesState.STOPPED; - } - - } - - /** - * Get services state. - * - * @return the service state - */ - public ServicesState getState() { - return state; - } - - @Override - public String toString() { - final StringBuilder ret = new StringBuilder(); - ret.append(this.getClass().getSimpleName()).append(": Config=[").append(this.parameters).append("], State=") - .append(this.getState()); - return ret.toString(); - } - - /** - * Explicitly shut down the services. - */ - public void shutdown() { - if (apexDeploymentRest != null) { - outStream.println(REST_ENDPOINT_PREFIX + this.toString() + ") shutting down"); - apexDeploymentRest.shutdown(); - } - state = ServicesState.STOPPED; - outStream.println(REST_ENDPOINT_PREFIX + this.toString() + ") shut down"); - } - - /** - * This class is a shutdown hook for the Apex services command. - */ - private class ApexServicesShutdownHook implements Runnable { - /** - * {@inheritDoc}. - */ - @Override - public void run() { - if (apexDeploymentRest != null) { - apexDeploymentRest.shutdown(); - } - } - } - - /** - * Main method, main entry point for command. - * - * @param args The command line arguments for the client - */ - public static void main(final String[] args) { - try { - final ApexDeploymentRestMain restMain = new ApexDeploymentRestMain(args, System.out); - restMain.init(); - } catch (final Exception e) { - LOGGER.error("start failed", e); - } - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterException.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterException.java deleted file mode 100644 index 325128dfb..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterException.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -/** - * A run time exception used to report parsing and parameter input errors. - * - * @author Michael Watkins (michael.watkins@ericsson.com) - */ -public class ApexDeploymentRestParameterException extends IllegalArgumentException { - private static final long serialVersionUID = 6520231162404452427L; - - /** - * Create an ApexServicesRestParameterException with a message. - * - * @param message the message - */ - public ApexDeploymentRestParameterException(final String message) { - super(message); - } - - /** - * Create an ApexServicesRestParameterException with a message and an exception. - * - * @param message the message - * @param throwable The exception that caused the exception - */ - public ApexDeploymentRestParameterException(final String message, final Throwable throwable) { - super(message, throwable); - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterParser.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterParser.java deleted file mode 100644 index 1249bddba..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameterParser.java +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Arrays; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.DefaultParser; -import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; - -/** - * This class reads and handles command line parameters to the Apex RESTful services. - * - * @author Michael Watkins (michael.watkins@ericsson.com) - */ -public class ApexDeploymentRestParameterParser { - // Apache Commons CLI options - private Options options; - - /** - * Construct the options for the CLI RESTful services. - */ - public ApexDeploymentRestParameterParser() { - options = new Options(); - options.addOption("h", "help", false, "outputs the usage of this command"); - options.addOption(Option.builder("p").longOpt("port").desc("port to use for the Apex Services REST calls") - .hasArg().argName("PORT").required(false).type(Number.class).build()); - options.addOption(Option.builder("t").longOpt("time-to-live") - .desc("the amount of time in seconds that the server will run for before terminating").hasArg() - .argName("TIME_TO_LIVE").required(false).type(Number.class).build()); - } - - /** - * Parse the command line options. - * - * @param args the arguments - * @return the parsed arguments - */ - public ApexDeploymentRestParameters parse(final String[] args) { - CommandLine commandLine = null; - try { - commandLine = new DefaultParser().parse(options, args); - } catch (final ParseException e) { - throw new ApexDeploymentRestParameterException( - "invalid command line arguments specified : " + e.getMessage()); - } - - final ApexDeploymentRestParameters parameters = new ApexDeploymentRestParameters(); - final String[] remainingArgs = commandLine.getArgs(); - - if (commandLine.getArgs().length > 0) { - throw new ApexDeploymentRestParameterException( - "too many command line arguments specified : " + Arrays.toString(remainingArgs)); - } - - if (commandLine.hasOption('h')) { - parameters.setHelp(true); - } - try { - if (commandLine.hasOption('p')) { - parameters.setRestPort(((Number) commandLine.getParsedOptionValue("port")).intValue()); - } - } catch (final ParseException e) { - throw new ApexDeploymentRestParameterException("error parsing argument \"port\" :" + e.getMessage(), e); - } - try { - if (commandLine.hasOption('t')) { - parameters.setTimeToLive(((Number) commandLine.getParsedOptionValue("time-to-live")).longValue()); - } - } catch (final ParseException e) { - throw new ApexDeploymentRestParameterException("error parsing argument \"time-to-live\" :" + e.getMessage(), - e); - } - - return parameters; - } - - /** - * Get help information. - * - * @param mainClassName the main class name for the help output - * @return help string - */ - public String getHelp(final String mainClassName) { - final StringWriter stringWriter = new StringWriter(); - final PrintWriter stringPrintWriter = new PrintWriter(stringWriter); - - final HelpFormatter helpFormatter = new HelpFormatter(); - helpFormatter.printHelp(stringPrintWriter, 120, mainClassName + " [options...] ", "", options, 0, 0, ""); - - return stringWriter.toString(); - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameters.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameters.java deleted file mode 100644 index 70765ebc6..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestParameters.java +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import java.net.URI; - -/** - * This class reads and handles command line parameters to the Apex RESTful services. - * - * @author Michael Watkins (michael.watkins@ericsson.com) - */ -public class ApexDeploymentRestParameters { - public static final int DEFAULT_REST_PORT = 18989; - public static final int INFINITY_TIME_TO_LIVE = -1; - - // Base URI the HTTP server will listen on - private static final String DEFAULT_SERVER_URI_ROOT = "http://localhost:"; - private static final String DEFAULT_REST_PATH = "/apexservices/"; - private static final String DEFAULT_STATIC_PATH = "/"; - - // Package that will field REST requests - private static final String[] DEFAULT_PACKAGES = new String[] {"org.onap.policy.apex.client.deployment.rest"}; - - // The services parameters - private boolean helpSet = false; - private int restPort = DEFAULT_REST_PORT; - private long timeToLive = INFINITY_TIME_TO_LIVE; - - /** - * Validate the parameters. - * - * @return the result of the validation - */ - public String validate() { - String validationMessage = ""; - validationMessage += validatePort(); - validationMessage += validateTimeToLive(); - - return validationMessage; - } - - /** - * Gets the base uri. - * - * @return the base uri - */ - public URI getBaseUri() { - return URI.create(DEFAULT_SERVER_URI_ROOT + restPort + DEFAULT_REST_PATH); - } - - /** - * Gets the rest packages. - * - * @return the rest packages - */ - public String[] getRestPackages() { - return DEFAULT_PACKAGES; - } - - /** - * Gets the static path. - * - * @return the static path - */ - public String getStaticPath() { - return DEFAULT_STATIC_PATH; - } - - /** - * Validate port. - * - * @return the string - */ - private String validatePort() { - if (restPort < 1024 || restPort > 65535) { - return "port must be greater than 1023 and less than 65536\n"; - } else { - return ""; - } - } - - /** - * Validate time to live. - * - * @return the string - */ - private String validateTimeToLive() { - if (timeToLive < -1) { - return "time to live must be greater than -1 (set to -1 to wait forever)\n"; - } else { - return ""; - } - } - - /** - * Checks if is help set. - * - * @return true, if is help set - */ - public boolean isHelpSet() { - return helpSet; - } - - /** - * Sets the help. - * - * @param helpSet the new help - */ - public void setHelp(final boolean helpSet) { - this.helpSet = helpSet; - } - - /** - * Gets the rest port. - * - * @return the rest port - */ - public int getRestPort() { - return restPort; - } - - /** - * Sets the rest port. - * - * @param restPort the new rest port - */ - public void setRestPort(final int restPort) { - this.restPort = restPort; - } - - /** - * Gets the time to live. - * - * @return the time to live - */ - public long getTimeToLive() { - return timeToLive; - } - - /** - * Sets the time to live. - * - * @param timeToLive the new time to live - */ - public void setTimeToLive(final long timeToLive) { - this.timeToLive = timeToLive; - } - - /** - * {@inheritDoc}. - */ - @Override - public String toString() { - final StringBuilder ret = new StringBuilder(); - ret.append(this.getClass().getSimpleName()).append(": URI=").append(this.getBaseUri()).append(", TTL=") - .append(this.getTimeToLive()).append("sec"); - return ret.toString(); - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestResource.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestResource.java deleted file mode 100644 index 4f6e71b2f..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ApexDeploymentRestResource.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import com.google.gson.JsonObject; -import java.io.InputStream; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.glassfish.jersey.media.multipart.FormDataParam; -import org.onap.policy.apex.core.deployment.ApexDeploymentException; -import org.onap.policy.apex.core.deployment.EngineServiceFacade; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The class represents the root resource exposed at the base URL<br> - * - * <p>The url to access this resource would be in the form {@code <baseURL>/rest/....} <br> - * For example: a GET request to the following URL - * {@code http://localhost:18989/apexservices/rest/?hostName=localhost&port=12345} - * - * <p><b>Note:</b> An allocated {@code hostName} and {@code port} query parameter must be included in all requests. - * Datasets for different {@code hostName} are completely isolated from one another. - * - */ -@Path("deployment/") -@Produces({ MediaType.APPLICATION_JSON }) -@Consumes({ MediaType.APPLICATION_JSON }) - -public class ApexDeploymentRestResource { - // Get a reference to the logger - private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexDeploymentRestResource.class); - - /** - * Query the engine service for data. - * - * @param hostName the host name of the engine service to connect to. - * @param port the port number of the engine service to connect to. - * @return a Response object containing the engines service, status and context data in JSON - */ - @GET - public Response createSession(@QueryParam("hostName") final String hostName, @QueryParam("port") final int port) { - final String host = hostName + ":" + port; - final EngineServiceFacade engineServiceFacade = getEngineServiceFacade(hostName, port); - - try { - engineServiceFacade.init(); - } catch (final ApexDeploymentException e) { - final String errorMessage = "Error connecting to Apex Engine Service at " + host; - LOGGER.warn(errorMessage + "<br>", e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage + "\n" + e.getMessage()) - .build(); - } - - final JsonObject responseObject = new JsonObject(); - - // Engine Service data - responseObject.addProperty("engine_id", engineServiceFacade.getKey().getId()); - responseObject.addProperty("model_id", - engineServiceFacade.getApexModelKey() != null ? engineServiceFacade.getApexModelKey().getId() - : "Not Set"); - responseObject.addProperty("server", hostName); - responseObject.addProperty("port", Integer.toString(port)); - - return Response.ok(responseObject.toString(), MediaType.APPLICATION_JSON).build(); - } - - /** - * Upload a model. - * - * @param hostName the host name of the engine service to connect to. - * @param port the port number of the engine service to connect to. - * @param uploadedInputStream input stream - * @param ignoreConflicts conflict policy - * @param forceUpdate update policy - * @return a response object in plain text confirming the upload was successful - */ - @POST - @Path("modelupload/") - @Consumes(MediaType.MULTIPART_FORM_DATA) - public Response modelUpload(@FormDataParam("hostName") final String hostName, @FormDataParam("port") final int port, - @FormDataParam("file") final InputStream uploadedInputStream, - @FormDataParam("fileName") final String fileName, - @FormDataParam("ignoreConflicts") final boolean ignoreConflicts, - @FormDataParam("forceUpdate") final boolean forceUpdate) { - final EngineServiceFacade engineServiceFacade = getEngineServiceFacade(hostName, port); - - try { - engineServiceFacade.init(); - } catch (final ApexDeploymentException e) { - final String errorMessage = "Error connecting to Apex Engine Service at " + hostName + ":" + port; - LOGGER.warn(errorMessage + "<br>", e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage + "\n" + e.getMessage()) - .build(); - } - - try { - engineServiceFacade.deployModel(fileName, uploadedInputStream, ignoreConflicts, forceUpdate); - } catch (final Exception e) { - LOGGER.warn("Error updating model on engine service " + engineServiceFacade.getKey().getId(), e); - final String errorMessage = - "Error updating model on engine service " + engineServiceFacade.getKey().getId(); - LOGGER.warn(errorMessage + "<br>", e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage + "\n" + e.getMessage()) - .build(); - } - - return Response.ok("Model " + fileName + " deployed on engine service " - + engineServiceFacade.getKey().getId()).build(); - } - - /** - * Get an engine service facade for sending REST requests. This method is package because it is used by unit test. - * - * @param hostName the host name of the Apex engine - * @param port the port of the Apex engine - * @return the engine service facade - */ - protected EngineServiceFacade getEngineServiceFacade(final String hostName, final int port) { - return new EngineServiceFacade(hostName, port); - } - -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ParameterCheck.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ParameterCheck.java deleted file mode 100644 index cad0911f1..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/ParameterCheck.java +++ /dev/null @@ -1,255 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.client.deployment.rest; - -import java.util.Map; -import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; -import org.slf4j.ext.XLogger; -import org.slf4j.ext.XLoggerFactory; - -/** - * The Class ParameterCheck is used to check parameters passed to the servlet. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public final class ParameterCheck { - private static final XLogger LOGGER = XLoggerFactory.getXLogger(ParameterCheck.class); - - private static final String HOSTNAME_PAR = "hostname"; - private static final String PORT_PAR = "port"; - private static final String AXARTIFACTKEY_PAR = "AxArtifactKey"; - - // Recurring string constants - private static final String OF_PARAMETER = "\"of parameter \""; - private static final String VALUE = "value \""; - private static final String PARAMETER = "parameter \""; - private static final String NOT_FOUND = "\" not found"; - - private static final int MAX_PORT = 65535; - - /** - * private constructor to prevent subclassing of this utility class. - */ - private ParameterCheck() { - } - - /** - * The Enum StartStop is used to hold. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ - public enum StartStop { - /** Start of an Apex engine has been ordered. */ - START, - /** Stop of an Apex engine has been ordered. */ - STOP - } - - /** - * Gets the host name. - * - * @param parameterMap the parameter map - * @return the host name - */ - public static String getHostName(final Map<String, String[]> parameterMap) { - if (parameterMap == null) { - return null; - } - - if (!parameterMap.containsKey(HOSTNAME_PAR)) { - LOGGER.warn(PARAMETER + HOSTNAME_PAR + NOT_FOUND); - return null; - } - - final String[] hostNameValue = parameterMap.get(HOSTNAME_PAR); - if (hostNameValue == null) { - return null; - } - - if (hostNameValue.length == 0 || hostNameValue[0].trim().length() == 0) { - LOGGER.warn("value of parameter \"" + HOSTNAME_PAR + NOT_FOUND); - return null; - } - - return hostNameValue[0]; - } - - /** - * Gets the port. - * - * @param parameterMap the parameter map - * @return the port - */ - public static int getPort(final Map<String, String[]> parameterMap) { - if (parameterMap == null) { - return -1; - } - - if (!parameterMap.containsKey(PORT_PAR)) { - LOGGER.warn(PARAMETER + PORT_PAR + NOT_FOUND); - return -1; - } - - final String[] portValue = parameterMap.get(PORT_PAR); - - if (portValue.length == 0 || portValue[0].trim().length() == 0) { - LOGGER.warn("value of parameter \"" + PORT_PAR + NOT_FOUND); - return -1; - } - - int port = -1; - try { - port = Integer.parseInt(portValue[0]); - } catch (final Exception e) { - LOGGER.warn(VALUE + portValue[0] + OF_PARAMETER + PORT_PAR + "\" not a valid integer", e); - return -1; - } - - if (port <= 0 || port > MAX_PORT) { - String message = VALUE + portValue[0] + OF_PARAMETER + PORT_PAR - + "\" not a valid port between 0 and 65535"; - LOGGER.warn(message); - return -1; - } - - return port; - } - - /** - * Gets the engine key. - * - * @param parameterMap the parameter map - * @return the engine key - */ - public static AxArtifactKey getEngineKey(final Map<String, String[]> parameterMap) { - if (parameterMap == null) { - return null; - } - - String artifactKeyParameter = null; - for (final String parameter : parameterMap.keySet()) { - // Check for an AxArtifactKey parameter - if (parameter.startsWith(AXARTIFACTKEY_PAR)) { - artifactKeyParameter = parameter; - break; - } - } - if (artifactKeyParameter == null) { - LOGGER.warn(PARAMETER + AXARTIFACTKEY_PAR + NOT_FOUND); - return null; - } - - final String[] axArtifactKeyArray = artifactKeyParameter.split("#"); - - if (axArtifactKeyArray.length != 2) { - String message = VALUE + artifactKeyParameter + "\" of parameter \"" + AXARTIFACTKEY_PAR - + "\" not valid"; - LOGGER.warn(message); - return null; - } - - try { - return new AxArtifactKey(axArtifactKeyArray[1]); - } catch (Exception apEx) { - LOGGER.trace("invalid artifact key ID {}", axArtifactKeyArray[1], apEx); - return null; - } - } - - /** - * Gets the start stop. - * - * @param parameterMap the parameter map - * @param engineKey the engine key - * @return the start stop - */ - public static ParameterCheck.StartStop getStartStop(final Map<String, String[]> parameterMap, - final AxArtifactKey engineKey) { - if (parameterMap == null || engineKey == null) { - return null; - } - - final String startStopPar = AXARTIFACTKEY_PAR + '#' + engineKey.getId(); - if (!parameterMap.containsKey(startStopPar)) { - LOGGER.warn("parameter \"{}\" not found", startStopPar); - return null; - } - - final String[] startStopValue = parameterMap.get(startStopPar); - if (startStopValue == null) { - return null; - } - - if (startStopValue.length == 0 || startStopValue[0].trim().length() == 0) { - LOGGER.warn("value of parameter \"{}\" not found", startStopPar); - return null; - } - - ParameterCheck.StartStop startStop; - if ("start".equalsIgnoreCase(startStopValue[0])) { - startStop = ParameterCheck.StartStop.START; - } else if ("stop".equalsIgnoreCase(startStopValue[0])) { - startStop = ParameterCheck.StartStop.STOP; - } else { - LOGGER.warn("value \"{}\"of parameter \"{}\" not \"start\" or \"stop\"", startStopValue[0], startStopPar); - return null; - } - - return startStop; - } - - /** - * Find and return a long value with the given name. - * - * @param parameterMap The parameter map containing the value - * @param longName The name of the long parameter - * @return The long value - */ - public static long getLong(final Map<String, String[]> parameterMap, final String longName) { - if (parameterMap == null || longName == null) { - return -1; - } - - if (!parameterMap.containsKey(longName)) { - LOGGER.warn("parameter \"{}\" not found", longName); - return -1; - } - - final String[] longValue = parameterMap.get(longName); - - if (longValue == null) { - return -1; - } - - if (longValue.length == 0 || longValue[0].trim().length() == 0) { - LOGGER.warn("value of parameter \"{}\" not found", longName); - return -1; - } - - try { - return Long.parseLong(longValue[0]); - } catch (final Exception e) { - LOGGER.warn(VALUE + longValue[0] + OF_PARAMETER + longName + "\" not a valid long", e); - return -1; - } - } -} diff --git a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/package-info.java b/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/package-info.java deleted file mode 100644 index 997e411a6..000000000 --- a/client/client-deployment/src/main/java/org/onap/policy/apex/client/deployment/rest/package-info.java +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -/** - * Implements the RESTful deployment for Apex. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ - -package org.onap.policy.apex.client.deployment.rest; |