Classes in this artifact are needed for unit tests.
For a long term solution, we should find a way to
build these classes into a test-scoped artifact.
Issue: SO-242
Change-Id: I1a57fead07250c841a9f59afb805aea26c7bc102
Signed-off-by: Rob Daugherty <rd472p@att.com>
--- /dev/null
+/bin
+/target
+/target
+/target
--- /dev/null
+Manifest-Version: 1.0
+Class-Path:
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+</web-app>
\ No newline at end of file
--- /dev/null
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.openecomp.so</groupId>
+ <artifactId>bpmn</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.openecomp.so</groupId>
+ <artifactId>MSOMockServer</artifactId>
+ <packaging>war</packaging>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <attachClasses>true</attachClasses>
+ <archiveClasses>true</archiveClasses>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+
+ <dependency>
+ <groupId>com.github.tomakehurst</groupId>
+ <artifactId>wiremock</artifactId>
+ <version>1.56</version>
+ <classifier>standalone</classifier>
+ <exclusions>
+ <exclusion>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.skyscreamer</groupId>
+ <artifactId>jsonassert</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.jayway.jsonpath</groupId>
+ <artifactId>json-path</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>net.sf.jopt-simple</groupId>
+ <artifactId>jopt-simple</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.openecomp.so</groupId>
+ <artifactId>common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-client</artifactId>
+ <version>3.0.8.Final</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import java.io.IOException;
+import java.io.InputStream;
+import org.openecomp.mso.logger.MsoLogger;
+
+/**
+ *
+ * File utility class.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Sep 15, 2017
+ */
+public class FileUtil {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
+
+ private FileUtil() {
+ /**
+ * Constructor.
+ */
+ }
+ /**
+ * Read the specified resource file and return the contents as a String.
+ *
+ * @param fileName Name of the resource file
+ * @return the contents of the resource file as a String
+ * @throws IOException if there is a problem reading the file
+ */
+ public static String readResourceFile(String fileName) {
+ InputStream stream;
+ try {
+ stream = getResourceAsStream(fileName);
+ byte[] bytes;
+ bytes = new byte[stream.available()];
+ stream.read(bytes);
+ stream.close();
+ return new String(bytes);
+ } catch (IOException e) {
+ LOGGER.debug("Exception:", e);
+ return "";
+ }
+ }
+
+ /**
+ * Get an InputStream for the resource specified.
+ *
+ * @param resourceName Name of resource for which to get InputStream.
+ * @return an InputStream for the resource specified.
+ * @throws IOException If we can't get the InputStream for whatever reason.
+ */
+ private static InputStream getResourceAsStream(String resourceName) throws IOException {
+ InputStream stream =
+ FileUtil.class.getClassLoader().getResourceAsStream(resourceName);
+ if (stream == null) {
+ throw new IOException("Can't access resource '" + resourceName + "'");
+ }
+ return stream;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+
+import com.github.tomakehurst.wiremock.WireMockServer;
+import com.github.tomakehurst.wiremock.client.WireMock;
+
+/**
+ *
+ * Mock Resource which is used to start, stop the WireMock Server
+ * Also up to 50 mock properties can be added at run-time to change the properties used in transformers such as sdnc_delay in SDNCAdapterMockTransformer
+ * You can also selectively setup a stub (use reset before setting up), reset all stubs
+ */
+@Path("/server")
+public class MockResource {
+
+ private boolean started = false;
+ private final Integer defaultPort = 28090;
+ private WireMockServer wireMockServer = null;
+ private static Map<String,String> mockProperties = new HashMap<String,String>();
+
+ public static String getMockProperties(String key) {
+ return mockProperties.get(key);
+ }
+
+ private synchronized void initMockServer(int portNumber) {
+ String path = FileUtil.class.getClassLoader().getResource("__files/sdncSimResponse.xml").getFile();
+ path = path.substring(0,path.indexOf("__files/"));
+
+ wireMockServer = new WireMockServer(wireMockConfig().port(portNumber).extensions("org.openecomp.mso.bpmn.mock.SDNCAdapterMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.VnfAdapterCreateMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.VnfAdapterDeleteMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.VnfAdapterUpdateMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.VnfAdapterRollbackMockTransformer")
+ .extensions("org.openecomp.mso.bpmn.mock.VnfAdapterQueryMockTransformer"));
+ //.withRootDirectory(path));
+ //Mocks were failing - commenting out for now, both mock and transformers seem to work fine
+ WireMock.configureFor("localhost", portNumber);
+ wireMockServer.start();
+// StubResponse.setupAllMocks();
+ started= true;
+ }
+
+ public static void main(String [] args) {
+ MockResource mockresource = new MockResource();
+ mockresource.start(28090);
+ mockresource.reset();
+// mockresource.setupStub("MockCreateTenant");
+ }
+
+ /**
+ * Starts the wiremock server in default port
+ * @return
+ */
+ @GET
+ @Path("/start")
+ @Produces("application/json")
+ public Response start() {
+ return startMockServer(defaultPort);
+ }
+
+ private Response startMockServer(int port) {
+ if (!started) {
+ initMockServer(defaultPort);
+ System.out.println("Started Mock Server in port " + port);
+ return Response.status(200).entity("Started Mock Server in port " + port).build();
+ } else {
+ return Response.status(200).entity("Mock Server is already running").build();
+ }
+ }
+
+ /**
+ * Starts the wiremock server in a different port
+ * @param portNumber
+ * @return
+ */
+ @GET
+ @Path("/start/{portNumber}")
+ @Produces("application/json")
+ public Response start(@PathParam("portNumber") Integer portNumber) {
+ if (portNumber == null) portNumber = defaultPort;
+ return startMockServer(portNumber.intValue());
+ }
+
+
+ /**
+ * Stop the wiremock server
+ * @return
+ */
+ @GET
+ @Path("/stop")
+ @Produces("application/json")
+ public synchronized Response stop() {
+ if (wireMockServer.isRunning()) {
+ wireMockServer.stop();
+ started = false;
+ return Response.status(200).entity("Stopped Mock Server in port ").build();
+ }
+ return Response.status(200).entity("Mock Server is not running").build();
+ }
+
+
+ /**
+ * Return list of mock properties
+ * @return
+ */
+ @GET
+ @Path("/properties")
+ @Produces("application/json")
+ public Response getProperties() {
+ return Response.status(200).entity(mockProperties).build();
+ }
+
+ /**
+ * Update a particular mock property at run-time
+ * @param name
+ * @param value
+ * @return
+ */
+ @POST
+ @Path("/properties/{name}/{value}")
+ public Response updateProperties(@PathParam("name") String name, @PathParam("value") String value) {
+ if (mockProperties.size() > 50) return Response.serverError().build();
+ mockProperties.put(name, value);
+ return Response.status(200).build();
+ }
+
+ /**
+ * Reset all stubs
+ * @return
+ */
+ @GET
+ @Path("/reset")
+ @Produces("application/json")
+ public Response reset() {
+ WireMock.reset();
+ return Response.status(200).entity("Wiremock stubs are reset").build();
+ }
+
+
+ /**
+ * Setup a stub selectively
+ * Prior to use, make sure that stub method is available in StubResponse class
+ * @param methodName
+ * @return
+ */
+
+ // commenting for now until we figure out a way to use new StubResponse classes to setupStubs
+// @GET
+// @Path("/stub/{methodName}")
+// @Produces("application/json")
+// public Response setupStub(@PathParam("methodName") String methodName) {
+//
+// @SuppressWarnings("rawtypes")
+// Class params[] = {};
+// Object paramsObj[] = {};
+//
+// try {
+// Method thisMethod = StubResponse.class.getDeclaredMethod(methodName, params);
+// try {
+// thisMethod.invoke(StubResponse.class, paramsObj);
+// } catch (IllegalAccessException | IllegalArgumentException
+// | InvocationTargetException e) {
+// return Response.status(200).entity("Error invoking " + methodName ).build();
+// }
+// } catch (NoSuchMethodException | SecurityException e) {
+// return Response.status(200).entity("Stub " + methodName + " not found...").build();
+// }
+// return Response.status(200).entity("Successfully invoked " + methodName).build();
+// }
+
+
+ public static Map<String,String> getMockProperties(){
+ return mockProperties;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
+/**
+ *
+ * JAX RS Application wiring for Mock Resource
+ */
+@ApplicationPath("/console")
+public class MockResourceApplication extends Application {
+
+ private Set<Object> singletons = new HashSet<Object>();
+ private Set<Class<?>> classes = new HashSet<Class<?>>();
+
+ public MockResourceApplication() {
+ singletons.add(new MockResource());
+ }
+
+ @Override
+ public Set<Class<?>> getClasses() {
+ return classes;
+ }
+
+ @Override
+ public Set<Object> getSingletons() {
+ return singletons;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.openecomp.mso.logger.MsoLogger;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+/**
+ *
+ * Simulates SDNC Adapter Callback response
+ *
+ */
+public class SDNCAdapterMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+ private String callbackResponse;
+ private String requestId;
+
+ public SDNCAdapterMockTransformer() {
+ callbackResponse = FileUtil.readResourceFile("__files/sdncSimResponse.xml");
+ }
+
+ public SDNCAdapterMockTransformer(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public String name() {
+ return "sdnc-adapter-transformer";
+ }
+
+ /**
+ * Grab the incoming request xml,extract the request id and replace the stub response with the incoming request id
+ * so that callback response can be correlated
+ *
+ * Mock Resource can be used to add dynamic properties. If sdnc_delay is not in the list by default waits for 300ms before
+ * the callback response is sent
+ */
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+ String requestBody = request.getBodyAsString();
+
+ String callbackUrl = requestBody.substring(requestBody.indexOf("<sdncadapter:CallbackUrl>")+25, requestBody.indexOf("</sdncadapter:CallbackUrl>"));
+ String requestId = requestBody.substring(requestBody.indexOf("<sdncadapter:RequestId>")+23, requestBody.indexOf("</sdncadapter:RequestId>"));
+
+ callbackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ System.out.println("callbackResponse:" + callbackResponse);
+
+ if (this.requestId != null) {
+ callbackResponse = callbackResponse.replace(this.requestId, requestId);
+ } else {
+ callbackResponse = callbackResponse.replace("testRequestId", requestId);
+ }
+
+
+ Object sdncDelay = MockResource.getMockProperties().get("sdnc_delay");
+ int delay = 300;
+ if (sdncDelay != null) {
+ delay = Integer.parseInt(sdncDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("callback Url:" + callbackUrl + ":delay:" + delay);
+ CallbackResponseThread calbackResponseThread = new CallbackResponseThread(callbackUrl,callbackResponse, delay);
+ calbackResponseThread.start();
+
+ //return 200 OK with empty body
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody("").withHeader("Content-Type", "text/xml")
+ .build();
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ /**
+ *
+ * Callback response thread which sends the callback response asynchronously
+ *
+ */
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ LOGGER.debug("Exception :",e1);
+ }
+ LOGGER.debug("Sending callback response:" + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+
+public class SDNCAdapterNetworkTopologyMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String callbackResponse;
+ private String requestId;
+
+ public SDNCAdapterNetworkTopologyMockTransformer() {
+ callbackResponse = ""; // FileUtil.readResourceFile("__files/sdncDeleteNetworkTopologySimResponse.xml");
+ }
+
+ public SDNCAdapterNetworkTopologyMockTransformer(String requestId) {
+ this.requestId = requestId;
+ }
+
+ public String name() {
+ return "network-topology-operation-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource fileSource) {
+ String requestBody = request.getBodyAsString();
+
+ String callbackUrl = requestBody.substring(requestBody.indexOf("<sdncadapter:CallbackUrl>")+25, requestBody.indexOf("</sdncadapter:CallbackUrl>"));
+ String requestId = requestBody.substring(requestBody.indexOf("<sdncadapter:RequestId>")+23, requestBody.indexOf("</sdncadapter:RequestId>"));
+ System.out.println("request callbackUrl : " + callbackUrl);
+ System.out.println("request requestId : " + requestId);
+
+ System.out.println("file path/name : " + responseDefinition.getBodyFileName());
+ callbackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ // extract Response responseRequestId
+ String responseRequestId = callbackResponse.substring(callbackResponse.indexOf("<RequestId>")+11, callbackResponse.indexOf("</RequestId>"));
+ System.out.println("response requestId: " + responseRequestId);
+ System.out.println("callbackResponse (before): " + callbackResponse);
+ callbackResponse = callbackResponse.replace(responseRequestId, requestId);
+ if (this.requestId != null) {
+ callbackResponse = callbackResponse.replace(this.requestId, requestId);
+ } else {
+ callbackResponse = callbackResponse.replace(responseRequestId, requestId);
+ }
+ System.out.println("callbackResponse (after):" + callbackResponse);
+
+ Object sdncDelay = MockResource.getMockProperties().get("sdnc_delay");
+ int delay = 300;
+ if (sdncDelay != null) {
+ delay = Integer.parseInt(sdncDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("(NetworkTopologyMockTransformer) callback Url:" + callbackUrl + ":delay:" + delay);
+ CallbackResponseThread calbackResponseThread = new CallbackResponseThread(callbackUrl,callbackResponse, delay);
+ calbackResponseThread.start();
+
+ //return 200 OK with body
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(callbackResponse).withHeader("Content-Type", "text/xml")
+ .build();
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ // TODO Auto-generated catch block
+ LOGGER.debug("Exception :",e1);
+ }
+ LOGGER.debug("Sending callback response to url: " + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ LOGGER.debug("Successfully posted callback? Status: " + result.getStatus());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ LOGGER.debug("catch error in - request.post() ");
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+}
--- /dev/null
+/*\r
+ * ============LICENSE_START======================================================= \r
+ * ONAP - SO \r
+ * ================================================================================ \r
+ * Licensed under the Apache License, Version 2.0 (the "License"); \r
+ * you may not use this file except in compliance with the License. \r
+ * You may obtain a copy of the License at \r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0 \r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software \r
+ * distributed under the License is distributed on an "AS IS" BASIS, \r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \r
+ * See the License for the specific language governing permissions and \r
+ * limitations under the License. \r
+ * ============LICENSE_END========================================================= \r
+ */ \r
+\r
+package org.openecomp.mso.bpmn.mock;\r
+\r
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.get;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.post;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.patch;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.put;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;\r
+\r
+\r
+/**\r
+ * Reusable Mock StubResponses for AAI Endpoints\r
+ *\r
+ */\r
+public class StubResponseAAI {\r
+\r
+ public static void setupAllMocks() {\r
+\r
+ }\r
+\r
+\r
+ /**\r
+ * Tunnel-XConnect Mock Stub Response\r
+ */\r
+ public static void MockPutTunnelXConnect(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId, String tunnelId){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId + "/tunnel-xconnects/tunnel-xconnect/" + tunnelId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+\r
+ /**\r
+ * Allotted Resource Mock StubResponses below\r
+ */\r
+ public static void MockGetAllottedResource(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockPutAllottedResource(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ public static void MockPutAllottedResource_500(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+ \r
+ public static void MockDeleteAllottedResource(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId, String resourceVersion) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+ \r
+ public static void MockPatchAllottedResource(String globalCustId, String subscriptionType, String serviceInstanceId, String allottedResourceId) {\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId + "/allotted-resources/allotted-resource/" + allottedResourceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ public static void MockQueryAllottedResourceById(String allottedResourceId, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=allotted-resource[&]filter=id:EQUALS:" + allottedResourceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+\r
+ /**\r
+ * Service Instance Mock StubResponses below\r
+ */\r
+ public static void MockGetServiceInstance(String globalCustId, String subscriptionType, String serviceInstanceId, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetServiceInstance_404(String customer, String serviceSubscription, String serviceInstanceId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockGetServiceInstance_500(String customer, String serviceSubscription, String serviceInstanceId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockGetServiceInstance_500(String customer, String serviceSubscription, String serviceInstanceId, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceByName(String serviceInstanceName, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance[&]filter=service-instance-name:EQUALS:" + serviceInstanceName))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceByName_404(String serviceInstanceName){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance&filter=service-instance-name:EQUALS:" + serviceInstanceName))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceByName_500(String serviceInstanceName){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance&filter=service-instance-name:EQUALS:" + serviceInstanceName))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceById(String serviceInstanceId, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance[&]filter=service-instance-id:EQUALS:" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceById_404(String serviceInstanceId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance&filter=service-instance-id:EQUALS:" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockNodeQueryServiceInstanceById_500(String serviceInstanceId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/nodes-query[?]search-node-type=service-instance&filter=service-instance-id:EQUALS:" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockDeleteServiceInstance(String customer, String serviceSubscription, String serviceInstanceId, String resourceVersion){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+ \r
+ public static void MockGetServiceInstance(String customer, String serviceSubscription, String serviceInstanceId, String resourceVersion, int statusCode){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+ \r
+ public static void MockGetServiceInstance(String customer, String serviceSubscription, String resourceVersion, int statusCode){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")));\r
+ }\r
+ \r
+ public static void MockDeleteServiceInstance(String customer, String serviceSubscription, String serviceInstanceId, String resourceVersion, int statusCode){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+ \r
+ public static void MockDeleteServiceInstance(String customer, String serviceSubscription, String resourceVersion, int statusCode){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "[?]resource-version=" +1234))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockDeleteServiceInstance_404(String customer, String serviceSubscription, String serviceInstanceId, String resourceVersion){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockDeleteServiceInstance_500(String customer, String serviceSubscription, String serviceInstanceId, String resourceVersion){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + customer + "/service-subscriptions/service-subscription/" + serviceSubscription + "/service-instances/service-instance/" + serviceInstanceId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockPutServiceInstance(String globalCustId, String subscriptionType, String serviceInstanceId, String responseFile) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockPutServiceInstance_500(String globalCustId, String subscriptionType, String serviceInstanceId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ /**\r
+ * Service-Subscription Mock StubResponses below\r
+ */\r
+ public static void MockGetServiceSubscription(String globalCustId, String subscriptionType, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockDeleteServiceSubscription(String globalCustId, String subscriptionType, int statusCode) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockDeleteServiceInstanceId(String globalCustId, String subscriptionType, String serviceInstanceId) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType + "/service-instances/service-instance/" + serviceInstanceId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ public static void MockPutServiceSubscription(String globalCustId, String subscriptionType) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ public static void MockGetServiceSubscription(String globalCustId, String subscriptionType, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId + "/service-subscriptions/service-subscription/" + subscriptionType))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ /**\r
+ * Customer Mock StubResponses below\r
+ */\r
+ public static void MockGetCustomer(String globalCustId, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockDeleteCustomer(String globalCustId) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ public static void MockPutCustomer(String globalCustId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ public static void MockPutCustomer_500(String globalCustId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/" + globalCustId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+\r
+ /**\r
+ * Generic-Vnf Mock StubResponses below\r
+ */\r
+ \r
+ public static void MockGetGenericVnfById(String vnfId, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "[?]depth=1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetGenericVnfById(String vnfId, String responseFile, int statusCode){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetGenericVnfByIdWithPriority(String vnfId, int statusCode, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf" + vnfId))\r
+ .atPriority(1)\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile))); \r
+ }\r
+ \r
+ public static void MockGetGenericVnfByIdWithPriority(String vnfId, String vfModuleId, int statusCode, String responseFile, int priority) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .atPriority(priority)\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile))); \r
+ }\r
+\r
+ public static void MockGetGenericVnfByIdWithDepth(String vnfId, int depth, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "[?]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetGenericVnfById_404(String vnfId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockGetGenericVnfById_500(String vnfId){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockGetGenericVnfByName(String vnfName, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=" + vnfName))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetGenericVnfByNameWithDepth(String vnfName, int depth, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=" + vnfName + "[&]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetGenericVnfByName_404(String vnfName){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=" + vnfName))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockDeleteGenericVnf(String vnfId, String resourceVersion){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+\r
+ public static void MockDeleteGenericVnf(String vnfId, String resourceVersion, int statusCode){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockDeleteGenericVnf_500(String vnfId, String resourceVersion){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+\r
+ public static void MockPutGenericVnf(String vnfId){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ public static void MockPutGenericVnf(String vnfId, String requestBodyContaining, int statusCode) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf" + vnfId))\r
+ .withRequestBody(containing(requestBodyContaining))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockPutGenericVnf(String vnfId, int statusCode) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+ \r
+ public static void MockPutGenericVnf_Bad(String vnfId, int statusCode){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockPatchGenericVnf(String vnfId){\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ /**\r
+ * Vce Mock StubResponses below\r
+ */\r
+ public static void MockGetVceById(String vnfId, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vces/vce/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetVceByName(String vnfName, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vces/vce[?]vnf-name=" + vnfName))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockDeleteVce(String vnfId, String resourceVersion, int statusCode){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/vces/vce/" + vnfId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockPutVce(String vnfId){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/vces/vce/" + vnfId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ public static void MockGetGenericVceByNameWithDepth(String vnfName, int depth, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vces/vce[?]vnf-name=" + vnfName + "[&]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetVceGenericQuery(String serviceInstanceName, int depth, int statusCode, String responseFile){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/generic-query[?]key=service-instance.service-instance-name:" + serviceInstanceName + "[&]start-node-type=service-instance[&]include=vce[&]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ /**\r
+ * Tenant Mock StubResponses below\r
+ */\r
+ public static void MockGetTenantGenericQuery(String customer, String serviceType, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/search/generic-query[?]key=customer.global-customer-id:" + customer + "&key=service-subscription.service-type:" + serviceType + "&start-node-type=service-subscription&include=tenant&include=service-subscription&depth=1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetTenant(String tenantId, String responseFile) {\r
+ stubFor(get(urlEqualTo("/aai/v2/cloud-infrastructure/tenants/tenant/" + tenantId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ /**\r
+ * Network Mock StubResponses below\r
+ */\r
+ public static void MockGetNetwork(String networkId, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network/" + networkId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkByIdWithDepth(String networkId, String responseFile, String depth) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network/" + networkId + "[?]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkCloudRegion(String responseFile, String cloudRegion) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/"+cloudRegion))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkByName(String networkName, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network[?]network-name="+networkName))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetNetworkByName_404(String responseFile, String networkName) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network[?]network-name="+networkName))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkCloudRegion_404(String cloudRegion) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/"+cloudRegion))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ public static void MockPutNetwork(String networkId, int statusCode, String responseFile) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network/" + networkId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockPutNetwork(String networkPolicyId, String responseFile, int statusCode) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy/" + networkPolicyId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkName(String networkPolicyName, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network[?]network-name=" + networkPolicyName))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void MockGetNetworkVpnBinding(String responseFile, String vpnBinding) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vpn-bindings/vpn-binding/"+vpnBinding + "[?]depth=all"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ } \r
+ \r
+ public static void MockGetNetworkPolicy(String responseFile, String policy) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy/"+policy + "[?]depth=all"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkVpnBinding(String networkBindingId, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vpn-bindings/vpn-binding/" + networkBindingId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkPolicy(String networkPolicy, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy/" + networkPolicy))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkTableReference(String responseFile, String tableReference) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/route-table-references/route-table-reference/"+tableReference + "[?]depth=all"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockPutNetworkIdWithDepth(String responseFile, String networkId, String depth) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/l3-networks/l3-network/"+networkId+"[?]depth="+depth ))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkPolicyfqdn(String networkPolicy, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy[?]network-policy-fqdn=" + networkPolicy))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetNetworkRouteTable(String networkRouteId, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/route-table-references/route-table-reference/" + networkRouteId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockPatchVfModuleId(String vnfId, String vfModuleId) {\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ /////////////\r
+ \r
+ public static void MockVNFAdapterRestVfModule() {\r
+ stubFor(put(urlEqualTo("/vnfs/v1/vnfs/skask/vf-modules/supercool"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/xml")));\r
+ stubFor(post(urlMatching("/vnfs/v1/vnfs/.*/vf-modules"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/xml")));\r
+ stubFor(post(urlEqualTo("/vnfs/v1/vnfs/skask/vf-modules"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/xml")));\r
+ stubFor(put(urlEqualTo("/vnfs/v1/volume-groups/78987"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/xml")));\r
+ }\r
+ \r
+ public static void MockDBUpdateVfModule(){\r
+ stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/DBUpdateResponse.xml")));\r
+ }\r
+ \r
+ // start of mocks used locally and by other VF Module unit tests\r
+ public static void MockSDNCAdapterVfModule() {\r
+ // simplified the implementation to return "success" for all requests\r
+ stubFor(post(urlEqualTo("/SDNCAdapter"))\r
+// .withRequestBody(containing("SvcInstanceId><"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/StandardSDNCSynchResponse.xml")));\r
+\r
+ }\r
+ \r
+ // start of mocks used locally and by other VF Module unit tests\r
+ public static void MockAAIVfModule() {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/supercool"))\r
+ .atPriority(1)\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/VfModule-supercool.xml"))); \r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/lukewarm"))\r
+ .atPriority(2)\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/VfModule-lukewarm.xml")));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/.*"))\r
+ .atPriority(5)\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/VfModule-new.xml")));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask[?]depth=1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/GenericVnf.xml")));\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/supercool"))\r
+// .withRequestBody(containing("PCRF"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/.*"))\r
+// .withRequestBody(containing("PCRF"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ // HTTP PUT stub still used by CreateAAIvfModuleVolumeGroup\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/.*"))\r
+ .withRequestBody(containing("PCRF"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ // HTTP PUT stub still used by DoCreateVfModuleTest\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/.*"))\r
+ .withRequestBody(containing("MODULELABEL"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group[?]volume-group-id=78987"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/ConfirmVolumeGroupTenantResponse.xml")));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group[?]volume-group-id=78987"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/ConfirmVolumeGroupTenantResponse.xml")));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/MDTWNJ21/volume-groups/volume-group/78987"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/VolumeGroup.xml")));\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/78987"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/VolumeGroup.xml")));\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group/78987[?]resource-version=0000020"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("DeleteCinderVolumeV1/DeleteVolumeId_AAIResponse_Success.xml")));\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy/.*"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("VfModularity/AddNetworkPolicy_AAIResponse_Success.xml")));\r
+ stubFor(patch(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/skask/vf-modules/vf-module/NEWvBNGModuleId"))\r
+ .withRequestBody(containing("NEWvBNGModuleId"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+\r
+ \r
+ \r
+ //////////////\r
+\r
+ /**\r
+ * Cloud infrastructure below\r
+ */\r
+ \r
+ public static void MockGetCloudRegion(String cloudRegionId, int statusCode, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ /**\r
+ * Volume Group StubResponse below\r
+ */\r
+ public static void MockGetVolumeGroupById(String cloudRegionId, String volumeGroupId, String responseFile) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups/volume-group/" + volumeGroupId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockPutVolumeGroupById(String cloudRegionId, String volumeGroupId, String responseFile, int statusCode) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups/volume-group/" + volumeGroupId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetVolumeGroupByName(String cloudRegionId, String volumeGroupName, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups[?]volume-group-name=" + volumeGroupName))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockDeleteVolumeGroupById(String cloudRegionId, String volumeGroupId, String resourceVersion, int statusCode) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups/volume-group/" + volumeGroupId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+\r
+ public static void MockGetVolumeGroupByName_404(String cloudRegionId, String volumeGroupName) {\r
+ stubFor(get(urlMatching("/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups[?]volume-group-name=" + volumeGroupName))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+ \r
+ public static void MockDeleteVolumeGroup(String cloudRegionId, String volumeGroupId, String resourceVersion) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/" + cloudRegionId + "/volume-groups/volume-group/" + volumeGroupId + "[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ /**\r
+ * VF-Module StubResponse below\r
+ * @param statusCode TODO\r
+ */\r
+ public static void MockGetVfModuleId(String vnfId, String vfModuleId, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetVfModuleByNameWithDepth(String vnfId, String vfModuleName, int depth, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module[?]vf-module-name=" + vfModuleName + "[?]depth=" + depth))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetVfModuleIdNoResponse(String vnfId, String requestContaining, String vfModuleId) {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .withRequestBody(containing(requestContaining))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")));\r
+ }\r
+\r
+ public static void MockPutVfModuleIdNoResponse(String vnfId, String requestContaining, String vfModuleId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId +"/vf-modules/vf-module/" +vfModuleId))\r
+ .withRequestBody(containing(requestContaining))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ public static void MockPutVfModuleId(String vnfId, String vfModuleId) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ \r
+ public static void MockPutVfModuleId(String vnfId, String vfModuleId, int returnCode) {\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId))\r
+ .willReturn(aResponse()\r
+ .withStatus(returnCode)));\r
+ }\r
+ \r
+ public static void MockDeleteVfModuleId(String vnfId, String vfModuleId, String resourceVersion, int returnCode) {\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/" + vnfId + "/vf-modules/vf-module/" + vfModuleId + "/[?]resource-version=" + resourceVersion))\r
+ .willReturn(aResponse()\r
+ .withStatus(returnCode)));\r
+ }\r
+\r
+ public static void MockAAIVfModuleBadPatch(String endpoint, int statusCode) {\r
+ stubFor(patch(urlMatching(endpoint))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)));\r
+ }\r
+ \r
+ /* AAI Pserver Queries */\r
+ public static void MockGetPserverByVnfId(String vnfId, String responseFile, int statusCode) {\r
+ stubFor(put(urlMatching("/v10/query.*"))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockGetGenericVnfsByVnfId(String vnfId, String responseFile, int statusCode) {\r
+ stubFor(get(urlMatching("/v10/network/generic-vnfs/.*"))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ .withHeader("Content-Type", "application/json; charset=utf-8")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+ \r
+ public static void MockSetInMaintFlagByVnfId(String vnfId, int statusCode) {\r
+ stubFor(patch(urlMatching("/v10/network/generic-vnfs/.*"))\r
+ .willReturn(aResponse()\r
+ .withStatus(statusCode)\r
+ ));\r
+ }\r
+ \r
+ //// Deprecated Stubs below - to be deleted once unit test that reference them are refactored to use common ones above ////\r
+ @Deprecated\r
+ public static void MockGetVceById(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vces/vce/testVnfId123?depth=1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getVceResponse.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetVceByName(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/vces/vce[?]vnf-name=testVnfName123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getVceByNameResponse.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockPutVce(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/vces/vce/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteVce(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/vces/vce/testVnfId123[?]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteVce_404(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/vces/vce/testVnfId123[?]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+\r
+ @Deprecated\r
+ public static void MockDeleteServiceSubscription(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET[?]resource-version=1234"))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetServiceSubscription(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getServiceSubscription.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetServiceSubscription_200Empty(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET[?]resource-version=1234"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBody(" ")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetServiceSubscription_404() {\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET"))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+ @Deprecated\r
+ public static void MockGENPSIPutServiceInstance(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/MIS%252F1604%252F0026%252FSW_INTERNET"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericPutServiceInstance/GenericPutServiceInstance_PutServiceInstance_AAIResponse_Success.xml")));\r
+ }\r
+\r
+ @Deprecated\r
+ public static void MockGENPSIPutServiceSubscription(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericPutServiceInstance/GenericPutServiceInstance_PutServiceInstance_AAIResponse_Success.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGENPSIPutServiceInstance_get500(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/business/customers/customer/1604-MVM-26/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/MIS%252F1604%252F0026%252FSW_INTERNET"))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericPutServiceInstance/aaiFault.xml")));\r
+ }\r
+\r
+ @Deprecated\r
+ public static void MockGetGenericVnfById(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getGenericVnfByNameResponse.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfById_404(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfByName(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=testVnfName123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getGenericVnfResponse.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfByName_hasRelationships(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=testVnfName123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getGenericVnfResponse_hasRelationships.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfById_hasRelationships(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "text/xml")\r
+ .withBodyFile("GenericFlows/getGenericVnfResponse_hasRelationships.xml")));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfById_500(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+ @Deprecated\r
+ public static void MockGetGenericVnfByName_404(){\r
+ stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=testVnfName123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+ @Deprecated\r
+ public static void MockPutGenericVnf(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)));\r
+ }\r
+ @Deprecated\r
+ public static void MockPutGenericVnf_400(){\r
+ stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(400)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteGenericVnf(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(204)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteGenericVnf_404(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(404)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteGenericVnf_500(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)));\r
+ }\r
+ @Deprecated\r
+ public static void MockDeleteGenericVnf_412(){\r
+ stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[[?]]resource-version=testReVer123"))\r
+ .willReturn(aResponse()\r
+ .withStatus(412)));\r
+ }\r
+\r
+}\r
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+
+/**
+ * Stub response class for Database stubs
+ * including database adapter, catalog db,
+ * and other databases.
+ */
+public class StubResponseDatabase {
+
+ public static void setupAllMocks() {
+
+ }
+
+ public static void MockUpdateRequestDB(String fileName){
+ stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(fileName)));
+ }
+
+ public static void mockUpdateRequestDB(int statusCode, String reponseFile) {
+ stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(reponseFile)));
+ }
+
+ public static void MockGetAllottedResourcesByModelInvariantId(String modelInvariantId, String responseFile){
+ stubFor(get(urlEqualTo("/v1/serviceAllottedResources?serviceModelInvariantUuid=" + modelInvariantId))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/json")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockGetAllottedResourcesByModelInvariantId_500(String modelInvariantId, String responseFile){
+ stubFor(get(urlEqualTo("/v1/serviceAllottedResources?serviceModelInvariantUuid=" + modelInvariantId))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void MockGetVnfCatalogDataCustomizationUuid(String vnfModelCustomizationUuid, String responseFile){
+ stubFor(get(urlEqualTo("/v2/serviceVnfs?vnfModelCustomizationUuid=" + vnfModelCustomizationUuid))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/json")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockGetVfModuleByModelNameCatalogData(String vfModuleModelName, String responseFile){
+ stubFor(get(urlEqualTo("/v2/vfModules?vfModuleModelName=" + vfModuleModelName))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/json")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockGetServiceResourcesCatalogData(String serviceModelInvariantUuid, String serviceModelVersion, String responseFile){
+ stubFor(get(urlEqualTo("/v2/serviceResources?serviceModelInvariantUuid=" + serviceModelInvariantUuid +
+ "&serviceModelVersion=" + serviceModelVersion))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/json")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockGetServiceResourcesCatalogData(String serviceModelInvariantUuid, String responseFile){
+ stubFor(get(urlEqualTo("/v2/serviceResources?serviceModelInvariantUuid=" + serviceModelInvariantUuid))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/json")
+ .withBodyFile(responseFile)));
+ }
+
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+
+/**
+ * Please describe the StubResponseNetwork.java class
+ *
+ */
+public class StubResponseNetworkAdapter {
+
+ private static final String EOL = "\n";
+
+ public static void setupAllMocks() {
+
+ }
+
+
+ public static void MockNetworkAdapter() {
+ stubFor(post(urlEqualTo("/networks/NetworkAdapter"))
+ .willReturn(aResponse()
+ .withStatus(200)));
+ }
+
+ public static void MockNetworkAdapter(String response) {
+ stubFor(post(urlEqualTo("/networks/NetworkAdapter"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(response)));
+ }
+
+ public static void MockNetworkAdapter_500() {
+ stubFor(post(urlEqualTo("/networks/NetworkAdapter"))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void MockNetworkAdapterPost(String responseFile, String requestContaining) {
+ stubFor(post(urlEqualTo("/networks/NetworkAdapter"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockNetworkAdapter(String networkId, int statusCode, String responseFile) {
+ stubFor(delete(urlEqualTo("/networks/NetworkAdapter/" + networkId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockNetworkAdapterContainingRequest(String requestContaining, int statusCode, String responseFile) {
+ stubFor(post(urlEqualTo("/networks/NetworkAdapter"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockPutNetworkAdapter(String networkId, String requestContaining, int statusCode, String responseFile) {
+ stubFor(put(urlEqualTo("/networks/NetworkAdapter/" + networkId))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockNetworkAdapterRestRollbackDelete(String responseFile, String networkId) {
+ stubFor(delete(urlEqualTo("/networks/NetworkAdapter/"+networkId+"/rollback"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void MockNetworkAdapterRestPut(String responseFile, String networkId) {
+ stubFor(put(urlEqualTo("/networks/NetworkAdapter/"+networkId))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+}
--- /dev/null
+/*\r
+ * ============LICENSE_START======================================================= \r
+ * ONAP - SO \r
+ * ================================================================================ \r
+ * Licensed under the Apache License, Version 2.0 (the "License"); \r
+ * you may not use this file except in compliance with the License. \r
+ * You may obtain a copy of the License at \r
+ * \r
+ * http://www.apache.org/licenses/LICENSE-2.0 \r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software \r
+ * distributed under the License is distributed on an "AS IS" BASIS, \r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \r
+ * See the License for the specific language governing permissions and \r
+ * limitations under the License. \r
+ * ============LICENSE_END========================================================= \r
+ */ \r
+\r
+package org.openecomp.mso.bpmn.mock;\r
+\r
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.get;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.post;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.patch;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.put;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;\r
+\r
+/**\r
+ * Reusable Mock StubResponses for Policy\r
+ *\r
+ */\r
+public class StubResponsePolicy {\r
+\r
+ public static void setupAllMocks() {\r
+\r
+ }\r
+\r
+ // start of Policy mocks\r
+ public static void MockPolicyAbort() { \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("BB1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("policyAbortResponse.json")));\r
+ \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("UPDVnfI"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("policyAbortResponse.json")));\r
+ \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("RPLVnfI"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("policyAbortResponse.json")));\r
+\r
+\r
+ }\r
+ \r
+ public static void MockPolicySkip() { \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("BB1"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("Policy/policySkipResponse.json")));\r
+ \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("UPDVnfI"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("Policy/policySkipResponse.json")));\r
+ \r
+ stubFor(post(urlEqualTo("/pdp/api/getDecision"))\r
+ .withRequestBody(containing("RPLVnfI"))\r
+ .willReturn(aResponse()\r
+ .withStatus(200)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile("Policy/policySkipResponse.json")));\r
+\r
+\r
+ }\r
+ \r
+ \r
+}\r
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+
+/**
+ * Please describe the StubResponseSDNC.java class
+ */
+public class StubResponseSDNCAdapter {
+
+ public static void setupAllMocks() {
+
+ }
+
+ public static void mockSDNCAdapter_500() {
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void mockSDNCAdapter_500(String requestContaining) {
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void mockSDNCAdapter(int statusCode) {
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)));
+ }
+
+ public static void mockSDNCAdapter(String endpoint, int statusCode, String responseFile) {
+ stubFor(post(urlEqualTo(endpoint))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockSDNCAdapter(String responseFile) {
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockSDNCAdapter(String endpoint, String requestContaining, int statusCode, String responseFile) {
+ stubFor(post(urlEqualTo(endpoint))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockSDNCAdapterSimulator(String responseFile) {
+ MockResource mockResource = new MockResource();
+ mockResource.updateProperties("sdnc_delay", "300");
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/soap+xml")
+ .withTransformers("sdnc-adapter-transformer")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockSDNCAdapterSimulator(String responseFile, String requestContaining) {
+ MockResource mockResource = new MockResource();
+ mockResource.updateProperties("sdnc_delay", "300");
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/soap+xml")
+ .withTransformers("sdnc-adapter-transformer")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockSDNCAdapterRest() {
+ stubFor(post(urlEqualTo("/SDNCAdapter/v1/sdnc/services"))
+ .willReturn(aResponse()
+ .withStatus(202)
+ .withHeader("Content-Type", "application/json")));
+ }
+
+ public static void mockSDNCAdapterRest_500() {
+ stubFor(post(urlEqualTo("/SDNCAdapter/v1/sdnc/services"))
+ .willReturn(aResponse()
+ .withStatus(500)
+ .withHeader("Content-Type", "application/json")));
+ }
+
+ public static void mockSDNCAdapterRest(String requestContaining) {
+ stubFor(post(urlEqualTo("/SDNCAdapter/v1/sdnc/services"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(202)
+ .withHeader("Content-Type", "application/json")));
+ }
+
+ public static void mockSDNCAdapterRest_500(String requestContaining) {
+ stubFor(post(urlEqualTo("/SDNCAdapter/v1/sdnc/services"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(500)
+ .withHeader("Content-Type", "application/json")));
+ }
+
+ public static void mockSDNCAdapterTopology(String responseFile, String requestContaining) {
+ MockResource mockResource = new MockResource();
+ mockResource.updateProperties("sdnc_delay", "300");
+ stubFor(post(urlEqualTo("/SDNCAdapter"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withTransformers("network-topology-operation-transformer")
+ .withBodyFile(responseFile)));
+ }
+
+
+}
--- /dev/null
+/*\r
+ * ============LICENSE_START=======================================================\r
+ * ONAP - SO\r
+ * ================================================================================\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ * ============LICENSE_END=========================================================\r
+ */\r
+\r
+/*\r
+ * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.\r
+ */\r
+package org.openecomp.mso.bpmn.mock;\r
+\r
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.post;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;\r
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;\r
+\r
+/**\r
+ * Please describe the StubResponseSNIRO.java class\r
+ *\r
+ * @author cb645j\r
+ */\r
+public class StubResponseSNIRO {\r
+\r
+ public static void setupAllMocks() {\r
+\r
+ }\r
+\r
+ public static void mockSNIRO() {\r
+ stubFor(post(urlEqualTo("/sniro/api/v2/placement"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/json")));\r
+ }\r
+\r
+ public static void mockSNIRO(String responseFile) {\r
+ stubFor(post(urlEqualTo("/sniro/api/v2/placement"))\r
+ .willReturn(aResponse()\r
+ .withStatus(202)\r
+ .withHeader("Content-Type", "application/json")\r
+ .withBodyFile(responseFile)));\r
+ }\r
+\r
+ public static void mockSNIRO_400() {\r
+ stubFor(post(urlEqualTo("/sniro/api/v2/placement"))\r
+ .willReturn(aResponse()\r
+ .withStatus(400)\r
+ .withHeader("Content-Type", "application/json")));\r
+ }\r
+\r
+ public static void mockSNIRO_500() {\r
+ stubFor(post(urlEqualTo("/sniro/api/v2/placement"))\r
+ .willReturn(aResponse()\r
+ .withStatus(500)\r
+ .withHeader("Content-Type", "application/json")));\r
+ }\r
+\r
+}\r
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+
+/**
+ * Please describe the StubResponseVNF.java class
+ */
+public class StubResponseVNFAdapter {
+
+ public static void mockVNFAdapter() {
+ stubFor(post(urlEqualTo("/vnfs/VnfAdapterAsync"))
+ .willReturn(aResponse()
+ .withStatus(200)));
+ }
+
+ public static void mockVNFAdapter(String responseFile) {
+ stubFor(post(urlEqualTo("/vnfs/VnfAdapterAsync"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "text/xml")
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockVNFAdapter_500() {
+ stubFor(post(urlEqualTo("/vnfs/VnfAdapterAsync"))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void mockVNFAdapterTransformer(String transformer, String responseFile) {
+ MockResource mockResource = new MockResource();
+ mockResource.updateProperties("vnf_delay", "300");
+ stubFor(post(urlEqualTo("/vnfs/VnfAdapterAsync"))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/soap+xml")
+ .withTransformers(transformer)
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockVNFAdapterTransformer(String transformer, String responseFile, String requestContaining) {
+ MockResource mockResource = new MockResource();
+ mockResource.updateProperties("vnf_delay", "300");
+ stubFor(post(urlEqualTo("/vnfs/VnfAdapterAsync"))
+ .withRequestBody(containing(requestContaining))
+ .willReturn(aResponse()
+ .withStatus(200)
+ .withHeader("Content-Type", "application/soap+xml")
+ .withTransformers(transformer)
+ .withBodyFile(responseFile)));
+ }
+
+ public static void mockVNFPost(String vfModuleId, int statusCode, String vnfId) {
+ stubFor(post(urlEqualTo("/vnfs/v1/vnfs/" + vnfId + "/vf-modules" + vfModuleId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVNFPut(String vfModuleId, int statusCode) {
+ stubFor(put(urlEqualTo("/vnfs/v1/vnfs/vnfId/vf-modules" + vfModuleId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVNFPut(String vnfId, String vfModuleId, int statusCode) {
+ stubFor(put(urlEqualTo("/vnfs/v1/vnfs/" + vnfId + "/vf-modules" + vfModuleId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVNFDelete(String vnfId, String vfModuleId, int statusCode) {
+ stubFor(delete(urlEqualTo("/vnfs/v1/vnfs/" + vnfId + "/vf-modules" + vfModuleId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVNFRollbackDelete(String vfModuleId, int statusCode) {
+ stubFor(delete(urlEqualTo("/vnfs/v1/vnfs/vnfId/vf-modules" + vfModuleId + "/rollback"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockPutVNFVolumeGroup(String volumeGroupId, int statusCode) {
+ stubFor(put(urlEqualTo("/vnfs/v1/volume-groups/" + volumeGroupId))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockPutVNFVolumeGroupRollback(String volumeGroupId, int statusCode) {
+ stubFor(delete(urlMatching("/vnfs/v1/volume-groups/" + volumeGroupId + "/rollback"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+ public static void mockPostVNFVolumeGroup(int statusCode) {
+ stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVNFAdapterRest(String vnfId) {
+ stubFor(post(urlEqualTo("/vnfs/v1/vnfs/" + vnfId + "/vf-modules"))
+ .willReturn(aResponse()
+ .withStatus(200)));
+ }
+
+ public static void mockVNFAdapterRest_500(String vnfId) {
+ stubFor(post(urlEqualTo("/vnfs/v1/vnfs/" + vnfId + "/vf-modules"))
+ .willReturn(aResponse()
+ .withStatus(500)));
+ }
+
+ public static void mockVfModuleDelete(String volumeGroupId) {
+ stubFor(delete(urlMatching("/vnfs/v1/volume-groups/"+ volumeGroupId))
+ .willReturn(aResponse()
+ .withStatus(202)
+ .withHeader("Content-Type", "application/xml")));
+ }
+
+ public static void mockVfModuleDelete(String volumeGroupId, int statusCode) {
+ stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))
+ .willReturn(aResponse()
+ .withStatus(statusCode)
+ .withHeader("Content-Type", "application/xml")));
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import javax.xml.ws.Endpoint;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.openecomp.mso.logger.MsoLogger;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+/**
+ * Please describe the VnfAdapterCreateMockTransformer.java class
+ *
+ */
+public class VnfAdapterCreateMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String notifyCallbackResponse;
+ private String ackResponse;
+
+ public VnfAdapterCreateMockTransformer() {
+ notifyCallbackResponse = FileUtil.readResourceFile("__files/vnfAdapterMocks/vnfCreateSimResponse.xml"); // default response
+ }
+
+ @Override
+ public String name() {
+ return "vnf-adapter-create-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+
+ String requestBody = request.getBodyAsString();
+
+ String notficationUrl = requestBody.substring(requestBody.indexOf("<notificationUrl>")+17, requestBody.indexOf("</notificationUrl>"));
+ String messageId = requestBody.substring(requestBody.indexOf("<messageId>")+11, requestBody.indexOf("</messageId>"));
+ String responseMessageId = "";
+ String updatedResponse = "";
+
+ try {
+ // try supplied response file (if any)
+ System.out.println(" Supplied fileName: " + responseDefinition.getBodyFileName());
+ ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ notifyCallbackResponse = ackResponse;
+ responseMessageId = ackResponse.substring(ackResponse.indexOf("<messageId>")+11, ackResponse.indexOf("</messageId>"));
+ updatedResponse = ackResponse.replace(responseMessageId, messageId);
+ } catch (Exception ex) {
+ LOGGER.debug("Exception :",ex);
+ System.out.println(" ******* Use default response file in '__files/vnfAdapterMocks/vnfCreateSimResponse.xml'");
+ responseMessageId = notifyCallbackResponse.substring(notifyCallbackResponse.indexOf("<messageId>")+11, notifyCallbackResponse.indexOf("</messageId>"));
+ updatedResponse = notifyCallbackResponse.replace(responseMessageId, messageId);
+ }
+
+ System.out.println("response (mock) messageId : " + responseMessageId);
+ System.out.println("request (replacement) messageId: " + messageId);
+
+ System.out.println("vnf Response (before):" + notifyCallbackResponse);
+ System.out.println("vnf Response (after):" + updatedResponse);
+
+ Object vnfDelay = MockResource.getMockProperties().get("vnf_delay");
+ int delay = 300;
+ if (vnfDelay != null) {
+ delay = Integer.parseInt(vnfDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("VnfAdapterCreateMockTransformer notficationUrl: " + notficationUrl + ":delay: " + delay);
+ CallbackResponseThread callbackResponseThread = new CallbackResponseThread(notficationUrl,updatedResponse, delay);
+ callbackResponseThread.start();
+
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(updatedResponse).withHeader("Content-Type", "text/xml")
+ .build();
+
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ @SuppressWarnings("deprecation")
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ // TODO Auto-generated catch block
+ LOGGER.debug("Exception :",e1);
+ }
+ LOGGER.debug("Sending callback response to url: " + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.out.println("payLoad: " + payLoad);
+
+ try {
+ ClientResponse result = request.post();
+ LOGGER.debug("Successfully posted callback? Status: " + result.getStatus());
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ LOGGER.debug("catch error in - request.post() ");
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.openecomp.mso.logger.MsoLogger;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+/**
+ * Please describe the VnfAdapterCreateMockTransformer.java class
+ *
+ */
+public class VnfAdapterDeleteMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String notifyCallbackResponse;
+ private String ackResponse;
+
+ public VnfAdapterDeleteMockTransformer() {
+ notifyCallbackResponse = FileUtil.readResourceFile("__files/vnfAdapterMocks/vnfDeleteSimResponse.xml");
+ }
+
+ @Override
+ public String name() {
+ return "vnf-adapter-delete-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+
+ // System.err.println("notifyCallbackResponse:" + notifyCallbackResponse);
+
+ String requestBody = request.getBodyAsString();
+
+ String notficationUrl = requestBody.substring(requestBody.indexOf("<notificationUrl>")+17, requestBody.indexOf("</notificationUrl>"));
+ String messageId = requestBody.substring(requestBody.indexOf("<messageId>")+11, requestBody.indexOf("</messageId>"));
+ String responseMessageId = "";
+ String updatedResponse = "";
+
+ try {
+ // try supplied response file (if any)
+ System.out.println(" Supplied fileName: " + responseDefinition.getBodyFileName());
+ ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ notifyCallbackResponse = ackResponse;
+ responseMessageId = ackResponse.substring(ackResponse.indexOf("<messageId>")+11, ackResponse.indexOf("</messageId>"));
+ updatedResponse = ackResponse.replace(responseMessageId, messageId);
+ } catch (Exception ex) {
+ LOGGER.debug("Exception :",ex);
+ System.out.println(" ******* Use default response file in '__files/vnfAdapterMocks/vnfDeleteSimResponse.xml'");
+ responseMessageId = notifyCallbackResponse.substring(notifyCallbackResponse.indexOf("<messageId>")+11, notifyCallbackResponse.indexOf("</messageId>"));
+ updatedResponse = notifyCallbackResponse.replace(responseMessageId, messageId);
+ }
+
+ System.out.println("response (mock) messageId : " + responseMessageId);
+ System.out.println("request (replacement) messageId: " + messageId);
+
+ System.out.println("vnf Response (before):" + notifyCallbackResponse);
+ System.out.println("vnf Response (after):" + updatedResponse);
+
+ Object vnfDelay = MockResource.getMockProperties().get("vnf_delay");
+ int delay = 300;
+ if (vnfDelay != null) {
+ delay = Integer.parseInt(vnfDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("VnfAdapterDeleteMockTransformer notficationUrl: " + notficationUrl + ":delay: " + delay);
+ CallbackResponseThread callbackResponseThread = new CallbackResponseThread(notficationUrl,updatedResponse, delay);
+ callbackResponseThread.start();
+
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(updatedResponse).withHeader("Content-Type", "text/xml")
+ .build();
+
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ @SuppressWarnings("deprecation")
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ // TODO Auto-generated catch block
+ LOGGER.debug("Exception :",e1);
+ }
+ System.out.println("Sending callback response to url: " + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ System.out.println("Successfully posted callback? Status: " + result.getStatus());
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ System.out.println("catch error in - request.post() ");
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.openecomp.mso.logger.MsoLogger;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+/**
+ * Please describe the VnfAdapterQueryMockTransformer.java class
+ *
+ */
+
+
+public class VnfAdapterQueryMockTransformer extends ResponseTransformer{
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String notifyCallbackResponse;
+ private String ackResponse;
+ private String messageId;
+
+ public VnfAdapterQueryMockTransformer() {
+ notifyCallbackResponse = FileUtil.readResourceFile("__files/vnfAdapterMocks/vnfQuerySimResponse.xml");
+ }
+
+ public VnfAdapterQueryMockTransformer(String messageId) {
+ this.messageId = messageId;
+ }
+
+ @Override
+ public String name() {
+ return "vnf-adapter-query-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+
+ String requestBody = request.getBodyAsString();
+
+ String notficationUrl = requestBody.substring(requestBody.indexOf("<notificationUrl>")+17, requestBody.indexOf("</notificationUrl>"));
+ String messageId = requestBody.substring(requestBody.indexOf("<messageId>")+11, requestBody.indexOf("</messageId>"));
+ // String updatedResponse = notifyCallbackResponse.replace("b1a82ce6-7f5c-45fd-9273-acaf88fc2137", messageId);
+
+ String responseMessageId = "";
+ String updatedResponse = "";
+
+ // if (ackResponse == null) {
+ //System.err.println("file:" + responseDefinition.getBodyFileName());
+ // ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ //}
+
+
+ try {
+ // try supplied response file (if any)
+ System.out.println(" Supplied fileName: " + responseDefinition.getBodyFileName());
+ ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ notifyCallbackResponse = ackResponse;
+ responseMessageId = ackResponse.substring(ackResponse.indexOf("<messageId>")+11, ackResponse.indexOf("</messageId>"));
+ updatedResponse = ackResponse.replace(responseMessageId, messageId);
+ } catch (Exception ex) {
+ LOGGER.debug("Exception :",ex);
+ System.out.println(" ******* Use default response file in '__files/vnfAdapterMocks/vnfQuerySimResponse.xml'");
+ responseMessageId = notifyCallbackResponse.substring(notifyCallbackResponse.indexOf("<messageId>")+11, notifyCallbackResponse.indexOf("</messageId>"));
+ updatedResponse = notifyCallbackResponse.replace(responseMessageId, messageId);
+ }
+
+ System.out.println("response (mock) messageId : " + responseMessageId);
+ System.out.println("request (replacement) messageId: " + messageId);
+
+ System.out.println("vnf Response (before):" + notifyCallbackResponse);
+ System.out.println("vnf Response (after):" + updatedResponse);
+
+
+ Object vnfDelay = MockResource.getMockProperties().get("vnf_delay");
+ int delay = 300;
+ if (vnfDelay != null) {
+ delay = Integer.parseInt(vnfDelay.toString());
+ }
+
+ //Kick off callback thread
+
+ //System.out.println("notficationUrl" + notficationUrl);
+ //System.out.println("updatedResponse" + updatedResponse);
+ System.out.println("VnfAdapterQueryMockTransformer notficationUrl: " + notficationUrl + ":delay: " + delay);
+ CallbackResponseThread callbackResponseThread = new CallbackResponseThread(notficationUrl,updatedResponse, delay);
+ System.out.println("Inside Callback" );
+ callbackResponseThread.start();
+
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(updatedResponse).withHeader("Content-Type", "text/xml")
+ .build();
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ LOGGER.debug("Exception :",e1);
+ }
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+/**
+ * Please describe the VnfAdapterCreateMockTransformer.java class
+ *
+ */
+public class VnfAdapterRollbackMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String notifyCallbackResponse;
+ private String ackResponse;
+ private String messageId;
+
+ public VnfAdapterRollbackMockTransformer() {
+ notifyCallbackResponse = FileUtil.readResourceFile("__files/vnfAdapterMocks/vnfRollbackSimResponse.xml");
+ }
+
+ public VnfAdapterRollbackMockTransformer(String messageId) {
+ this.messageId = messageId;
+ }
+
+ @Override
+ public String name() {
+ return "vnf-adapter-rollback-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+
+ String requestBody = request.getBodyAsString();
+
+ String notficationUrl = requestBody.substring(requestBody.indexOf("<notificationUrl>")+17, requestBody.indexOf("</notificationUrl>"));
+ String messageId = requestBody.substring(requestBody.indexOf("<messageId>")+11, requestBody.indexOf("</messageId>"));
+ String responseMessageId = "";
+ String updatedResponse = "";
+
+ try {
+ // try supplied response file (if any)
+ System.out.println(" Supplied fileName: " + responseDefinition.getBodyFileName());
+ ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ notifyCallbackResponse = ackResponse;
+ responseMessageId = ackResponse.substring(ackResponse.indexOf("<messageId>")+11, ackResponse.indexOf("</messageId>"));
+ updatedResponse = ackResponse.replace(responseMessageId, messageId);
+ } catch (Exception ex) {
+ LOGGER.debug("Exception :",ex);
+ System.out.println(" ******* Use default response file in '__files/vnfAdapterMocks/vnfRollbackSimResponse.xml'");
+ responseMessageId = notifyCallbackResponse.substring(notifyCallbackResponse.indexOf("<messageId>")+11, notifyCallbackResponse.indexOf("</messageId>"));
+ updatedResponse = notifyCallbackResponse.replace(responseMessageId, messageId);
+ }
+
+ System.out.println("response (mock) messageId : " + responseMessageId);
+ System.out.println("request (replacement) messageId: " + messageId);
+
+ System.out.println("vnf Response (before):" + notifyCallbackResponse);
+ System.out.println("vnf Response (after):" + updatedResponse);
+
+ Object vnfDelay = MockResource.getMockProperties().get("vnf_delay");
+ int delay = 300;
+ if (vnfDelay != null) {
+ delay = Integer.parseInt(vnfDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("VnfAdapterRollbackMockTransformer notficationUrl: " + notficationUrl + ":delay: " + delay);
+ CallbackResponseThread callbackResponseThread = new CallbackResponseThread(notficationUrl,updatedResponse, delay);
+ callbackResponseThread.start();
+
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(updatedResponse).withHeader("Content-Type", "text/xml")
+ .build();
+
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ LOGGER.debug("Exception :",e1);
+ }
+ System.out.println("Sending callback response to url: " + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ System.out.println("Successfully posted callback? Status: " + result.getStatus());
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ System.out.println("catch error in - request.post() ");
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.mso.bpmn.mock;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.openecomp.mso.logger.MsoLogger;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.common.FileSource;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.Request;
+import com.github.tomakehurst.wiremock.http.ResponseDefinition;
+
+import org.openecomp.mso.logger.MsoLogger;
+/**
+ * Please describe the VnfAdapterUpdateMockTransformer.java class
+ *
+ */
+public class VnfAdapterUpdateMockTransformer extends ResponseTransformer {
+
+ private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
+
+ private String notifyCallbackResponse;
+ private String requestId;
+ private String ackResponse;
+
+ public VnfAdapterUpdateMockTransformer() {
+ notifyCallbackResponse = FileUtil.readResourceFile("vnfAdapter/vnfUpdateSimResponse.xml");
+ }
+
+ public VnfAdapterUpdateMockTransformer(String requestId) {
+ this.requestId = requestId;
+ }
+
+
+ public String name() {
+ return "vnf-adapter-update-transformer";
+ }
+
+ @Override
+ public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition,
+ FileSource fileSource) {
+
+ String requestBody = request.getBodyAsString();
+
+ String notficationUrl = requestBody.substring(requestBody.indexOf("<notificationUrl>")+17, requestBody.indexOf("</notificationUrl>"));
+ String messageId = requestBody.substring(requestBody.indexOf("<messageId>")+11, requestBody.indexOf("</messageId>"));
+ String responseMessageId = "";
+ String updatedResponse = "";
+
+ try {
+ // try supplied response file (if any)
+ System.out.println(" Supplied fileName: " + responseDefinition.getBodyFileName());
+ ackResponse = FileUtil.readResourceFile("__files/" + responseDefinition.getBodyFileName());
+ notifyCallbackResponse = ackResponse;
+ responseMessageId = ackResponse.substring(ackResponse.indexOf("<messageId>")+11, ackResponse.indexOf("</messageId>"));
+ updatedResponse = ackResponse.replace(responseMessageId, messageId);
+ } catch (Exception ex) {
+ LOGGER.debug("Exception :",ex);
+ System.out.println(" ******* Use default response file in 'vnfAdapter/vnfUpdateSimResponse.xml'");
+ responseMessageId = notifyCallbackResponse.substring(notifyCallbackResponse.indexOf("<messageId>")+11, notifyCallbackResponse.indexOf("</messageId>"));
+ updatedResponse = notifyCallbackResponse.replace(responseMessageId, messageId);
+ }
+
+ System.out.println("response (mock) messageId : " + responseMessageId);
+ System.out.println("request (replacement) messageId: " + messageId);
+
+ System.out.println("vnf Response (before):" + notifyCallbackResponse);
+ System.out.println("vnf Response (after):" + updatedResponse);
+
+ Object vnfDelay = MockResource.getMockProperties().get("vnf_delay");
+ int delay = 300;
+ if (vnfDelay != null) {
+ delay = Integer.parseInt(vnfDelay.toString());
+ }
+
+ //Kick off callback thread
+ System.out.println("VnfAdapterUpdateMockTransformer notficationUrl: " + notficationUrl + ":delay: " + delay);
+ CallbackResponseThread callbackResponseThread = new CallbackResponseThread(notficationUrl,updatedResponse, delay);
+ callbackResponseThread.start();
+
+ return ResponseDefinitionBuilder
+ .like(responseDefinition).but()
+ .withStatus(200).withBody(updatedResponse).withHeader("Content-Type", "text/xml")
+ .build();
+
+ }
+
+ @Override
+ public boolean applyGlobally() {
+ return false;
+ }
+
+ private class CallbackResponseThread extends Thread {
+
+ private String callbackUrl;
+ private String payLoad;
+ private int delay;
+
+ public CallbackResponseThread(String callbackUrl, String payLoad, int delay) {
+ this.callbackUrl = callbackUrl;
+ this.payLoad = payLoad;
+ this.delay = delay;
+ }
+
+ public void run () {
+ try {
+ //Delay sending callback response
+ sleep(delay);
+ } catch (InterruptedException e1) {
+ LOGGER.debug("Exception :", e1);
+ }
+ System.out.println("Sending callback response to url: " + callbackUrl);
+ ClientRequest request = new ClientRequest(callbackUrl);
+ request.body("text/xml", payLoad);
+ //System.err.println(payLoad);
+ try {
+ ClientResponse result = request.post();
+ System.out.println("Successfully posted callback? Status: " + result.getStatus());
+ //System.err.println("Successfully posted callback:" + result.getStatus());
+ } catch (Exception e) {
+ System.out.println("catch error in - request.post() ");
+ LOGGER.debug("Exception :",e);
+ }
+ }
+
+ }
+}
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"\r
+ xmlns:v1="http://domain2.openecomp.org/workflow/sdnc/adapter/schema/v1">\r
+ <soapenv:Header />\r
+ <soapenv:Body>\r
+ <SDNCAdapterCallbackRequest\r
+ xmlns="http://domain2.openecomp.org/workflow/sdnc/adapter/schema/v1">\r
+ <CallbackHeader>\r
+ <RequestId>d325c9a7-84c0-4081-b979-9cc773a0976d</RequestId>\r
+ <ResponseCode>200</ResponseCode>\r
+ <ResponseMessage>OK</ResponseMessage>\r
+ </CallbackHeader>\r
+ <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><layer3-service-list\r
+ xmlns="com:att:sdnctl:l3api"><service-instance-id>0XX/VXXX/003717//Shakeout</service-instance-id><service-status><rpc-name>svc-topology-operation</rpc-name><rpc-action>delete</rpc-action><request-status>synccomplete</request-status><final-indicator>Y</final-indicator><l3sdn-action>DisconnectLayer3ServiceRequest</l3sdn-action><response-timestamp>2015-10-22T02:11:52.010Z</response-timestamp></service-status><service-data><svc-config-additional-data/></service-data></layer3-service-list>\r
+ </RequestData>\r
+ </SDNCAdapterCallbackRequest>\r
+ </soapenv:Body>\r
+</soapenv:Envelope>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
+<jboss-web>
+ <security-domain>other</security-domain>
+ <context-root>/msomock</context-root>
+</jboss-web>
\ No newline at end of file
+++ /dev/null
-# Copy this file to 'build.properties' and modify it to match your system
-# Alternatively, you can also copy it to '${user.home}/.camunda/build.properties'
-# to have a central configuration that works with all camunda BPM projects
-
-# Defines the deployment folder in a camunda BPM installation (backslashes need to be escaped or replaced by forward slashes).
-#deploy.jboss.dir=C:/camunda/camunda-bpm-jboss-7.3.0/server/jboss-as-${jboss-version}/standalone/deployments
-deploy.jboss.dir=C:/D2/jboss-ee/server/jboss-as-7.2.0.Final/standalone/deployments
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="urnMap-plugin" default="deploy.jboss">
-
- <property file="build.properties" />
- <property file="${user.home}/.camunda/build.properties" />
- <property name="target.dir" value="target" />
-
- <condition property="mvn.executable" value="mvn.bat" else="mvn">
- <os family="windows"/>
- </condition>
-
- <target name="deploy.jboss" depends="package.mvn, install.cockpit.plugin" description="Copies the cockit plugin to the deployment directory defined in '${basedir}/build.properties' or '${user.home}/.camunda/build.properties'" />
-
- <target name="deploy.tomcat" depends="package.mvn" description="Copies the cockpit plugin to the deployment directory defined in '${basedir}/build.properties' or '${user.home}/.camunda/build.properties'">
- <fail unless="deploy.tomcat.dir" message="No deployment folder has been configured. Please copy the file '${basedir}/build.properties.example' to '${basedir}/build.properties' or '${user.home}/.camunda/build.properties' and change it according to your environment." />
- <copy file="${target.dir}/${ant.project.name}.jar" todir="${deploy.tomcat.dir}/camunda/WEB-INF/lib" />
- <touch file="${deploy.tomcat.dir}/camunda/WEB-INF/web.xml"/>
- </target>
-
- <target name="package.mvn">
- <exec executable="${mvn.executable}" dir="." failonerror="true">
- <env key="MAVEN_OPTS" value="-Xmx1024m -Xms512m -DskipTests=true -Dmaven.test.skip=true" />
- <arg line="clean package" />
- </exec>
- </target>
-
- <target name="install.cockpit.plugin">
- <fail unless="deploy.jboss.dir" message="No deployment folder has been configured. Please copy the file '${basedir}/build.properties.example' to '${basedir}/build.properties' or '${user.home}/.camunda/build.properties' and change it according to your environment." />
- <path id="cockpit.file.id">
- <fileset dir="${deploy.jboss.dir}">
- <include name="camunda-webapp-*.war"/>
- </fileset>
- </path>
- <property name="cockpit.file" refid="cockpit.file.id"/>
- <war destfile="${cockpit.file}" update="true">
- <zipfileset file="${target.dir}/${ant.project.name}.jar" fullpath="WEB-INF/lib/${ant.project.name}.jar" />
- </war>
- </target>
-
- <target name="undeploy.jboss" description="Deletes the cockpit plugin from the deployment directory defined in '${basedir}/build.properties' or '${user.home}/.camunda/build.properties'">
- <path id="cockpit.file.id">
- <fileset dir="${deploy.jboss.dir}">
- <include name="camunda-webapp-*.war"/>
- </fileset>
- </path>
- <property name="cockpit.file" refid="cockpit.file.id"/>
- <basename property="cockpit.filename" file="${cockpit.file}"/>
- <move file="${cockpit.file}" todir="${java.io.tmpdir}"/>
- <zip destfile="${cockpit.file}">
- <zipfileset src="${java.io.tmpdir}/${cockpit.filename}">
- <exclude name="WEB-INF/lib/${ant.project.name}.jar"/>
- </zipfileset>
- </zip>
- </target>
-
- <target name="undeploy.tomcat" description="Deletes the cockpit plugin from the deployment directory defined in '${basedir}/build.properties' or '${user.home}/.camunda/build.properties'">
- <delete file="${deploy.tomcat.dir}/camunda/WEB-INF/lib/${ant.project.name}.jar" />
- </target>
-
-</project>
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\r
- <modelVersion>4.0.0</modelVersion>\r
-\r
- <parent>\r
- <groupId>org.openecomp.so</groupId>\r
- <artifactId>bpmn</artifactId>\r
- <version>1.1.0-SNAPSHOT</version>\r
- </parent>\r
-\r
- <groupId>org.openecomp.so</groupId>\r
- <artifactId>cockpit-urnmap-plugin</artifactId>\r
-\r
- <packaging>jar</packaging>\r
-\r
- <name>MSO URN Mapping Cockpit Plugin</name>\r
-\r
- <dependencies>\r
- <dependency>\r
- <groupId>org.camunda.bpm.webapp</groupId>\r
- <artifactId>camunda-webapp</artifactId>\r
- <classifier>classes</classifier>\r
- <version>${camunda.version}</version>\r
- <exclusions>\r
- <exclusion>\r
- <groupId>commons-fileupload</groupId>\r
- <artifactId>commons-fileupload</artifactId>\r
- </exclusion>\r
- </exclusions>\r
- </dependency>\r
- <dependency>\r
- <groupId>commons-fileupload</groupId>\r
- <artifactId>commons-fileupload</artifactId>\r
- <version>1.3.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.ws.rs</groupId>\r
- <artifactId>javax.ws.rs-api</artifactId>\r
- <version>2.0</version>\r
- </dependency>\r
- <!-- TODO Upate it to ee version -->\r
- <dependency>\r
- <groupId>org.camunda.bpm</groupId>\r
- <artifactId>camunda-engine</artifactId>\r
- <version>${camunda.version}</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.h2database</groupId>\r
- <artifactId>h2</artifactId>\r
- <scope>test</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>javax.servlet</groupId>\r
- <artifactId>javax.servlet-api</artifactId>\r
- <version>3.0.1</version>\r
- <scope>provided</scope>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.openecomp.so</groupId>\r
- <artifactId>common</artifactId>\r
- <version>${project.version}</version>\r
- <scope>compile</scope>\r
- </dependency>\r
- </dependencies>\r
-</project>\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap;\r
-\r
-import java.util.Arrays;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import org.camunda.bpm.cockpit.plugin.spi.impl.AbstractCockpitPlugin;\r
-import org.openecomp.camunda.bpmn.plugin.urnmap.resources.URNMapPluginRootResource;\r
-\r
- \r
-\r
-public class URNMapPlugin extends AbstractCockpitPlugin{\r
- public static final String ID = "urnMap-plugin";\r
- \r
- @Override\r
- public String getId() {\r
- return ID;\r
- }\r
-\r
- @Override\r
- public Set<Class<?>> getResourceClasses() {\r
- Set<Class<?>> classes = new HashSet<>();\r
-\r
- classes.add(URNMapPluginRootResource.class);\r
-\r
- return classes;\r
- }\r
-\r
- @Override\r
- public List<String> getMappingFiles() {\r
- return Arrays.asList("org/openecomp/camunda/bpm/plugin/urnmap/queries/urnMap.xml");\r
- }\r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.db;\r
-\r
-import org.camunda.bpm.engine.ProcessEngineConfiguration;\r
-import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;\r
-import org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration;\r
-import org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor;\r
-import org.camunda.bpm.engine.impl.interceptor.CommandInterceptor;\r
-import org.camunda.bpm.engine.impl.interceptor.LogInterceptor;\r
-import org.camunda.bpm.engine.impl.util.ReflectUtil;\r
-\r
-import java.io.InputStream;\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.List;\r
-\r
-public class MyBatisExtendedSessionFactory extends StandaloneProcessEngineConfiguration {\r
-\r
- private String resourceName;\r
-\r
- @Override\r
- protected void init() {\r
- throw new IllegalArgumentException(\r
- "Normal 'init' on process engine only used for extended MyBatis mappings is not allowed, please use 'initFromProcessEngineConfiguration'. You cannot construct a process engine with this configuration.");\r
- }\r
-\r
- /**\r
- * initialize the {@link ProcessEngineConfiguration} from an existing one,\r
- * just using the database settings and initialize the database / MyBatis\r
- * stuff.\r
- */\r
- public void initFromProcessEngineConfiguration(ProcessEngineConfigurationImpl processEngineConfiguration, String resourceName) {\r
- this.resourceName = resourceName;\r
-\r
- setDatabaseType(processEngineConfiguration.getDatabaseType());\r
- setDataSource(processEngineConfiguration.getDataSource());\r
- setDatabaseTablePrefix(processEngineConfiguration.getDatabaseTablePrefix());\r
-\r
- initDataSource();\r
- initCommandContextFactory();\r
- initTransactionFactory();\r
- initTransactionContextFactory();\r
- initCommandExecutors();\r
- initSqlSessionFactory();\r
- initIncidentHandlers();\r
- initIdentityProviderSessionFactory();\r
- initSessionFactories();\r
- }\r
-\r
- /**\r
- * In order to always open a new command context set the property\r
- * "alwaysOpenNew" to true inside the CommandContextInterceptor.\r
- *\r
- * If you execute the custom queries inside the process engine\r
- * (for example in a service task), you have to do this.\r
- */\r
- @Override\r
- protected Collection<? extends CommandInterceptor> getDefaultCommandInterceptorsTxRequired() {\r
- List<CommandInterceptor> defaultCommandInterceptorsTxRequired = new ArrayList<>();\r
- defaultCommandInterceptorsTxRequired.add(new LogInterceptor());\r
- defaultCommandInterceptorsTxRequired.add(new CommandContextInterceptor(commandContextFactory, this, true));\r
- return defaultCommandInterceptorsTxRequired;\r
- }\r
-\r
- @Override\r
- protected InputStream getMyBatisXmlConfigurationSteam() {\r
- return ReflectUtil.getResourceAsStream(resourceName);\r
- }\r
-\r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.db;\r
-\r
-import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;\r
-import org.camunda.bpm.engine.impl.interceptor.Command;\r
-\r
-/**\r
- * Helper to initialize a minimized process engine which does all the transaction and MyBatis mapping stuff for us\r
- * and can be used to execute queries.\r
- */\r
-public class MyBatisQueryCommandExecutor {\r
- \r
- private MyBatisExtendedSessionFactory myBatisExtendedSessionFactory;\r
-\r
- public MyBatisQueryCommandExecutor(ProcessEngineConfigurationImpl processEngineConfiguration, String mappingResourceName) {\r
- myBatisExtendedSessionFactory = new MyBatisExtendedSessionFactory();\r
- myBatisExtendedSessionFactory.initFromProcessEngineConfiguration(processEngineConfiguration, mappingResourceName);\r
- }\r
- \r
- public <T> T executeQueryCommand(Command<T> command) {\r
- return myBatisExtendedSessionFactory.getCommandExecutorTxRequired().execute(command);\r
- }\r
- \r
- \r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.db;\r
-\r
-public class URNData {\r
-\r
- private String URNName;\r
- private String URNValue;\r
- private String Ver_;\r
- public String getURNName() {\r
- return URNName;\r
- }\r
- public void setURNName(String uRNName) {\r
- URNName = uRNName;\r
- }\r
- public String getURNValue() {\r
- return URNValue;\r
- }\r
- public void setURNValue(String uRNValue) {\r
- URNValue = uRNValue;\r
- }\r
- public String getVer_() {\r
- return Ver_;\r
- }\r
- public void setVer_(String ver_) {\r
- Ver_ = ver_;\r
- }\r
- \r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.db;\r
-\r
-import java.util.List;\r
-\r
-import org.camunda.bpm.engine.ProcessEngines;\r
-import org.camunda.bpm.engine.impl.ProcessEngineImpl;\r
-import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;\r
-import org.camunda.bpm.engine.impl.interceptor.Command;\r
-import org.camunda.bpm.engine.impl.interceptor.CommandContext;\r
-\r
-public class URNService {\r
-\r
-\r
- public List<URNData> getProperties() {\r
- ProcessEngineImpl processEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();\r
- ProcessEngineConfigurationImpl processEngineConfiguration = processEngine.getProcessEngineConfiguration();\r
-\r
- MyBatisQueryCommandExecutor commandExecutor = new MyBatisQueryCommandExecutor(processEngineConfiguration, "mappings.xml");\r
- return commandExecutor.executeQueryCommand(new Command<List<URNData>>() {\r
-\r
- @SuppressWarnings("unchecked")\r
- @Override\r
- public List<URNData> execute(CommandContext commandContext) {\r
- return (List<URNData>) commandContext.getDbSqlSession().selectList("retrieveUrnKeyValuePair", null);\r
- }\r
- });\r
- }\r
-\r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.resources;\r
-\r
-import java.util.List;\r
-import java.util.StringTokenizer;\r
-\r
-import javax.ws.rs.GET;\r
-import javax.ws.rs.POST;\r
-import javax.ws.rs.PUT;\r
-\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-\r
-import org.camunda.bpm.cockpit.db.QueryParameters;\r
-import org.camunda.bpm.cockpit.plugin.resource.AbstractPluginResource;\r
-import org.openecomp.camunda.bpmn.plugin.urnmap.db.*;\r
-\r
-public class ProcessInstanceResource extends AbstractPluginResource {\r
-\r
- private static final Logger log = LoggerFactory.getLogger(ProcessInstanceResource.class);\r
-\r
- public ProcessInstanceResource(String engineName) {\r
- super(engineName);\r
- }\r
-\r
- @GET\r
- public List<URNData> getUrnDataMap() { \r
- List<URNData> list = getQueryService()\r
- .executeQuery(\r
- "cockpit.urnMap.retrieveUrnKeyValuePair",\r
- new QueryParameters<URNData>());\r
- \r
- log.info("urnmap-plugin project - Results Retrieved: ");\r
- log.info("URNName: " + " " + "URNValue: " );\r
- for(URNData d: list)\r
- {\r
- log.info( d.getURNName() + " " + d.getURNValue());\r
- }\r
- \r
- return list;\r
- }\r
- \r
- @PUT\r
- //public void insertNewRow(String key, String value) \r
- public void insertNewRow(String temp) \r
- { \r
- log.info("AddNewRow: XXXXXXXXXXXXXXXXX ---> " + temp);\r
- StringTokenizer st = new StringTokenizer(temp, "|");\r
- String key = "";\r
- String value = "";\r
- \r
- while(st.hasMoreTokens()) { \r
- key = st.nextToken(); \r
- value = st.nextToken(); \r
- log.info(key + "\t" + value); \r
- } \r
- \r
- log.info("AddNewRow: XXXXXXXXXXXXXXXXX ---> key: " + key + " , Value: " + value);\r
- URNData nRow = new URNData();\r
- nRow.setVer_("1"); \r
- nRow.setURNName(key);\r
- nRow.setURNValue(value);\r
- \r
- getQueryService().executeQuery("cockpit.urnMap.insertNewRow", nRow, URNData.class);\r
- \r
- log.info("AddNewRow: XXXXXX END XXXXXXXXXXX");\r
- }\r
- \r
- @POST\r
- public void getPersistData(URNData d) { \r
- \r
- log.info("getPersistData: UrnName: " + d.getURNName() + " , URNValue: " + d.getURNValue() );\r
- \r
- getQueryService().executeQuery("cockpit.urnMap.persistURNData", d, URNData.class);\r
- \r
- \r
- log.info("XXXXXXXXXX - END - XXXXXXXXXXXXXXX");\r
- }\r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.resources;\r
-\r
-import javax.ws.rs.Path;\r
-import javax.ws.rs.PathParam;\r
-\r
-import org.camunda.bpm.cockpit.plugin.resource.AbstractPluginRootResource;\r
-import org.openecomp.camunda.bpmn.plugin.urnmap.URNMapPlugin;\r
-\r
-@SuppressWarnings("deprecation")\r
-@Path("plugin/" + URNMapPlugin.ID)\r
-public class URNMapPluginRootResource extends AbstractPluginRootResource\r
-{\r
- public URNMapPluginRootResource() {\r
- super(URNMapPlugin.ID);\r
- }\r
-\r
- @Path("{engineName}/process-instance") \r
- public URNResource getProcessInstanceResource(@PathParam("engineName") String engineName) {\r
- return subResource(new URNResource(engineName), engineName);\r
- }\r
-}\r
+++ /dev/null
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP - SO\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.camunda.bpmn.plugin.urnmap.resources;\r
-/***\r
-import java.beans.Statement;\r
-import java.sql.DriverManager;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-*/\r
-import java.sql.Connection;\r
-import java.sql.PreparedStatement;\r
-import java.sql.ResultSet;\r
-import java.sql.SQLException;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.StringTokenizer;\r
-\r
-import javax.naming.Context;\r
-import javax.naming.InitialContext;\r
-import javax.sql.DataSource;\r
-import javax.ws.rs.GET;\r
-import javax.ws.rs.POST;\r
-import javax.ws.rs.PUT;\r
-\r
-import org.camunda.bpm.cockpit.db.QueryParameters;\r
-import org.camunda.bpm.cockpit.plugin.resource.AbstractCockpitPluginResource;\r
-\r
-\r
-//import org.camunda.bpm.cockpit.plugin.resource.AbstractPluginResource;\r
-import org.openecomp.camunda.bpmn.plugin.urnmap.db.URNData;\r
-import org.openecomp.mso.logger.MsoLogger;\r
-\r
-\r
-//public class ProcessInstanceResource extends AbstractPluginResource {\r
-public class URNResource extends AbstractCockpitPluginResource{\r
- public URNResource(String engineName) {\r
- super(engineName);\r
- }\r
- \r
- private Connection conn;\r
- private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);\r
- @GET\r
- public List<URNData> getUrnDataMap() \r
- { \r
- List<URNData> list = new ArrayList();\r
- PreparedStatement psData = null;\r
- try {\r
- \r
- conn = getDBConnection();\r
- psData = conn\r
- .prepareStatement("select * from MSO_URN_MAPPING order by NAME_");\r
- \r
- ResultSet r = psData.executeQuery();\r
- \r
- while(r.next()) \r
- {\r
- URNData d = new URNData();\r
- d.setURNName(r.getString("NAME_"));\r
- d.setURNValue(r.getString("VALUE_"));\r
- d.setVer_( r.getString("REV_"));\r
- \r
- list.add(d); \r
- }\r
- \r
- } catch (Exception e) \r
- {\r
- msoLogger.debug("Exception in getUrnDataMap ", e); \r
- } finally {\r
- if(psData != null){\r
- try {\r
- psData.close();\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the PreparedStatement: ", e);\r
- }\r
- }\r
- if(conn != null){\r
- try {\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the connection: ", e);\r
- }\r
- }\r
- }\r
- \r
- for(URNData d: list)\r
- {\r
- msoLogger.debug( d.getURNName() + " " + d.getURNValue());\r
- //msoLogger.debug("Started Executing " + getTaskName());\r
- msoLogger.debug("Started Executing " + d.getURNName() + " " + d.getURNValue());\r
- }\r
- \r
- return list;\r
- }\r
- \r
- public List<URNData> getUrnDataMapOLD() \r
- { \r
- \r
- List<URNData> list = getQueryService()\r
- .executeQuery("cockpit.urnMap.retrieveUrnKeyValuePair", new QueryParameters<URNData>());\r
- \r
- msoLogger.debug("urnmap-plugin project - Results Retrieved: ");\r
- msoLogger.debug("URNName: " + " " + "URNValue: " );\r
- \r
- for(URNData d: list)\r
- {\r
- msoLogger.debug( d.getURNName() + " " + d.getURNValue());\r
- }\r
- \r
- return list;\r
- }\r
- \r
- public Connection getDBConnection()\r
- {\r
- try {\r
- \r
- if(conn == null)\r
- {\r
- Context ctx = new InitialContext();\r
- DataSource ds = (DataSource)ctx.lookup("java:jboss/datasources/ProcessEngine");//jboss\r
- conn = ds.getConnection();\r
- \r
- } \r
- \r
- } catch (Exception e) \r
- {\r
- msoLogger.debug("Exception in DBConnection ", e);\r
- }\r
- \r
- return conn;\r
- }\r
- \r
- @PUT\r
- public void insertNewRow(String temp) \r
- { \r
- msoLogger.debug("AddNewRow: XXXXXXXXXXXXXXXXX ---> " + temp);\r
- msoLogger.debug("AddNewRow: EngineName ---> " + engineName);\r
- \r
- StringTokenizer st = new StringTokenizer(temp, "|");\r
- String key_ = "";\r
- String value_ = "";\r
- \r
- while(st.hasMoreTokens()) { \r
- key_ = st.nextToken(); \r
- value_ = st.nextToken(); \r
- msoLogger.debug(key_ + "\t" + value_); \r
- } \r
- \r
- msoLogger.debug("AddNewRow: XXXXXXXXXXXXXXXXX ---> key: " + key_ + " , Value: " + value_);\r
- final URNData nRow = new URNData();\r
- nRow.setVer_("1");\r
- PreparedStatement psData = null;\r
- \r
- msoLogger.debug("----------- START ----------------------");\r
- try {\r
- \r
- conn = getDBConnection();\r
- psData = conn\r
- .prepareStatement("Insert into MSO_URN_MAPPING values ('" + key_ + "', '" + value_ + "', '1')");\r
- \r
- psData.executeUpdate(); \r
- \r
- } catch (Exception e) \r
- {\r
- msoLogger.debug("Exception in insertNewRow ", e);\r
- }finally {\r
- if(psData != null){\r
- try {\r
- psData.close();\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the PreparedStatement: ", e);\r
- }\r
- }\r
- if(conn != null){\r
- try {\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the connection: ", e);\r
- }\r
- }\r
- }\r
- // getQueryService().executeQuery("cockpit.urnMap.insertNewRow", nRow, URNData.class);\r
- }\r
- \r
- @POST\r
- public void getPersistData(URNData d) { \r
- \r
- //getQueryService().executeQuery("cockpit.urnMap.persistURNData", d, URNData.class);\r
- PreparedStatement psData = null;\r
- try {\r
- \r
- conn = getDBConnection();\r
- psData = conn\r
- .prepareStatement("UPDATE MSO_URN_MAPPING set VALUE_ ='"+ d.getURNValue() + "' WHERE NAME_='" + d.getURNName() + "'");\r
- \r
- psData.executeUpdate();\r
- \r
- } catch (Exception e) \r
- {\r
- msoLogger.debug("Exception in PersistData ", e);\r
- }finally {\r
- if(psData != null){\r
- try {\r
- psData.close();\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the PreparedStatement: ", e);\r
- }\r
- }\r
- if(conn != null){\r
- try {\r
- conn.close();\r
- } catch (SQLException e) {\r
- msoLogger.debug("Exception while closing the connection: ", e);\r
- }\r
- }\r
- }\r
- \r
- }\r
-}\r
+++ /dev/null
-org.openecomp.camunda.bpm.plugin.urnmap.URNMapPlugin
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
- ============LICENSE_START=======================================================\r
- ECOMP MSO\r
- ================================================================================\r
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
- ================================================================================\r
- Licensed under the Apache License, Version 2.0 (the "License");\r
- you may not use this file except in compliance with the License.\r
- You may obtain a copy of the License at\r
- \r
- http://www.apache.org/licenses/LICENSE-2.0\r
- \r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
- ============LICENSE_END=========================================================\r
- -->\r
-\r
-\r
-<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">\r
-\r
-<configuration>\r
- <settings>\r
- <setting name="lazyLoadingEnabled" value="false" />\r
- </settings>\r
- <mappers>\r
- <mapper resource="org/openecomp/camunda/bpm/plugin/urnmap/queries/urnMap.xml" />\r
- </mappers>\r
-</configuration>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- ============LICENSE_START=======================================================
- ECOMP MSO
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. 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.
- ============LICENSE_END=========================================================
- -->
-
-
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="cockpit.urnMap">
- <resultMap id="urnDataMap" type="org.openecomp.camunda.bpm.plugin.urnmap.db.URNData">
- <result property="URNName" column="URNNAME" jdbcType="VARCHAR"/>
- <result property="URNValue" column="URNVALUE" jdbcType="VARCHAR" />
- </resultMap>
-
- <select id="retrieveUrnKeyValuePair" resultMap="urnDataMap">
- select NAME_ URNName, VALUE_ URNValue from MSO_URN_MAPPING
- </select>
-
-
- <!-- INSERT cockpit.InsertURNData keyProperty="NAME_" -->
- <resultMap id="insertNewRow" type="org.openecomp.camunda.bpm.plugin.urnmap.db.URNData">
- <result property="URNName" column="NAME_" jdbcType="VARCHAR" />
- <result property="URNValue" column="VALUE_" jdbcType="VARCHAR" />
- <result property="1" column="REV_" jdbcType="INTEGER"/>
- </resultMap>
-
- <insert id="insertNewRow" parameterType="org.openecomp.camunda.bpm.plugin.urnmap.db.URNData">
- insert into MSO_URN_MAPPING (NAME_, VALUE_, REV_)
- values (
- #{URNName}, #{URNValue}, 1
- )
- </insert>
-
-<!-- UPDATE cockpit.InsertURNData -->
- <resultMap id="saveURNMappingDataMap" type="org.openecomp.camunda.bpm.plugin.urnmap.db.URNData">
- <result property="URNName" column="NAME_" jdbcType="VARCHAR" />
- <result property="URNValue" column="VALUE_" jdbcType="VARCHAR" />
- <result property="1" column="REV_" jdbcType="INTEGER"/>
- </resultMap>
-
- <update id="persistURNData">
- update MSO_URN_MAPPING set
- NAME_ = #{URNName},
- VALUE_ = #{URNValue},
- REV_ = 1
- where NAME_=#{URNName}
-</update>
-</mapper>
+++ /dev/null
-<!--
- ============LICENSE_START=======================================================
- ECOMP MSO
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. 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.
- ============LICENSE_END=========================================================
- -->
-
-<div class="form-group container">
- <form novalidate="novalidate" class="simple-form" name="urnMapper">
- <div class="panel panel-default">
- <div class="panel-heading" style="padding:3px;background:#871020 !important;color:#fff"> <h3 style="margin:1px" class="heading">Process Engine - URN Mapping</h3></div>
- <div class="panel-body">
- <div class="well">
- <div class="input-group well" style="padding:5px">
- <input id="new_key" class="form-control input-md" placeholder="New URN Key" size="25" type="text" name="URNName" value="" ng-blur="enableAddRowBtn()">
- <span class="input-group-btn" style="width:0px;"></span>
- <input type="text" class="form-control input-md" size="55" style="margin-left:-1px" id="new_value" placeholder="New URN Value" name="URNValue" />
- <span class="input-group-btn" style="width:0px;"></span>
- <span class="input-group-btn">
- <button class="btn btn-primary" type="button" id="addRow_BTN" data-ng-click="addNewRow(); setTimeout( retrieveData(), 1000);" disabled data-original-title="" title="">Add!</button>
- </span>
- </div>
- <div>
- <table cellpadding="0" cellspacing="0" class="table responsive" widht="100%">
- <tbody>
- <tr data-ng-repeat="urnData in UrnDataMap">
- <td>
- <div class="input-group">
- <input id="{{ urnData.urnname }}_key" type="text" style="border:0px solid #bfbfbf" size="25" class="form-control input-md" ng-blur="SaveRow( urnData )" value="{{ urnData.urnName }}" data-ng-model= "urnData.urnname" data-ng-change="enableButton(urnData)"/>
- <span class="input-group-btn" style="width:0px;"></span>
- <input id="{{ urnData.urnname }}_value" type="text" style="border:0px solid #dfdfdf;border-left:1px solid #bfbfbf" size="55" class="form-control input-md" ng-blur="SaveRow( urnData )" value="{{ urnData.urnvalue }}" data-ng-model="urnData.urnvalue" data-ng-change="enableButton(urnData)"/>
- <span class="input-group-btn">
- <button disabled="true" class="btn btn-primary" type="button" id="btn_{{ urnData.urnname }}_key" data-ng-click="SaveRow( urnData ); setTimeout( retrieveData(), 1000);">
- <span class="glyphicon glyphicon-floppy-disk"></span>
- </button>
- </span>
- </div><!-- /input-group -->
- </td>
- <!--
- <td><button id="btn_{{ urnData.urnname }}_key" data-ng-click="SaveRow( urnData )" disabled>SaveRecord</button> </td>
- -->
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- </div>
- </form>
-</div>
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. 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.
- * ============LICENSE_END=========================================================
- */
-
-define(['angular'], function(angular) {
-
- var DashboardController = ["$scope", "$http", "Uri", function($scope, $http, Uri) {
-
- $http.get(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"))
- .success(function(data) {
- $scope.UrnDataMap = data;
- });
-
- //enable saveRow button
- $scope.enableButton=function(urnData)
- {
- document.getElementById("btn_" + urnData.urnname + "_key").disabled = false;
- };
-
- $scope.enableAddRowBtn=function()
- {
- if(document.getElementById("new_key").value.trim().length >0)
- document.getElementById("addRow_BTN").disabled = false;
- else
- document.getElementById("addRow_BTN").disabled = true;
- };
-
-
- $scope.addNewRow = function()
- {
- var newKey = document.getElementById("new_key").value.trim();
- var newValue = document.getElementById("new_value").value.trim();
- var x;
-
- for (var i=0;i<$scope.UrnDataMap.length;i++)
- {
- var n = $scope.UrnDataMap[i].urnname.localeCompare(newKey);
- if(n == 0){
- x = "match";
- }
- }
-
- if(Boolean(x))
- {
- alert("URN Name already exists, please check the KEY!");
- }
- else
- {
- if(newKey.length >0 )
- {
-
- var temp = newKey + "|" + newValue;
-
- $http.put(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"), temp);
-
- document.getElementById("new_key").value = "";
- document.getElementById("new_value").value = "";
-
- }
-
- }
- //this.enableAddRowBtn;
- document.getElementById("addRow_BTN").disabled = true;
-
- $http.get(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"))
- .success(function(data) {
- $scope.UrnDataMap = data;
- });
-
-
- }
-
- $scope.retrieveData = function() {
-
- $http.get(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"))
- .success(function(data) {
- $scope.UrnDataMap = data;
- });
- }
-
- $scope.SaveRow = function(user)
- {
- $http.post(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"), user);
-
- document.getElementById("btn_" + user.urnname + "_key").disabled = true;
- document.getElementById(user.urnname + "_status").style.display = "";
- this.enableAddRowBtn;
-
- $http.get(Uri.appUri("plugin://urnMap-plugin/:engine/process-instance"))
- .success(function(data) {
- $scope.UrnDataMap = data;
- });
-
- };
- }];
-
- var Configuration = ['ViewsProvider', function(ViewsProvider) {
-
- ViewsProvider.registerDefaultView('cockpit.dashboard', {
- id: 'process-definitions',
- label: 'Deployed Processes',
- url: 'plugin://urnMap-plugin/static/app/dashboard.html',
- controller: DashboardController,
- // make sure we have a higher priority than the default plugin
- priority: 12
- });
- }];
-//START
-//END
-
- var ngModule = angular.module('cockpit.plugin.urnMap-plugin', []);
-
- ngModule.config(Configuration);
-
- return ngModule;
-});
+++ /dev/null
-# Client side assets of the urnMap-plugin
\ No newline at end of file
<modules>
<module>MSOCoreBPMN</module>
- <!--<module>MSOMockServer</module> -->
+ <module>MSOMockServer</module>
<module>MSORESTClient</module>
<module>MSOCommonBPMN</module>
<module>MSOInfrastructureBPMN</module>
- <module>MSOURN-plugin</module>
<module>MSOCockpit</module>
</modules>