summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extra/docker/clamp/clamp.env5
-rw-r--r--extra/sql/bulkload/clds-create-db-objects.sql7
-rw-r--r--pom.xml85
-rw-r--r--src/main/java/org/onap/clamp/clds/Application.java15
-rw-r--r--src/main/java/org/onap/clamp/clds/camel/CamelProxy.java67
-rw-r--r--src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java36
-rw-r--r--src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java36
-rw-r--r--src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java30
-rw-r--r--src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java30
-rw-r--r--src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java28
-rw-r--r--src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java29
-rw-r--r--src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java29
-rw-r--r--src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java92
-rw-r--r--src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java32
-rw-r--r--src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java38
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java38
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java88
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java97
-rw-r--r--src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java84
-rw-r--r--src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java59
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java67
-rw-r--r--src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java15
-rw-r--r--src/main/java/org/onap/clamp/clds/service/CldsService.java57
-rw-r--r--src/main/java/org/onap/clamp/clds/service/CldsUser.java7
-rw-r--r--src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java (renamed from src/main/java/org/onap/clamp/clds/service/JerseyConfig.java)17
-rw-r--r--src/main/java/org/onap/clamp/clds/util/LogMessages.java (renamed from src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java)31
-rw-r--r--src/main/resources/META-INF/processes.xml37
-rw-r--r--src/main/resources/application.properties29
-rw-r--r--src/main/resources/bpmn/clds-process-action.bpmn384
-rw-r--r--src/main/resources/clds/camel/flexible-flow.xml36
-rw-r--r--src/main/resources/clds/clds-reference.properties6
-rw-r--r--src/main/resources/clds/clds-users.json3
-rw-r--r--src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java2
-rw-r--r--src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java39
-rw-r--r--src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java5
-rw-r--r--src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java26
-rw-r--r--src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java9
-rw-r--r--src/test/java/org/onap/clamp/clds/it/RefPropItCase.java5
-rw-r--r--src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java60
-rw-r--r--src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java106
-rw-r--r--src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java23
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java11
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java46
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java14
-rw-r--r--src/test/resources/application-no-camunda.properties35
-rw-r--r--src/test/resources/clds/clds-reference.properties30
-rw-r--r--src/test/resources/example/model-properties/custom/modelBpmn.json (renamed from src/test/resources/example/modelBpmnProp.json)0
-rw-r--r--src/test/resources/example/model-properties/custom/modelBpmnProperties.json248
-rw-r--r--src/test/resources/example/model-properties/holmes/modelBpmnProperties.json7
-rw-r--r--src/test/resources/example/model-properties/modelBpmn.json26
-rw-r--r--src/test/resources/example/model-properties/modelBpmnProp.json108
-rw-r--r--src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json116
-rw-r--r--src/test/resources/example/model-properties/policy/modelBpmn.json (renamed from src/test/resources/example/modelBpmnPropForPolicy.json)0
-rw-r--r--src/test/resources/example/model-properties/policy/modelBpmnProperties.json (renamed from src/test/resources/example/modelProp.json)0
-rw-r--r--src/test/resources/example/model-properties/tca/modelBpmnProperties.json11
-rw-r--r--src/test/resources/example/modelPropForPolicy.json432
-rw-r--r--src/test/resources/example/sdc/expected-result/all-sdc-services.json6
-rw-r--r--src/test/resources/example/tca-policy-req/blueprint-expected.yaml20
-rw-r--r--src/test/resources/example/tca-policy-req/blueprint-input.yaml33
-rw-r--r--src/test/resources/example/tca-policy-req/prop-text.json1
-rw-r--r--src/test/resources/https/https-test.properties35
61 files changed, 1081 insertions, 1987 deletions
diff --git a/extra/docker/clamp/clamp.env b/extra/docker/clamp/clamp.env
index e5936e359..41585aba1 100644
--- a/extra/docker/clamp/clamp.env
+++ b/extra/docker/clamp/clamp.env
@@ -1 +1,4 @@
-SPRING_APPLICATION_JSON={"spring.datasource.camunda.url":"jdbc:mariadb:sequential://db:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647","spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"} \ No newline at end of file
+SPRING_APPLICATION_JSON={"spring.datasource.cldsdb.url":"jdbc:mariadb:sequential://db:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647",
+"org.onap.clamp.config.files.cldsPolicyConfig":"classpath:/clds/clds-policy-config.properties",
+"org.onap.clamp.config.files.cldsReference":"classpath:/clds/clds-reference.properties"
+} \ No newline at end of file
diff --git a/extra/sql/bulkload/clds-create-db-objects.sql b/extra/sql/bulkload/clds-create-db-objects.sql
index 3312daf56..78a1f7a6c 100644
--- a/extra/sql/bulkload/clds-create-db-objects.sql
+++ b/extra/sql/bulkload/clds-create-db-objects.sql
@@ -2,13 +2,6 @@
# Create CLDS database objects (tables, etc.)
#
#
-CREATE DATABASE `camundabpm`;
-USE `camundabpm`;
-DROP USER 'camunda';
-CREATE USER 'camunda';
-GRANT ALL on camundabpm.* to 'camunda' identified by 'ndMSpw4CAM' with GRANT OPTION;
-FLUSH PRIVILEGES;
-
CREATE DATABASE `cldsdb4`;
USE `cldsdb4`;
DROP USER 'clds';
diff --git a/pom.xml b/pom.xml
index bb2534d3f..b0890a57f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,12 +66,13 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<docker.mariadb.port.host>3306</docker.mariadb.port.host>
+ <docker.http-cache.port.host>2080</docker.http-cache.port.host>
<project.scm.id>git-server</project.scm.id>
<java.version>1.8</java.version>
<eelf.core.version>1.0.0</eelf.core.version>
<camel.version>2.20.1</camel.version>
- <springboot.version>1.5.9.RELEASE</springboot.version>
+ <springboot.version>1.5.10.RELEASE</springboot.version>
<sonar.language>java</sonar.language>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@ -85,6 +86,8 @@
<skip.docker.build>true</skip.docker.build>
<skip.docker.push>true</skip.docker.push>
<skip.staging.artifacts>false</skip.staging.artifacts>
+ <http.proxy></http.proxy>
+
</properties>
<distributionManagement>
@@ -153,14 +156,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
- <!-- Camunda BOM -->
- <dependency>
- <groupId>org.camunda.bpm</groupId>
- <artifactId>camunda-bom</artifactId>
- <version>7.6.0</version>
- <scope>import</scope>
- <type>pom</type>
- </dependency>
<!-- Camel BOM -->
<dependency>
<groupId>org.apache.camel</groupId>
@@ -182,7 +177,6 @@
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
-
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -190,7 +184,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-cxf-starter</artifactId>
+ <artifactId>camel-servlet-starter</artifactId>
</dependency>
<!-- Spring famework -->
<dependency>
@@ -202,8 +196,9 @@
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jersey</artifactId>
+ <groupId>com.paypal.springboot</groupId>
+ <artifactId>resteasy-spring-boot-starter</artifactId>
+ <version>2.3.4-RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
@@ -221,18 +216,28 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.vaadin.external.google</groupId>
+ <artifactId>android-json</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Others dependencies -->
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>1.2.3</version>
</dependency>
-
- <!-- For CAmunda -->
<dependency>
- <groupId>org.camunda.bpm.extension.springboot</groupId>
- <artifactId>camunda-bpm-spring-boot-starter</artifactId>
- <version>2.0.0</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.2.3</version>
</dependency>
<dependency>
- <groupId>org.camunda.bpm.extension.springboot</groupId>
- <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
- <version>2.0.0</version>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
@@ -266,11 +271,6 @@
<artifactId>junit</artifactId>
</dependency>
<dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <version>1.9.5</version>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
@@ -770,13 +770,42 @@
</ports>
</run>
</image>
+ <image>
+ <name>python:2</name>
+ <alias>python</alias>
+ <run>
+ <hostname>python</hostname>
+ <volumes>
+ <bind>
+ <volume>${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app</volume>
+ <volume>${project.basedir}/src/test/resources/http-cache/sdc-example/:/usr/src/http-cache-app/data-cache</volume>
+ </bind>
+ </volumes>
+ <wait>
+ <tcp>
+ <ports>
+ <port>8080</port>
+ </ports>
+ <mode>direct</mode>
+ </tcp>
+ <time>120000</time>
+ </wait>
+ <ports>
+ <port>${docker.http-cache.port.host}:8080</port>
+ </ports>
+ <workingDir>/usr/src/http-cache-app</workingDir>
+ <cmd>
+ <shell>./start_http_cache.sh ${http.proxy}</shell>
+ </cmd>
+ </run>
+ </image>
</images>
<skip>${skipITs}</skip>
</configuration>
<executions>
<execution>
- <id>mariadb-start-for-it</id>
+ <id>docker-start-for-it</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
@@ -786,7 +815,7 @@
</configuration>
</execution>
<execution>
- <id>mariadb-stop-for-it</id>
+ <id>docker-stop-for-it</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java
index 2727535e4..281a87ca5 100644
--- a/src/main/java/org/onap/clamp/clds/Application.java
+++ b/src/main/java/org/onap/clamp/clds/Application.java
@@ -26,6 +26,7 @@ package org.onap.clamp.clds;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import org.apache.camel.component.servlet.CamelHttpTransportServlet;
import org.apache.catalina.connector.Connector;
import org.onap.clamp.clds.model.prop.Holmes;
import org.onap.clamp.clds.model.prop.ModelProperties;
@@ -41,6 +42,7 @@ import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -89,6 +91,19 @@ public class Application extends SpringBootServletInitializer {
}
/**
+ * This method is used to declare the camel servlet.
+ *
+ * @return A servlet bean
+ */
+ @Bean
+ public ServletRegistrationBean camelServletRegistrationBean() {
+ ServletRegistrationBean registration = new ServletRegistrationBean(new CamelHttpTransportServlet(),
+ "/restservices/clds/v2");
+ registration.setName("CamelServlet");
+ return registration;
+ }
+
+ /**
* This method is used by Spring to create the servlet container factory.
*
* @return The TomcatEmbeddedServletContainerFactory just created
diff --git a/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java
new file mode 100644
index 000000000..66cd1f5a9
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/camel/CamelProxy.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2018 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.camel;
+
+import org.apache.camel.ExchangeProperty;
+
+/**
+ * This interface describes the CamelProxy parameters that must be passed to the
+ * Camel flow.
+ */
+public interface CamelProxy {
+
+ /**
+ * This method is called when invoking a camel flow.
+ *
+ * @param actionCommand
+ * The action coming from the Clamp UI (like SUBMIT, UPDATE,
+ * DELETE, ...)
+ * @param modelProperties
+ * The Model properties created based on the BPMN Json and
+ * Properties Json
+ * @param modelBpmnProperties
+ * The Json with all the properties describing the flow
+ * @param modelName
+ * The model name
+ * @param controlName
+ * The control loop name
+ * @param docText
+ * The Global properties JSON containing YAML (coming from CLamp
+ * template)
+ * @param isTest
+ * Is a test or not (flag coming from the UI)
+ * @param userId
+ * The user ID coming from the UI
+ * @param isInsertTestEvent
+ * Is a test or not (flag coming from the UI)
+ * @return A string containing the result of the Camel flow execution
+ */
+ String submit(@ExchangeProperty("actionCd") String actionCommand,
+ @ExchangeProperty("modelProp") String modelProperties,
+ @ExchangeProperty("modelBpmnProp") String modelBpmnProperties,
+ @ExchangeProperty("modelName") String modelName, @ExchangeProperty("controlName") String controlName,
+ @ExchangeProperty("docText") String docText, @ExchangeProperty("isTest") boolean isTest,
+ @ExchangeProperty("userid") String userId,
+ @ExchangeProperty("isInsertTestEvent") boolean isInsertTestEvent);
+}
diff --git a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
index 4886b0de0..dcc318930 100644
--- a/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/CldsEventDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,40 +26,44 @@ package org.onap.clamp.clds.client;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.dao.CldsDao;
import org.onap.clamp.clds.model.CldsEvent;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Create CLDS Event.
*/
-public class CldsEventDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsEventDelegate.class);
+@Component
+public class CldsEventDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsEventDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private CldsDao cldsDao;
+ private CldsDao cldsDao;
/**
* Insert event using process variables.
*
- * @param execution
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) {
- String controlName = (String) execution.getVariable("controlName");
- String actionCd = (String) execution.getVariable("actionCd");
- String actionStateCd = (String) execution.getVariable("actionStateCd");
+ @Handler
+ public void execute(Exchange camelExchange) {
+ String controlName = (String) camelExchange.getProperty("controlName");
+ String actionCd = (String) camelExchange.getProperty("actionCd");
+ String actionStateCd = (String) camelExchange.getProperty("actionStateCd");
// Flag indicate whether it is triggered by Validation Test button from
// UI
- boolean isTest = (boolean) execution.getVariable("isTest");
- boolean isInsertTestEvent = (boolean) execution.getVariable("isInsertTestEvent");
- String userid = (String) execution.getVariable("userid");
+ boolean isTest = (boolean) camelExchange.getProperty("isTest");
+ boolean isInsertTestEvent = (boolean) camelExchange.getProperty("isInsertTestEvent");
+ String userid = (String) camelExchange.getProperty("userid");
// do not insert events for test actions unless flag set to insert them
if (!isTest || isInsertTestEvent) {
// won't really have userid here...
- CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, execution.getProcessInstanceId());
+ CldsEvent.insEvent(cldsDao, controlName, userid, actionCd, actionStateCd, camelExchange.getExchangeId());
}
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
index b8863e026..6053a0de9 100644
--- a/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/DcaeDispatcherServices.java
@@ -35,24 +35,26 @@ import org.onap.clamp.clds.exception.DcaeDeploymentException;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.onap.clamp.clds.util.LoggingUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* This class implements the communication with DCAE for the service
* deployments.
- *
*/
+@Component
public class DcaeDispatcherServices {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(DcaeDispatcherServices.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeDispatcherServices.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private RefProp refProp;
- private static final String STATUS_URL_LOG = "Status URL extracted: ";
- private static final String DCAE_URL_PREFIX = "/dcae-deployments/";
- private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL";
- public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";
- private static final String DCAE_LINK_FIELD = "links";
- private static final String DCAE_STATUS_FIELD = "status";
+ private RefProp refProp;
+ private static final String STATUS_URL_LOG = "Status URL extracted: ";
+ private static final String DCAE_URL_PREFIX = "/dcae-deployments/";
+ private static final String DCAE_URL_PROPERTY_NAME = "DCAE_DISPATCHER_URL";
+ private static final String DCAE_REQUEST_FAILED_LOG = "RequestFailed - responseStr=";
+ public static final String DCAE_REQUESTID_PROPERTY_NAME = "dcae.header.requestId";
+ private static final String DCAE_LINK_FIELD = "links";
+ private static final String DCAE_STATUS_FIELD = "status";
/**
* Delete the deployment on DCAE.
@@ -76,7 +78,7 @@ public class DcaeDispatcherServices {
LoggingUtils.setResponseContext("0", "Delete deployments success", this.getClass().getName());
return statusUrl;
} catch (Exception e) {
- //Log StatusCode during exception in metrics log
+ // Log StatusCode during exception in metrics log
LoggingUtils.setResponseContext("900", "Delete deployments failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Delete deployments error");
logger.error("Exception occurred during Delete Deployment Operation with DCAE", e);
@@ -93,7 +95,6 @@ public class DcaeDispatcherServices {
* @param statusUrl
* The URL provided by a previous DCAE Query
* @return The status
- *
*/
public String getOperationStatus(String statusUrl) {
// Assigning processing status to monitor operation status further
@@ -111,7 +112,7 @@ public class DcaeDispatcherServices {
LoggingUtils.setResponseContext("0", "Get operation status success", this.getClass().getName());
opStatus = status;
} catch (Exception e) {
- //Log StatusCode during exception in metrics log
+ // Log StatusCode during exception in metrics log
LoggingUtils.setResponseContext("900", "Get operation status failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Get operation status error");
logger.error("Exception occurred during getOperationStatus Operation with DCAE", e);
@@ -124,7 +125,6 @@ public class DcaeDispatcherServices {
/**
* This method send a getDeployments operation to DCAE.
- *
*/
public void getDeployments() {
Date startTime = new Date();
@@ -134,7 +134,7 @@ public class DcaeDispatcherServices {
DcaeHttpConnectionManager.doDcaeHttpQuery(url, "GET", null, null);
LoggingUtils.setResponseContext("0", "Get deployments success", this.getClass().getName());
} catch (Exception e) {
- //Log StatusCode during exception in metrics log
+ // Log StatusCode during exception in metrics log
LoggingUtils.setResponseContext("900", "Get deployments failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Get deployments error");
logger.error("Exception occurred during getDeployments Operation with DCAE", e);
@@ -174,7 +174,7 @@ public class DcaeDispatcherServices {
LoggingUtils.setResponseContext("0", "Create new deployment failed", this.getClass().getName());
return statusUrl;
} catch (Exception e) {
- //Log StatusCode during exception in metrics log
+ // Log StatusCode during exception in metrics log
LoggingUtils.setResponseContext("900", "Create new deployment failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Create new deployment error");
logger.error("Exception occurred during createNewDeployment Operation with DCAE", e);
@@ -212,7 +212,7 @@ public class DcaeDispatcherServices {
LoggingUtils.setResponseContext("0", "Delete existing deployment success", this.getClass().getName());
return statusUrl;
} catch (Exception e) {
- //Log StatusCode during exception in metrics log
+ // Log StatusCode during exception in metrics log
LoggingUtils.setResponseContext("900", "Delete existing deployment failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Delete existing deployment error");
logger.error("Exception occurred during deleteExistingDeployment Operation with DCAE", e);
diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
index 94ebacae5..4dfe089f9 100644
--- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
@@ -50,10 +50,12 @@ import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.onap.clamp.clds.util.LoggingUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* This class implements the communication with DCAE for the service inventory.
*/
+@Component
public class DcaeInventoryServices {
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);
@@ -107,12 +109,12 @@ public class DcaeInventoryServices {
dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION);
LoggingUtils.setResponseContext("0", "Set inventory success", this.getClass().getName());
} catch (JsonProcessingException e) {
- LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());
- LoggingUtils.setErrorContext("900", "Set inventory error");
+ LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());
+ LoggingUtils.setErrorContext("900", "Set inventory error");
logger.error("Error during JSON decoding", e);
} catch (IOException ex) {
- LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());
- LoggingUtils.setErrorContext("900", "Set inventory error");
+ LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());
+ LoggingUtils.setErrorContext("900", "Set inventory error");
logger.error("Error during DCAE communication", ex);
} finally {
LoggingUtils.setTimeContext(startTime, new Date());
@@ -209,7 +211,7 @@ public class DcaeInventoryServices {
* The vf UUID
* @return The DCAE inventory type id
*/
- public String createUpdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,
+ public String createupdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,
String asdcServiceId, String asdcResourceId) {
Date startTime = new Date();
LoggingUtils.setTargetContext("DCAE", "createDCAEServiceType");
@@ -237,20 +239,22 @@ public class DcaeInventoryServices {
Object obj0 = parser.parse(responseStr);
JSONObject jsonObj = (JSONObject) obj0;
typeId = (String) jsonObj.get("typeId"); // need to save this
- // as
- // service_type_id
- // in model table
+ // as
+ // service_type_id
+ // in model table
} catch (IOException | ParseException e) {
logger.error("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e);
throw new BadRequestException("Exception occurred during createupdateDCAEServiceType Operation with DCAE",
e);
} finally {
- if(typeId != null) {
- LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success", this.getClass().getName());
- } else {
- LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed", this.getClass().getName());
+ if (typeId != null) {
+ LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success",
+ this.getClass().getName());
+ } else {
+ LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed",
+ this.getClass().getName());
LoggingUtils.setErrorContext("900", "Create update DCAE ServiceType error");
- }
+ }
LoggingUtils.setTimeContext(startTime, new Date());
metricsLogger.info("createupdateDCAEServiceType complete");
}
diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
index aaa4a2c06..34655986d 100644
--- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,41 +28,45 @@ import com.att.eelf.configuration.EELFManager;
import java.util.UUID;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.prop.Holmes;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Send Holmes info to policy api.
*/
-public class HolmesPolicyDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class);
+@Component
+public class HolmesPolicyDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
/**
* Perform activity. Send Holmes info to policy api.
*
- * @param execution
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) {
+ @Handler
+ public void execute(Exchange camelExchange) {
String holmesPolicyRequestUuid = UUID.randomUUID().toString();
- execution.setVariable("holmesPolicyRequestUuid", holmesPolicyRequestUuid);
- ModelProperties prop = ModelProperties.create(execution);
+ camelExchange.setProperty("holmesPolicyRequestUuid", holmesPolicyRequestUuid);
+ ModelProperties prop = ModelProperties.create(camelExchange);
Holmes holmes = prop.getType(Holmes.class);
if (holmes.isFound()) {
String responseMessage = policyClient.sendBasePolicyInOther(formatHolmesConfigBody(prop, holmes),
holmes.getConfigPolicyName(), prop, holmesPolicyRequestUuid);
if (responseMessage != null) {
- execution.setVariable("holmesPolicyResponseMessage", responseMessage.getBytes());
+ camelExchange.setProperty("holmesPolicyResponseMessage", responseMessage.getBytes());
}
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
index 72db32852..28da14851 100644
--- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,34 +26,34 @@ package org.onap.clamp.clds.client;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import java.io.IOException;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.prop.Holmes;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Delete Holmes Policy via policy api.
*/
-public class HolmesPolicyDeleteDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(HolmesPolicyDeleteDelegate.class);
+@Component
+public class HolmesPolicyDeleteDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(HolmesPolicyDeleteDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
/**
* Perform activity. Delete Holmes Policy via policy api.
*
- * @param execution
- * @throws IOException
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) {
- ModelProperties prop = ModelProperties.create(execution);
+ @Handler
+ public void execute(Exchange camelExchange) {
+ ModelProperties prop = ModelProperties.create(camelExchange);
Holmes holmes = prop.getType(Holmes.class);
if (holmes.isFound()) {
prop.setCurrentModelElementId(holmes.getId());
diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
index e2d16c56c..77d7680bb 100644
--- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDelegate.java
@@ -29,8 +29,8 @@ import com.att.eelf.configuration.EELFManager;
import java.io.UnsupportedEncodingException;
import java.util.Map;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.OperationalPolicyReq;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.prop.ModelProperties;
@@ -41,41 +41,42 @@ import org.onap.clamp.clds.util.LoggingUtils;
import org.onap.policy.api.AttributeType;
import org.onap.policy.controlloop.policy.builder.BuilderException;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Send Operational Policy info to policy api. It uses the policy code to define
* the model and communicate with it. See also the PolicyClient class.
- *
*/
-public class OperationalPolicyDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(OperationalPolicyDelegate.class);
+@Component
+public class OperationalPolicyDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(OperationalPolicyDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
/**
* Automatically injected by Spring, define in CldsConfiguration as a bean.
*/
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
/**
* Automatically injected by Spring, define in CldsConfiguration as a bean.
*/
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
/**
* Perform activity. Send Operational Policy info to policy api.
*
- * @param execution
- * The DelegateExecution
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
* @throws BuilderException
* In case of issues with OperationalPolicyReq
* @throws UnsupportedEncodingException
* In case of issues with the Charset encoding
*/
- @Override
- public void execute(DelegateExecution execution) throws BuilderException, UnsupportedEncodingException {
+ @Handler
+ public void execute(Exchange camelExchange) throws BuilderException, UnsupportedEncodingException {
String responseMessage = null;
- ModelProperties prop = ModelProperties.create(execution);
+ ModelProperties prop = ModelProperties.create(camelExchange);
Policy policy = prop.getType(Policy.class);
if (policy.isFound()) {
for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
@@ -84,7 +85,7 @@ public class OperationalPolicyDelegate implements JavaDelegate {
responseMessage = policyClient.sendBrmsPolicy(attributes, prop, LoggingUtils.getRequestId());
}
if (responseMessage != null) {
- execution.setVariable("operationalPolicyResponseMessage", responseMessage.getBytes());
+ camelExchange.setProperty("operationalPolicyResponseMessage", responseMessage.getBytes());
}
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
index 2bca639e1..4dd204080 100644
--- a/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/OperationalPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,35 +26,36 @@ package org.onap.clamp.clds.client;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import java.io.IOException;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.prop.Policy;
import org.onap.clamp.clds.model.prop.PolicyChain;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Delete Operational Policy via policy api.
*/
-public class OperationalPolicyDeleteDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance()
+@Component
+public class OperationalPolicyDeleteDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance()
.getLogger(OperationalPolicyDeleteDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
/**
* Perform activity. Delete Operational Policy via policy api.
*
- * @param execution
- * @throws IOException
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) {
- ModelProperties prop = ModelProperties.create(execution);
+ @Handler
+ public void execute(Exchange camelExchange) {
+ ModelProperties prop = ModelProperties.create(camelExchange);
Policy policy = prop.getType(Policy.class);
prop.setCurrentModelElementId(policy.getId());
String responseMessage = "";
@@ -64,7 +65,7 @@ public class OperationalPolicyDeleteDelegate implements JavaDelegate {
responseMessage = policyClient.deleteBrms(prop);
}
if (responseMessage != null) {
- execution.setVariable("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
+ camelExchange.setProperty("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
}
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
index b582349f6..e21bfce41 100644
--- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,82 +26,88 @@ package org.onap.clamp.clds.client;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
+import java.security.GeneralSecurityException;
import java.util.List;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
+import org.apache.commons.codec.DecoderException;
import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
import org.onap.clamp.clds.client.req.sdc.SdcReq;
import org.onap.clamp.clds.model.DcaeEvent;
+import org.onap.clamp.clds.model.prop.Global;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Send control loop model to dcae proxy.
*/
-public class SdcSendReqDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
+@Component
+public class SdcSendReqDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSendReqDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private SdcReq sdcReq;
+ private SdcCatalogServices sdcCatalogServices;
@Autowired
- private RefProp refProp;
+ private SdcReq sdcReq;
@Autowired
- private SdcCatalogServices sdcCatalogServices;
- private String baseUrl;
- private String artifactType;
- private String locationArtifactType;
- private String artifactLabel;
- private String locationArtifactLabel;
+ private RefProp refProp;
/**
* Perform activity. Send to sdc proxy.
*
- * @param execution
+ * @param camelExchange
+ * The camel object that contains all fields
+ * @throws DecoderException
+ * In case of issues with password decryption
+ * @throws GeneralSecurityException
+ * In case of issues with password decryption
+ * @throws IOException
+ * In case of issues with file opening
*/
- @Override
- public void execute(DelegateExecution execution) throws Exception {
- String userid = (String) execution.getVariable("userid");
- logger.info("userid=" + userid);
- String docText = new String((byte[]) execution.getVariable("docText"));
- String artifactName = (String) execution.getVariable("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
- execution.setVariable("artifactName", artifactName);
- getSdcAttributes((String) execution.getVariable("controlName"));
- ModelProperties prop = ModelProperties.create(execution);
- String bluprintPayload = sdcReq.formatBlueprint(prop, docText);
+ @Handler
+ public void execute(Exchange camelExchange) throws GeneralSecurityException, DecoderException, IOException {
+ String controlName = (String) camelExchange.getProperty("controlName");
+ String baseUrl = refProp.getStringValue("sdc.serviceUrl");
+ String artifactLabel = sdcReq
+ .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
+ String locationArtifactLabel = sdcReq
+ .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
+ String artifactType = refProp.getStringValue("sdc.artifactType");
+ String locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
+ String userid = (String) camelExchange.getProperty("userid");
+ String docText = (String) camelExchange.getProperty("docText");
+ String artifactName = (String) camelExchange.getProperty("controlName") + DcaeEvent.ARTIFACT_NAME_SUFFIX;
+ camelExchange.setProperty("artifactName", artifactName);
+ ModelProperties prop = ModelProperties.create(camelExchange);
+ String bluprintPayload;
+ bluprintPayload = sdcReq.formatBlueprint(prop, docText);
// no need to upload blueprint for Holmes, thus blueprintPayload for
// Holmes is empty
if (!bluprintPayload.isEmpty()) {
String formattedSdcReq = sdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
if (formattedSdcReq != null) {
- execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
+ camelExchange.setProperty("formattedArtifactReq", formattedSdcReq.getBytes());
}
- List<String> sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
+ Global globalProps = prop.getGlobal();
+ if (globalProps != null && globalProps.getService() != null) {
+ String serviceInvariantUUID = globalProps.getService();
+ camelExchange.setProperty("serviceInvariantUUID", serviceInvariantUUID);
+ }
+ List<String> sdcReqUrlsList = sdcReq.getSdcReqUrlsList(prop, baseUrl);
String sdcLocationsPayload = sdcReq.formatSdcLocationsReq(prop, artifactName);
- String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
+ String locationArtifactName = (String) camelExchange.getProperty("controlName") + "-location.json";
String formattedSdcLocationReq = sdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
locationArtifactLabel, locationArtifactType);
if (formattedSdcLocationReq != null) {
- execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
+ camelExchange.setProperty("formattedLocationReq", formattedSdcLocationReq.getBytes());
}
sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
artifactName, locationArtifactName);
}
}
-
- /**
- * Method to get sdc service values from properties file.
- *
- * @param controlName
- */
- private void getSdcAttributes(String controlName) {
- baseUrl = refProp.getStringValue("sdc.serviceUrl");
- artifactLabel = sdcReq
- .normalizeResourceInstanceName(refProp.getStringValue("sdc.artifactLabel") + "-" + controlName);
- locationArtifactLabel = sdcReq
- .normalizeResourceInstanceName(refProp.getStringValue("sdc.locationArtifactLabel") + "-" + controlName);
- artifactType = refProp.getStringValue("sdc.artifactType");
- locationArtifactType = refProp.getStringValue("sdc.locationArtifactType");
- }
}
diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
index 035e64a61..2657a03f9 100644
--- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,44 +28,46 @@ import com.att.eelf.configuration.EELFManager;
import java.util.UUID;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.prop.Tca;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Send Tca info to policy api.
- *
- *
*/
-public class TcaPolicyDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class);
+@Component
+public class TcaPolicyDelegate {
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
/**
* Perform activity. Send Tca info to policy api.
*
- * @param execution
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) throws Exception {
+ @Handler
+ public void execute(Exchange camelExchange) {
String tcaPolicyRequestUuid = UUID.randomUUID().toString();
- execution.setVariable("tcaPolicyRequestUuid", tcaPolicyRequestUuid);
- ModelProperties prop = ModelProperties.create(execution);
+ camelExchange.setProperty("tcaPolicyRequestUuid", tcaPolicyRequestUuid);
+ ModelProperties prop = ModelProperties.create(camelExchange);
Tca tca = prop.getType(Tca.class);
if (tca.isFound()) {
String policyJson = TcaRequestFormatter.createPolicyJson(refProp, prop);
String responseMessage = policyClient.sendMicroServiceInOther(policyJson, prop);
if (responseMessage != null) {
- execution.setVariable("tcaPolicyResponseMessage", responseMessage.getBytes());
+ camelExchange.setProperty("tcaPolicyResponseMessage", responseMessage.getBytes());
}
}
}
diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
index e88b720a7..c2aa303a5 100644
--- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDeleteDelegate.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,46 +23,44 @@
package org.onap.clamp.clds.client;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Handler;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.prop.Tca;
import org.springframework.beans.factory.annotation.Autowired;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
+import org.springframework.stereotype.Component;
/**
* Delete Tca Policy via policy api.
- *
- *
*/
-public class TcaPolicyDeleteDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+@Component
+public class TcaPolicyDeleteDelegate {
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaPolicyDeleteDelegate.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private PolicyClient policyClient;
+ private PolicyClient policyClient;
/**
* Perform activity. Delete Tca Policy via policy api.
*
- * @param execution
+ * @param camelExchange
+ * The Camel Exchange object containing the properties
*/
- @Override
- public void execute(DelegateExecution execution) throws Exception {
-
- ModelProperties prop = ModelProperties.create(execution);
+ @Handler
+ public void execute(Exchange camelExchange) {
+ ModelProperties prop = ModelProperties.create(camelExchange);
Tca tca = prop.getType(Tca.class);
if (tca.isFound()) {
prop.setCurrentModelElementId(tca.getId());
-
String responseMessage = policyClient.deleteMicrosService(prop);
if (responseMessage != null) {
- execution.setVariable("tcaPolicyDeleteResponseMessage", responseMessage.getBytes());
+ camelExchange.setProperty("tcaPolicyDeleteResponseMessage", responseMessage.getBytes());
}
}
}
-
}
diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
index b4cad9496..046003309 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java
@@ -57,23 +57,26 @@ import org.onap.policy.api.PushPolicyParameters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
/**
* Policy utility methods - specifically, send the policy.
*/
+@Component
public class PolicyClient {
- protected static final String POLICY_PREFIX_BASE = "Config_";
- protected static final String LOG_POLICY_PREFIX = "Response is ";
+
+ protected static final String POLICY_PREFIX_BASE = "Config_";
+ protected static final String LOG_POLICY_PREFIX = "Response is ";
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
- protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type";
- protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name";
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type";
+ protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name";
@Value("${org.onap.clamp.config.files.cldsPolicyConfig:'classpath:/clds/clds-policy-config.properties'}")
- protected String cldsPolicyConfigFile;
+ protected String cldsPolicyConfigFile;
@Autowired
- protected ApplicationContext appContext;
+ protected ApplicationContext appContext;
@Autowired
- protected RefProp refProp;
+ protected RefProp refProp;
/**
* Perform BRMS policy type.
@@ -229,19 +232,19 @@ public class PolicyClient {
responseMessage = response.getResponseMessage();
}
} catch (Exception e) {
- LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
- LoggingUtils.setErrorContext("900", "Policy send error");
+ LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
+ LoggingUtils.setErrorContext("900", "Policy send error");
logger.error("Exception occurred during policy communication", e);
throw new PolicyClientException("Exception while communicating with Policy", e);
}
logger.info(LOG_POLICY_PREFIX + responseMessage);
LoggingUtils.setTimeContext(startTime, new Date());
if (response.getResponseCode() == 200) {
- LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName());
+ LoggingUtils.setResponseContext("0", "Policy send success", this.getClass().getName());
logger.info("Policy send successful");
metricsLogger.info("Policy send success");
} else {
- LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
+ LoggingUtils.setResponseContext("900", "Policy send failed", this.getClass().getName());
logger.warn("Policy send failed: " + responseMessage);
metricsLogger.info("Policy send failure");
throw new BadRequestException("Policy send failed: " + responseMessage);
@@ -278,25 +281,25 @@ public class PolicyClient {
PolicyChangeResponse response;
String responseMessage = "";
try {
- LoggingUtils.setTargetContext("Policy", "pushPolicy");
+ LoggingUtils.setTargetContext("Policy", "pushPolicy");
logger.info("Attempting to push policy...");
response = getPolicyEngine().pushPolicy(pushPolicyParameters);
if (response != null) {
responseMessage = response.getResponseMessage();
}
} catch (Exception e) {
- LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
+ LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Policy push error");
logger.error("Exception occurred during policy communication", e);
throw new PolicyClientException("Exception while communicating with Policy", e);
}
logger.info(LOG_POLICY_PREFIX + responseMessage);
if (response != null && (response.getResponseCode() == 200 || response.getResponseCode() == 204)) {
- LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName());
+ LoggingUtils.setResponseContext("0", "Policy push success", this.getClass().getName());
logger.info("Policy push successful");
metricsLogger.info("Policy push success");
} else {
- LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
+ LoggingUtils.setResponseContext("900", "Policy push failed", this.getClass().getName());
logger.warn("Policy push failed: " + responseMessage);
metricsLogger.info("Policy push failure");
throw new BadRequestException("Policy push failed: " + responseMessage);
@@ -350,7 +353,7 @@ public class PolicyClient {
private PolicyEngine getPolicyEngine() {
PolicyEngine policyEngine;
try {
- policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getFile().getAbsolutePath());
+ policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getURL().getPath());
} catch (IOException e1) {
throw new PolicyClientException("Exception when opening policy config file", e1);
} catch (PolicyEngineException e) {
@@ -399,7 +402,6 @@ public class PolicyClient {
*
* @param prop
* The ModelProperties
- *
* @return The response message from policy
*/
protected String deletePolicy(ModelProperties prop, String policyType) {
diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
index 6684f1a1e..45dbf81fe 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcCatalogServices.java
@@ -60,7 +60,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpHeaders;
import org.onap.clamp.clds.exception.SdcCommunicationException;
import org.onap.clamp.clds.model.CldsAlarmCondition;
-import org.onap.clamp.clds.model.CldsDBServiceCache;
import org.onap.clamp.clds.model.CldsSdcArtifact;
import org.onap.clamp.clds.model.CldsSdcResource;
import org.onap.clamp.clds.model.CldsSdcResourceBasicInfo;
@@ -76,23 +75,25 @@ import org.onap.clamp.clds.model.refprop.RefProp;
import org.onap.clamp.clds.util.CryptoUtils;
import org.onap.clamp.clds.util.LoggingUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class SdcCatalogServices {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcCatalogServices.class);
private static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
- private static final String RESOURCE_VF_TYPE = "VF";
- private static final String RESOURCE_VFC_TYPE = "VFC";
- private static final String RESOURCE_CVFC_TYPE = "CVFC";
+ private static final String RESOURCE_VF_TYPE = "VF";
+ private static final String RESOURCE_VFC_TYPE = "VFC";
+ private static final String RESOURCE_CVFC_TYPE = "CVFC";
private static final String SDC_REQUESTID_PROPERTY_NAME = "sdc.header.requestId";
- private static final String SDC_METADATA_URL_PREFIX = "/metadata";
- private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";
- private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";
- private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";
- private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool";
- private static final String RESOURCE_URL_PREFIX = "resources";
+ private static final String SDC_METADATA_URL_PREFIX = "/metadata";
+ private static final String SDC_INSTANCE_ID_PROPERTY_NAME = "sdc.InstanceID";
+ private static final String SDC_CATALOG_URL_PROPERTY_NAME = "sdc.catalog.url";
+ private static final String SDC_SERVICE_URL_PROPERTY_NAME = "sdc.serviceUrl";
+ private static final String SDC_INSTANCE_ID_CLAMP = "CLAMP-Tool";
+ private static final String RESOURCE_URL_PREFIX = "resources";
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
/**
* Return SDC id and pw as a HTTP Basic Auth string (for example: Basic
@@ -131,7 +132,7 @@ public class SdcCatalogServices {
LoggingUtils.setTargetContext("SDC", "getSdcServicesInformation");
try {
String url = baseUrl;
- if (uuid != null) {
+ if (uuid != null && !uuid.isEmpty()) {
url = baseUrl + "/" + uuid + SDC_METADATA_URL_PREFIX;
}
URL urlObj = new URL(url);
@@ -142,7 +143,7 @@ public class SdcCatalogServices {
conn.setRequestProperty(refProp.getStringValue(SDC_REQUESTID_PROPERTY_NAME), LoggingUtils.getRequestId());
conn.setRequestMethod("GET");
String resp = getResponse(conn);
- logger.info(resp);
+ logger.debug("Services list received from SDC:" + resp);
// metrics log
LoggingUtils.setResponseContext("0", "Get sdc services success", this.getClass().getName());
return resp;
@@ -333,7 +334,6 @@ public class SdcCatalogServices {
}
}
-
// upload artifact to sdc based on serviceUUID and resource name on url
private String uploadArtifactToSdc(ModelProperties prop, String userid, String url, String formattedSdcReq) {
// Verify whether it is triggered by Validation Test button from UI
@@ -422,23 +422,11 @@ public class SdcCatalogServices {
}
}
- public CldsDBServiceCache getCldsDbServiceCacheUsingCldsServiceData(CldsServiceData cldsServiceData) {
- try {
- CldsDBServiceCache cldsDbServiceCache = new CldsDBServiceCache();
- cldsDbServiceCache.setCldsDataInstream(cldsServiceData);
- cldsDbServiceCache.setInvariantId(cldsServiceData.getServiceInvariantUUID());
- cldsDbServiceCache.setServiceId(cldsServiceData.getServiceUUID());
- return cldsDbServiceCache;
- } catch (IOException e) {
- logger.error("Exception when getting service in cache", e);
- throw new SdcCommunicationException("Exception when getting service in cache", e);
- }
- }
-
/**
* Check if the SDC Info in cache has expired.
*
* @param cldsServiceData
+ * The object representing the service data
* @return boolean flag
* @throws GeneralSecurityException
* In case of issues with the decryting the encrypted password
@@ -447,23 +435,25 @@ public class SdcCatalogServices {
*/
public boolean isCldsSdcCacheDataExpired(CldsServiceData cldsServiceData)
throws GeneralSecurityException, DecoderException {
- boolean expired = false;
if (cldsServiceData != null && cldsServiceData.getServiceUUID() != null) {
String cachedServiceUuid = cldsServiceData.getServiceUUID();
String latestServiceUuid = getServiceUuidFromServiceInvariantId(cldsServiceData.getServiceInvariantUUID());
- String defaultRecordAge = refProp.getStringValue("CLDS_SERVICE_CACHE_MAX_SECONDS");
- if ((!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null
- && cldsServiceData.getAgeOfRecord() > Long.parseLong(defaultRecordAge))) {
- expired = true;
+ String configuredMaxAge = refProp.getStringValue("clds.service.cache.invalidate.after.seconds");
+ if (configuredMaxAge == null) {
+ logger.warn(
+ "clds.service.cache.invalidate.after.seconds NOT set in clds-reference.properties file, taking 60s as default");
+ configuredMaxAge = "60";
}
+ return (!cachedServiceUuid.equalsIgnoreCase(latestServiceUuid)) || (cldsServiceData.getAgeOfRecord() != null
+ && cldsServiceData.getAgeOfRecord() > Long.parseLong(configuredMaxAge));
} else {
- expired = true;
+ return true;
}
- return expired;
}
/**
- * Get the Service Data with Alarm Conditions for a given invariantServiceUuid.
+ * Get the Service Data with Alarm Conditions for a given
+ * invariantServiceUuid.
*
* @param invariantServiceUuid
* @return The CldsServiceData
@@ -510,8 +500,7 @@ public class SdcCatalogServices {
cldsServiceData.setCldsVfs(cldsVfDataList);
// For each vf in the list , add all vfc's
getAllVfcForVfList(cldsVfDataList, catalogUrl);
- logger.info("value of cldsServiceData:" + cldsServiceData);
- logger.info("value of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());
+ logger.info("Invariant Service ID of cldsServiceData:" + cldsServiceData.getServiceInvariantUUID());
}
}
}
@@ -606,17 +595,17 @@ public class SdcCatalogServices {
private void handleVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {
CldsVfcData currCldsVfcData = new CldsVfcData();
- TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");
- TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");
- currCldsVfcData.setVfcName(vfcResourceName.textValue());
- currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());
- cldsVfcDataList.add(currCldsVfcData);
+ TextNode vfcResourceName = (TextNode) currVfcNode.get("resourceInstanceName");
+ TextNode vfcInvariantResourceUuid = (TextNode) currVfcNode.get("resourceInvariantUUID");
+ currCldsVfcData.setVfcName(vfcResourceName.textValue());
+ currCldsVfcData.setVfcInvariantResourceUUID(vfcInvariantResourceUuid.textValue());
+ cldsVfcDataList.add(currCldsVfcData);
}
private void handleCVFCtypeNode(ObjectNode currVfcNode, List<CldsVfcData> cldsVfcDataList) {
handleVFCtypeNode(currVfcNode, cldsVfcDataList);
- cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));
- }
+ cldsVfcDataList.addAll(getVFCfromCVFC(currVfcNode.get("resourceUUID").textValue()));
+ }
private List<CldsVfcData> getVFCfromCVFC(String resourceUUID) {
String catalogUrl = refProp.getStringValue(SDC_CATALOG_URL_PROPERTY_NAME);
@@ -786,7 +775,6 @@ public class SdcCatalogServices {
cldsAlarmConditionList.add(cldsAlarmCondition);
}
-
// Get the responses for the current artifact from the artifacts URL.
private String getResponsesFromArtifactUrl(String artifactsUrl) {
String hostUrl = refProp.getStringValue("sdc.hostUrl");
@@ -802,9 +790,9 @@ public class SdcCatalogServices {
* Service to services/resources/artifacts from sdc.Pass alarmConditions as
* true to get alarm conditons from artifact url and else it is false
*
- * @param url The URL to trigger
+ * @param url
+ * The URL to trigger
* @return The String containing the payload
- *
*/
public String getCldsServicesOrResourcesBasedOnURL(String url) {
Date startTime = new Date();
@@ -832,12 +820,12 @@ public class SdcCatalogServices {
logger.error("Exception occurred during query to SDC", e);
return "";
} catch (DecoderException e) {
- LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());
+ LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Get sdc resources error");
logger.error("Exception when attempting to decode the Hex string", e);
throw new SdcCommunicationException("Exception when attempting to decode the Hex string", e);
} catch (GeneralSecurityException e) {
- LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());
+ LoggingUtils.setResponseContext("900", "Get sdc resources failed", this.getClass().getName());
LoggingUtils.setErrorContext("900", "Get sdc resources error");
logger.error("Exception when attempting to decrypt the encrypted password", e);
throw new SdcCommunicationException("Exception when attempting to decrypt the encrypted password", e);
@@ -901,7 +889,7 @@ public class SdcCatalogServices {
byIdObjectNode.putPOJO("byAlertDescription", alertDescObjectNodeByAlert);
globalPropsJson = decodeGlobalProp(globalProps, mapper);
globalPropsJson.putPOJO("shared", byIdObjectNode);
- logger.info("value of objNode:" + globalPropsJson);
+ logger.info("Global properties JSON created with SDC info:" + globalPropsJson);
} else {
/**
* to create json with total properties when no serviceUUID passed
diff --git a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
index d4b5b086d..3fb53a3b6 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/sdc/SdcReq.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,8 +25,6 @@ package org.onap.clamp.clds.client.req.sdc;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -42,7 +40,6 @@ import java.util.List;
import java.util.Map.Entry;
import org.apache.commons.codec.DecoderException;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter;
import org.onap.clamp.clds.model.CldsSdcResource;
import org.onap.clamp.clds.model.CldsSdcServiceDetail;
@@ -51,15 +48,20 @@ import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.prop.Tca;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
/**
* Construct a Sdc request given CLDS objects.
*/
+@Component
public class SdcReq {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class);
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcReq.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- protected RefProp refProp;
+ private SdcCatalogServices sdcCatalogServices;
+ @Autowired
+ protected RefProp refProp;
/**
* Format the Blueprint from a Yaml
@@ -68,17 +70,11 @@ public class SdcReq {
* The ModelProperties describing the clds model
* @param docText
* The Yaml file that must be converted
- *
* @return A String containing the BluePrint
- * @throws JsonParseException
- * In case of issues
- * @throws JsonMappingException
- * In case of issues
* @throws IOException
* In case of issues
*/
- public String formatBlueprint(ModelProperties prop, String docText)
- throws JsonParseException, JsonMappingException, IOException {
+ public String formatBlueprint(ModelProperties prop, String docText) throws IOException {
String yamlvalue = getYamlvalue(docText);
String updatedBlueprint = "";
Tca tca = prop.getType(Tca.class);
@@ -96,7 +92,6 @@ public class SdcReq {
* The ModelProperties describing the clds model
* @param artifactName
* The name of the artifact
- *
* @return SDC Locations request in the JSON Format
*/
public String formatSdcLocationsReq(ModelProperties prop, String artifactName) {
@@ -127,11 +122,8 @@ public class SdcReq {
* @param artifactType
* The type of the artifact
* @return formatted SDC Request
- * @throws IOException
- * In case of issues
*/
- public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType)
- throws IOException {
+ public String formatSdcReq(String payloadData, String artifactName, String artifactLabel, String artifactType) {
logger.info("artifact=" + payloadData);
String base64Artifact = Base64.getEncoder().encodeToString(payloadData.getBytes(StandardCharsets.UTF_8));
return "{ \n" + "\"payloadData\" : \"" + base64Artifact + "\",\n" + "\"artifactLabel\" : \"" + artifactLabel
@@ -144,46 +136,47 @@ public class SdcReq {
* To get List of urls for all vfresources
*
* @param prop
+ * The model properties JSON describing the closed loop flow
* @param baseUrl
- * @param sdcCatalogServices
- * @param execution
- * @return
+ * The URL to trigger
+ * @return A list of Service URL
* @throws GeneralSecurityException
* In case of issues when decrypting the password
* @throws DecoderException
* In case of issues when decoding the Hex String
*/
- public List<String> getSdcReqUrlsList(ModelProperties prop, String baseUrl, SdcCatalogServices sdcCatalogServices,
- DelegateExecution execution) throws GeneralSecurityException, DecoderException {
- // TODO : refact and regroup with very similar code
+ public List<String> getSdcReqUrlsList(ModelProperties prop, String baseUrl)
+ throws GeneralSecurityException, DecoderException {
List<String> urlList = new ArrayList<>();
Global globalProps = prop.getGlobal();
- if (globalProps != null) {
- if (globalProps.getService() != null) {
- String serviceInvariantUUID = globalProps.getService();
- execution.setVariable("serviceInvariantUUID", serviceInvariantUUID);
- List<String> resourceVfList = globalProps.getResourceVf();
- String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
- String sdcServicesInformation = sdcCatalogServices.getSdcServicesInformation(serviceUUID);
- CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices
- .getCldsSdcServiceDetailFromJson(sdcServicesInformation);
- if (cldsSdcServiceDetail != null && resourceVfList != null) {
- List<CldsSdcResource> cldsSdcResourcesList = cldsSdcServiceDetail.getResources();
- if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) {
- for (CldsSdcResource CldsSdcResource : cldsSdcResourcesList) {
- if (CldsSdcResource != null && CldsSdcResource.getResoucreType() != null
- && CldsSdcResource.getResoucreType().equalsIgnoreCase("VF")
- && resourceVfList.contains(CldsSdcResource.getResourceInvariantUUID())) {
- String normalizedResourceInstanceName = normalizeResourceInstanceName(
- CldsSdcResource.getResourceInstanceName());
- String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/"
- + normalizedResourceInstanceName + "/artifacts";
- urlList.add(svcUrl);
- }
+ if (globalProps != null && globalProps.getService() != null) {
+ String serviceInvariantUUID = globalProps.getService();
+ List<String> resourceVfList = globalProps.getResourceVf();
+ String serviceUUID = sdcCatalogServices.getServiceUuidFromServiceInvariantId(serviceInvariantUUID);
+ CldsSdcServiceDetail cldsSdcServiceDetail = sdcCatalogServices
+ .getCldsSdcServiceDetailFromJson(sdcCatalogServices.getSdcServicesInformation(serviceUUID));
+ if (cldsSdcServiceDetail != null && resourceVfList != null) {
+ List<CldsSdcResource> cldsSdcResourcesList = cldsSdcServiceDetail.getResources();
+ if (cldsSdcResourcesList != null && !cldsSdcResourcesList.isEmpty()) {
+ for (CldsSdcResource cldsSdcResource : cldsSdcResourcesList) {
+ if (cldsSdcResource != null && cldsSdcResource.getResoucreType() != null
+ && cldsSdcResource.getResoucreType().equalsIgnoreCase("VF")
+ && resourceVfList.contains(cldsSdcResource.getResourceInvariantUUID())) {
+ String normalizedResourceInstanceName = normalizeResourceInstanceName(
+ cldsSdcResource.getResourceInstanceName());
+ String svcUrl = baseUrl + "/" + serviceUUID + "/resourceInstances/"
+ + normalizedResourceInstanceName + "/artifacts";
+ urlList.add(svcUrl);
+ } else {
+ logger.warn("The VF Resource invariant UUID (" + cldsSdcResource.getResourceInvariantUUID()
+ + ") has not been found in the Service (Invariant ID:" + serviceInvariantUUID
+ + ")VF resource list");
}
}
}
}
+ } else {
+ logger.warn("GlobalProperties json is empty, skipping getSdcReqUrlsList and returning empty list");
}
return urlList;
}
@@ -201,16 +194,18 @@ public class SdcReq {
}
/**
- * Method to get yaml/template properties value from json
+ * Method to get yaml/template properties value from json.
*
- * @param docText
- * @return
+ * @param jsonGlobal
+ * The Json containing a Yaml file
+ * @return The yaml extracted from the JSON
* @throws IOException
+ * In case of issues with the Json parser
*/
- public String getYamlvalue(String docText) throws IOException {
+ protected String getYamlvalue(String jsonGlobal) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String yamlFileValue = "";
- ObjectNode root = objectMapper.readValue(docText, ObjectNode.class);
+ ObjectNode root = objectMapper.readValue(jsonGlobal, ObjectNode.class);
Iterator<Entry<String, JsonNode>> entryItr = root.fields();
while (entryItr.hasNext()) {
Entry<String, JsonNode> entry = entryItr.next();
diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
index b99d3a96c..ae9704109 100644
--- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
@@ -26,21 +26,7 @@ package org.onap.clamp.clds.config;
import javax.sql.DataSource;
import javax.xml.transform.TransformerConfigurationException;
-import org.onap.clamp.clds.client.CldsEventDelegate;
-import org.onap.clamp.clds.client.DcaeDispatcherServices;
-import org.onap.clamp.clds.client.DcaeInventoryServices;
-import org.onap.clamp.clds.client.HolmesPolicyDelegate;
-import org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.OperationalPolicyDelegate;
-import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.SdcSendReqDelegate;
-import org.onap.clamp.clds.client.TcaPolicyDelegate;
-import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate;
-import org.onap.clamp.clds.client.req.policy.PolicyClient;
-import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
-import org.onap.clamp.clds.client.req.sdc.SdcReq;
import org.onap.clamp.clds.dao.CldsDao;
-import org.onap.clamp.clds.model.refprop.RefProp;
import org.onap.clamp.clds.transform.XslTransformer;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
@@ -85,74 +71,4 @@ public class CldsConfiguration {
xslTransformer.setXslResourceName("xsl/clds-bpmn-transformer.xsl");
return xslTransformer;
}
-
- @Bean
- public RefProp getRefProp() {
- return new RefProp();
- }
-
- @Bean
- public SdcReq getSdcReq() {
- return new SdcReq();
- }
-
- @Bean
- public PolicyClient getPolicyClient() {
- return new PolicyClient();
- }
-
- @Bean(name = "cldsEventDelegate")
- public CldsEventDelegate getCldsEventDelegate() {
- return new CldsEventDelegate();
- }
-
- @Bean(name = "sdcSendReqDelegate")
- public SdcSendReqDelegate getSdcSendReqDelegate() {
- return new SdcSendReqDelegate();
- }
-
- @Bean(name = "operationalPolicyDelegate")
- public OperationalPolicyDelegate getOperationalPolicyDelegate() {
- return new OperationalPolicyDelegate();
- }
-
- @Bean(name = "operationalPolicyDeleteDelegate")
- public OperationalPolicyDeleteDelegate getOperationalPolicyDeleteDelegate() {
- return new OperationalPolicyDeleteDelegate();
- }
-
- @Bean(name = "sdcCatalogServices")
- public SdcCatalogServices getSdcCatalogServices() {
- return new SdcCatalogServices();
- }
-
- @Bean(name = "dcaeDispatcherServices")
- public DcaeDispatcherServices getDcaeDispatcherServices() {
- return new DcaeDispatcherServices();
- }
-
- @Bean(name = "dcaeInventoryServices")
- public DcaeInventoryServices getDcaeInventoryServices() {
- return new DcaeInventoryServices();
- }
-
- @Bean(name = "tcaPolicyDelegate")
- public TcaPolicyDelegate getTcaPolicyDelegate() {
- return new TcaPolicyDelegate();
- }
-
- @Bean(name = "tcaPolicyDeleteDelegate")
- public TcaPolicyDeleteDelegate getTcaPolicyDeleteDelegate() {
- return new TcaPolicyDeleteDelegate();
- }
-
- @Bean(name = "holmesPolicyDelegate")
- public HolmesPolicyDelegate getHolmesPolicyDelegate() {
- return new HolmesPolicyDelegate();
- }
-
- @Bean(name = "holmesPolicyDeleteDelegate")
- public HolmesPolicyDeleteDelegate getHolmesPolicyDeleteDelegate() {
- return new HolmesPolicyDeleteDelegate();
- }
} \ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java
new file mode 100644
index 000000000..3a6a81689
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/exception/CldsDelegateException.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2018 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.exception;
+
+/**
+ * New exception to CldsDelegate errors.
+ */
+public class CldsDelegateException extends RuntimeException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2705212640916671093L;
+
+ /**
+ * This constructor can be used to create a new CldsDelegateException.
+ *
+ * @param message
+ * A string message detailing the problem
+ * @param e
+ * The exception sent by the code
+ */
+ public CldsDelegateException(String message, Throwable e) {
+ super(message, e);
+ }
+
+ /**
+ * This constructor can be used to create a new CldsDelegateException. Use
+ * this constructor only if you are creating a new exception stack, not if
+ * an exception was already raised by another code.
+ *
+ * @param message
+ * A string message detailing the problem
+ */
+ public CldsDelegateException(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
index fae5e584c..dca93e46d 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,7 +25,6 @@ package org.onap.clamp.clds.model.prop;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -37,7 +36,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.apache.camel.Exchange;
import org.onap.clamp.clds.exception.ModelBpmnException;
import org.onap.clamp.clds.model.CldsEvent;
import org.onap.clamp.clds.model.CldsModel;
@@ -47,22 +46,21 @@ import org.onap.clamp.clds.service.CldsService;
* Parse model properties.
*/
public class ModelProperties {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(CldsService.class);
- protected static final EELFLogger auditLogger = EELFManager.getInstance()
- .getAuditLogger();
- private ModelBpmn modelBpmn;
- private JsonNode modelJson;
- private final String modelName;
- private final String controlName;
- private final String actionCd;
+
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsService.class);
+ protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+ private ModelBpmn modelBpmn;
+ private JsonNode modelJson;
+ private final String modelName;
+ private final String controlName;
+ private final String actionCd;
// Flag indicate whether it is triggered by Validation Test button from UI
- private final boolean testOnly;
- private Global global;
- private final Map<String, AbstractModelElement> modelElements = new ConcurrentHashMap<>();
- private String currentModelElementId;
- private String policyUniqueId;
- private static final Object lock = new Object();
+ private final boolean testOnly;
+ private Global global;
+ private final Map<String, AbstractModelElement> modelElements = new ConcurrentHashMap<>();
+ private String currentModelElementId;
+ private String policyUniqueId;
+ private static final Object lock = new Object();
private static Map<Class<? extends AbstractModelElement>, String> modelElementClasses = new ConcurrentHashMap<>();
static {
synchronized (lock) {
@@ -107,11 +105,9 @@ public class ModelProperties {
/**
* This method is meant to ensure that one ModelElement instance exists for
- * each ModelElement class.
- *
- * As new ModelElement classes could have been registered after
- * instantiation of this ModelProperties, we need to build the missing
- * ModelElement instances.
+ * each ModelElement class. As new ModelElement classes could have been
+ * registered after instantiation of this ModelProperties, we need to build
+ * the missing ModelElement instances.
*/
private final void instantiateMissingModelElements() {
if (modelElementClasses.size() != modelElements.size()) {
@@ -160,20 +156,21 @@ public class ModelProperties {
}
/**
- * Create ModelProperties for Camunda Delegate.
+ * Create ModelProperties extracted from a CamelExchange.
*
- * @param execution
- * @return
- * @throws JsonProcessingException
- * @throws IOException
+ * @param camelExchange
+ * The camel Exchange object that contains all info provided to
+ * the flow
+ * @return A model Properties created from the parameters found in
+ * camelExchange object
*/
- public static ModelProperties create(DelegateExecution execution) {
- String modelProp = new String((byte[]) execution.getVariable("modelProp"));
- String modelBpmnProp = (String) execution.getVariable("modelBpmnProp");
- String modelName = (String) execution.getVariable("modelName");
- String controlName = (String) execution.getVariable("controlName");
- String actionCd = (String) execution.getVariable("actionCd");
- boolean isTest = (boolean) execution.getVariable("isTest");
+ public static ModelProperties create(Exchange camelExchange) {
+ String modelProp = (String) camelExchange.getProperty("modelProp");
+ String modelBpmnProp = (String) camelExchange.getProperty("modelBpmnProp");
+ String modelName = (String) camelExchange.getProperty("modelName");
+ String controlName = (String) camelExchange.getProperty("controlName");
+ String actionCd = (String) camelExchange.getProperty("actionCd");
+ boolean isTest = (boolean) camelExchange.getProperty("isTest");
return new ModelProperties(modelName, controlName, actionCd, isTest, modelBpmnProp, modelProp);
}
diff --git a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
index 5965a417b..f0cf71c1e 100644
--- a/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
+++ b/src/main/java/org/onap/clamp/clds/model/refprop/RefProp.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,18 +25,22 @@ package org.onap.clamp.clds.model.refprop;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.annotation.PostConstruct;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.Resource;
-
-import javax.annotation.PostConstruct;
-import java.io.IOException;
-import java.util.Properties;
+import org.springframework.stereotype.Component;
/**
* Holds reference properties.
*/
+@Component
public class RefProp {
@Autowired
@@ -103,5 +107,4 @@ public class RefProp {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(getStringValue(key1, key2), JsonNode.class);
}
-
}
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java
index 1238236fb..a139de115 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java
@@ -56,11 +56,11 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.xml.transform.TransformerException;
+import org.apache.camel.Produce;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.lang3.StringUtils;
-import org.camunda.bpm.engine.RuntimeService;
-import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.json.simple.parser.ParseException;
+import org.onap.clamp.clds.camel.CamelProxy;
import org.onap.clamp.clds.client.DcaeDispatcherServices;
import org.onap.clamp.clds.client.DcaeInventoryServices;
import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
@@ -101,6 +101,8 @@ import org.springframework.web.client.HttpClientErrorException;
@Path("/clds")
public class CldsService extends SecureServiceBase {
+ @Produce(uri = "direct:processSubmit")
+ private CamelProxy camelProxy;
protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger();
@Autowired
private ApplicationContext appContext;
@@ -138,8 +140,6 @@ public class CldsService extends SecureServiceBase {
@Autowired
private CldsDao cldsDao;
@Autowired
- private RuntimeService runtimeService;
- @Autowired
private XslTransformer cldsBpmnTransformer;
@Autowired
private RefProp refProp;
@@ -410,7 +410,7 @@ public class CldsService extends SecureServiceBase {
cldsPermissionInstance, actionCd);
isAuthorized(permisionManage);
isAuthorizedForVf(model);
- String userid = getUserId();
+ String userId = getUserId();
String actionStateCd = CldsEvent.ACTION_STATE_INITIATED;
String processDefinitionKey = "clds-process-action-wf";
logger.info("PUT actionCd={}", actionCd);
@@ -420,7 +420,7 @@ public class CldsService extends SecureServiceBase {
logger.info("PUT test={}", test);
logger.info("PUT bpmnText={}", model.getBpmnText());
logger.info("PUT propText={}", model.getPropText());
- logger.info("PUT userid={}", userid);
+ logger.info("PUT userId={}", userId);
logger.info("PUT getTypeId={}", model.getTypeId());
logger.info("PUT deploymentId={}", model.getDeploymentId());
if (model.getTemplateName() != null) {
@@ -462,7 +462,7 @@ public class CldsService extends SecureServiceBase {
logger.info("PUT isInsertTestEvent={}", isInsertTestEvent);
// determine if requested action is permitted
model.validateAction(actionCd);
- // input variables to camunda process
+ // input variables for Camel process
Map<String, Object> variables = new HashMap<>();
variables.put("actionCd", actionCd);
variables.put("modelProp", prop.getBytes());
@@ -471,18 +471,18 @@ public class CldsService extends SecureServiceBase {
variables.put("controlName", controlName);
variables.put("docText", docText.getBytes());
variables.put("isTest", isTest);
- variables.put("userid", userid);
+ variables.put("userid", userId);
variables.put("isInsertTestEvent", isInsertTestEvent);
logger.info("modelProp - " + prop);
logger.info("docText - " + docText);
+ // ModelProperties modelProperties = new ModelProperties(modelName,
+ // controlName, actionCd, isTest, modelBpmnProp, modelProp);
try {
- // start camunda process
- ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
- // log process info
- logger.info("Started processDefinitionId={}, processInstanceId={}", pi.getProcessDefinitionId(),
- pi.getProcessInstanceId());
+ String result = camelProxy.submit(actionCd, prop, bpmnJson, modelName, controlName, docText, isTest, userId,
+ isInsertTestEvent);
+ logger.info("Starting Camel flow on request, result is: ", result);
} catch (SdcCommunicationException | PolicyClientException | BadRequestException e) {
- logger.error("Exception occured during invoking bpmn process", e);
+ logger.error("Exception occured during invoking Camel process", e);
throw new CldsConfigException(e.getMessage(), e);
}
// refresh model info from db (get fresh event info)
@@ -605,39 +605,26 @@ public class CldsService extends SecureServiceBase {
* In case of issues with the decryting the encrypted password
* @throws DecoderException
* In case of issues with the decoding of the Hex String
+ * @throws IOException
+ * In case of issue to convert CldsServiceCache to InputStream
*/
@GET
@Path("/properties/{serviceInvariantUUID}")
@Produces(MediaType.APPLICATION_JSON)
public String getSdcPropertiesByServiceUUIDForRefresh(
@PathParam("serviceInvariantUUID") String serviceInvariantUUID,
- @DefaultValue("false") @QueryParam("refresh") String refresh)
- throws GeneralSecurityException, DecoderException {
+ @DefaultValue("false") @QueryParam("refresh") boolean refresh)
+ throws GeneralSecurityException, DecoderException, IOException {
Date startTime = new Date();
LoggingUtils.setRequestContext("CldsService: GET sdc properties by uuid", getPrincipalName());
CldsServiceData cldsServiceData = new CldsServiceData();
cldsServiceData.setServiceInvariantUUID(serviceInvariantUUID);
- boolean isCldsSdcDataExpired = true;
- // To getcldsService information from database cache using invariantUUID
- // only when refresh = false
- if (refresh != null && refresh.equalsIgnoreCase("false")) {
- cldsServiceData = cldsServiceData.getCldsServiceCache(cldsDao, serviceInvariantUUID);
- // If cldsService is available in database Cache , verify is data
- // expired or not
- if (cldsServiceData != null) {
- isCldsSdcDataExpired = sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData);
- }
+ if (!refresh) {
+ cldsServiceData = cldsDao.getCldsServiceCache(serviceInvariantUUID);
}
- // If user Requested for refresh or database cache expired , get all
- // data from sdc api.
- if ((refresh != null && refresh.equalsIgnoreCase("true")) || isCldsSdcDataExpired) {
+ if (sdcCatalogServices.isCldsSdcCacheDataExpired(cldsServiceData)) {
cldsServiceData = sdcCatalogServices.getCldsServiceDataWithAlarmConditions(serviceInvariantUUID);
- CldsDBServiceCache cldsDBServiceCache = sdcCatalogServices
- .getCldsDbServiceCacheUsingCldsServiceData(cldsServiceData);
- if (cldsDBServiceCache != null && cldsDBServiceCache.getInvariantId() != null
- && cldsDBServiceCache.getServiceId() != null) {
- cldsServiceData.setCldsServiceCache(cldsDao, cldsDBServiceCache);
- }
+ cldsDao.setCldsServiceCache(new CldsDBServiceCache(cldsServiceData));
}
// filter out VFs the user is not authorized for
cldsServiceData.filterVfs(this);
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsUser.java b/src/main/java/org/onap/clamp/clds/service/CldsUser.java
index 3dfeaebdd..fa7a738dd 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsUser.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsUser.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -29,9 +29,8 @@ import java.util.Arrays;
* The class represents the CldsUser that can be extracted from cldsusers.json.
*/
public class CldsUser {
-
- private String user;
- private String password;
+ private String user;
+ private String password;
private SecureServicePermission[] permissions;
/**
diff --git a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java
index 0ffe41037..d6e74aef1 100644
--- a/src/main/java/org/onap/clamp/clds/service/JerseyConfig.java
+++ b/src/main/java/org/onap/clamp/clds/service/JaxrsApplication.java
@@ -23,19 +23,12 @@
package org.onap.clamp.clds.service;
-import org.glassfish.jersey.server.ResourceConfig;
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.core.Application;
+
import org.springframework.stereotype.Component;
@Component
-public class JerseyConfig extends ResourceConfig {
-
- public JerseyConfig() {
- registerEndpoints();
- }
-
- private void registerEndpoints() {
- register(CldsService.class);
- register(UserService.class);
- register(CldsTemplateService.class);
- }
+@ApplicationPath("/restservices/clds/v1")
+public class JaxrsApplication extends Application {
} \ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java b/src/main/java/org/onap/clamp/clds/util/LogMessages.java
index 3790e235f..808878696 100644
--- a/src/main/java/org/onap/clamp/clds/config/CamundaEngineConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/util/LogMessages.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,30 +21,15 @@
* ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
-package org.onap.clamp.clds.config;
+package org.onap.clamp.clds.util;
-import java.security.GeneralSecurityException;
+import com.att.eelf.i18n.EELFResolvableErrorEnum;
+import com.att.eelf.i18n.EELFResourceManager;
-import javax.sql.DataSource;
+public enum LogMessages implements EELFResolvableErrorEnum {
+ LOGSERVICE_HELLO_MESSAGE, LOGSERVICE_EMAIL_ERROR, LOGSERVICE_EMAIL_CLASS, LOGSERVICE_EMAIL_CLASS_NULL, PROCESS_INSTANCE_ID;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-
-@Configuration
-public class CamundaEngineConfiguration {
- /**
- * Camunda Identity database DataSource configuration
- *
- * @return
- * @throws GeneralSecurityException
- * In case of issue during the decoding of the password
- */
- @Primary
- @Bean(name = "camundaBpmDataSource")
- @ConfigurationProperties(prefix = "spring.datasource.camunda")
- public DataSource dataSource() {
- return new EncodedPasswordBasicDataSource();
+ static {
+ EELFResourceManager.loadMessageBundle("logmessages");
}
}
diff --git a/src/main/resources/META-INF/processes.xml b/src/main/resources/META-INF/processes.xml
deleted file mode 100644
index 921a1029b..000000000
--- a/src/main/resources/META-INF/processes.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ============LICENSE_START=======================================================
- ONAP CLAMP
- ================================================================================
- 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============================================
- ===================================================================
- ECOMP is a trademark and service mark of AT&T Intellectual Property.
- -->
-
-<process-application
- xmlns="http://www.camunda.org/schema/1.0/ProcessApplication" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- <process-archive name="clds-process-archive">
- <process-engine>default</process-engine>
- <resource>bpmn/clds-process-action.bpmn</resource>
- <properties>
- <property name="isDeleteUponUndeploy">true</property>
- <property name="isScanForProcessDefinitions">false</property>
- </properties>
- </process-archive>
-
-</process-application>
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1db0875a3..dd4ea6d36 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -62,8 +62,6 @@ server.port=8080
server.contextPath=/
#Modified engine-rest applicationpath
-#camel.component.servlet.mapping.context-path=/restservices/clds/v1/*
-spring.jersey.application-path=/restservices/clds/v1
spring.profiles.active=clamp-default,clamp-spring-authentication
#The max number of active threads in this pool
@@ -78,34 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
camel.springboot.consumer-template-cache-size=1000
camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
+camel.springboot.jmx-enabled=false
camel.defaultthreadpool.poolsize=10
camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-
-#server.port=0
-#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e
-spring.datasource.camunda.validationQuery=SELECT 1
-spring.datasource.camunda.validationQueryTimeout=20000
-spring.datasource.camunda.validationInterval=30000
-spring.datasource.camunda.testWhileIdle = true
-spring.datasource.camunda.minIdle = 0
-spring.datasource.camunda.initialSize=0
-# Automatically test whether a connection provided is good or not
-spring.datasource.camunda.testOnBorrow=true
-spring.datasource.camunda.ignoreExceptionOnPreLoad=true
-
-#Camunda application properties
-#Camunda history level
-camunda.bpm.history-level=auto
-camunda.bpm.database.type=mariadb
-camunda.bpm.database.schema-update=true
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml
+#camel.springboot.typeConversion = false
#clds datasource connection details
spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn
deleted file mode 100644
index 11edc0714..000000000
--- a/src/main/resources/bpmn/clds-process-action.bpmn
+++ /dev/null
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_-A31MBMpEea185sFktMJ7Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
- <bpmn2:collaboration id="_Collaboration_2">
- <bpmn2:participant id="_Participant_2" name="Process Action" processRef="clds-process-action-wf" />
- </bpmn2:collaboration>
- <bpmn2:process id="clds-process-action-wf" name="CLDS Process Action Workflow" isExecutable="true">
- <bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
- <bpmn2:lane id="Lane_1" name="Submit or Resubmit">
- <bpmn2:flowNodeRef>ExclusiveGateway_2</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>EndEvent_1</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>insEvent</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>ExclusiveGateway_3</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendOpPolicyReqDistribute</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>ServiceTask_0x8ypxf</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendTcaReqDistribute</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendHolmesReqDistribute</bpmn2:flowNodeRef>
- </bpmn2:lane>
- <bpmn2:lane id="Lane_5" name="Delete">
- <bpmn2:flowNodeRef>sendTcaReqDelete</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendOpPolicyReqDelete</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendHolmesReqDelete</bpmn2:flowNodeRef>
- </bpmn2:lane>
- <bpmn2:lane id="Lane_4" name="Update">
- <bpmn2:flowNodeRef>sendOpPolicyReqUpdate</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendTcaReqUpdate</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendHolmesReqUpdate</bpmn2:flowNodeRef>
- </bpmn2:lane>
- <bpmn2:lane id="Lane_6" name="Stop">
- <bpmn2:flowNodeRef>sendOpPolicyReqStop</bpmn2:flowNodeRef>
- </bpmn2:lane>
- <bpmn2:lane id="Lane_7" name="Restart">
- <bpmn2:flowNodeRef>sendOpPolicyReqRestart</bpmn2:flowNodeRef>
- </bpmn2:lane>
- </bpmn2:laneSet>
- <bpmn2:exclusiveGateway id="ExclusiveGateway_2">
- <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
- <bpmn2:outgoing>SequenceFlow_27</bpmn2:outgoing>
- <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
- <bpmn2:outgoing>SequenceFlow_31</bpmn2:outgoing>
- <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
- <bpmn2:outgoing>SequenceFlow_1xlfq66</bpmn2:outgoing>
- </bpmn2:exclusiveGateway>
- <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ExclusiveGateway_2" targetRef="ServiceTask_0x8ypxf">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'SUBMIT' || actionCd == 'RESUBMIT' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:endEvent id="EndEvent_1">
- <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
- </bpmn2:endEvent>
- <bpmn2:serviceTask id="insEvent" name="Insert Event to indicate that the action was completed" camunda:delegateExpression="${cldsEventDelegate}">
- <bpmn2:extensionElements>
- <camunda:inputOutput>
- <camunda:inputParameter name="actionStateCd">SENT</camunda:inputParameter>
- </camunda:inputOutput>
- </bpmn2:extensionElements>
- <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_16" name="" sourceRef="insEvent" targetRef="EndEvent_1" />
- <bpmn2:exclusiveGateway id="ExclusiveGateway_3">
- <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
- <bpmn2:incoming>SequenceFlow_28</bpmn2:incoming>
- <bpmn2:incoming>SequenceFlow_30</bpmn2:incoming>
- <bpmn2:incoming>SequenceFlow_32</bpmn2:incoming>
- <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
- </bpmn2:exclusiveGateway>
- <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ExclusiveGateway_3" targetRef="insEvent" />
- <bpmn2:serviceTask id="sendOpPolicyReqDistribute" name="Send Operation Policy Request [Submit]" camunda:delegateExpression="${operationalPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_1tu9g11</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="sendOpPolicyReqDistribute" targetRef="ExclusiveGateway_3" />
- <bpmn2:serviceTask id="sendOpPolicyReqUpdate" name="Send Operation Policy Request [Update]" camunda:delegateExpression="${operationalPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_0ejpmee</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqUpdate">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'UPDATE' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:sequenceFlow id="SequenceFlow_28" name="" sourceRef="sendOpPolicyReqUpdate" targetRef="ExclusiveGateway_3" />
- <bpmn2:serviceTask id="sendOpPolicyReqStop" name="Send Operation Policy Request [Stop]" camunda:delegateExpression="${operationalPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="ExclusiveGateway_2" targetRef="sendOpPolicyReqStop">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'STOP' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:sequenceFlow id="SequenceFlow_30" name="" sourceRef="sendOpPolicyReqStop" targetRef="ExclusiveGateway_3" />
- <bpmn2:serviceTask id="sendOpPolicyReqRestart" name="Send Operation Policy Request [Restart]" camunda:delegateExpression="${operationalPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_31</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_32</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_31" name="" sourceRef="ExclusiveGateway_2" targetRef="sendOpPolicyReqRestart">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'RESTART' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:sequenceFlow id="SequenceFlow_32" name="" sourceRef="sendOpPolicyReqRestart" targetRef="ExclusiveGateway_3" />
- <bpmn2:startEvent id="StartEvent_1">
- <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
- </bpmn2:startEvent>
- <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="ExclusiveGateway_2" />
- <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="sendOpPolicyReqDelete" targetRef="ExclusiveGateway_3" />
- <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqDelete">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'DELETE' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:sequenceFlow id="SequenceFlow_0w39hon" sourceRef="ServiceTask_0x8ypxf" targetRef="sendTcaReqDistribute" />
- <bpmn2:sequenceFlow id="SequenceFlow_1xlfq66" sourceRef="ExclusiveGateway_2" targetRef="ServiceTask_0x8ypxf">
- <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'SUBMIT' || actionCd == 'RESUBMIT' }]]></bpmn2:conditionExpression>
- </bpmn2:sequenceFlow>
- <bpmn2:serviceTask id="ServiceTask_0x8ypxf" name="Send to SDC [Submit]" camunda:delegateExpression="${sdcSendReqDelegate}">
- <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
- <bpmn2:incoming>SequenceFlow_1xlfq66</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_0w39hon</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1rga27p" sourceRef="sendTcaReqDistribute" targetRef="sendHolmesReqDistribute" />
- <bpmn2:sequenceFlow id="SequenceFlow_0tpegxf" sourceRef="sendTcaReqDelete" targetRef="sendHolmesReqDelete" />
- <bpmn2:serviceTask id="sendTcaReqDelete" name="Send Tca Micro Service request to Policy [Delete]" camunda:delegateExpression="${tcaPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_0tpegxf</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1kegg6u" sourceRef="sendTcaReqUpdate" targetRef="sendHolmesReqUpdate" />
- <bpmn2:serviceTask id="sendTcaReqDistribute" name="Send Tca Micro Service request to Policy [Submit]" camunda:delegateExpression="${tcaPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_0w39hon</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_1rga27p</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1tu9g11" sourceRef="sendHolmesReqDistribute" targetRef="sendOpPolicyReqDistribute" />
- <bpmn2:serviceTask id="sendHolmesReqDistribute" name="Send Holmes Micro Service request to Policy [Submit]" camunda:delegateExpression="${holmesPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_1rga27p</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_1tu9g11</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:serviceTask id="sendOpPolicyReqDelete" name="Send Operation Policy Request [Delete]" camunda:delegateExpression="${operationalPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_1mtizad</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:serviceTask id="sendHolmesReqDelete" name="Send Holmes Micro Service request to Policy [Delete]" camunda:delegateExpression="${holmesPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_0tpegxf</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_1mtizad</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_1mtizad" sourceRef="sendHolmesReqDelete" targetRef="sendOpPolicyReqDelete" />
- <bpmn2:serviceTask id="sendTcaReqUpdate" name="Send Tca Micro Service request to Policy [Update]" camunda:delegateExpression="${tcaPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_1kegg6u</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:serviceTask id="sendHolmesReqUpdate" name="Send Holmes Micro Service request to Policy [Update]" camunda:delegateExpression="${holmesPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_1kegg6u</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_0ejpmee</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_0ejpmee" sourceRef="sendHolmesReqUpdate" targetRef="sendOpPolicyReqUpdate" />
- </bpmn2:process>
- <bpmndi:BPMNDiagram id="BPMNDiagram_1">
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="_Collaboration_2">
- <bpmndi:BPMNShape id="_BPMNShape_StartEvent_4" bpmnElement="StartEvent_1">
- <dc:Bounds x="72" y="220" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="90" y="261" width="0" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_EndEvent_104" bpmnElement="EndEvent_1">
- <dc:Bounds x="1320" y="216" width="36" height="36" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1338" y="257" width="0" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_6" bpmnElement="sendOpPolicyReqDistribute">
- <dc:Bounds x="912" y="89" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_7" bpmnElement="insEvent">
- <dc:Bounds x="1188" y="194" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_ServiceTask_7" targetElement="_BPMNShape_EndEvent_104">
- <di:waypoint xsi:type="dc:Point" x="1288" y="234" />
- <di:waypoint xsi:type="dc:Point" x="1320" y="234" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1295" y="234" width="6" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_Participant_2" bpmnElement="_Participant_2" isHorizontal="true">
- <dc:Bounds x="0" y="0" width="1369" height="833" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_Lane_2" bpmnElement="Lane_1" isHorizontal="true">
- <dc:Bounds x="30" y="0" width="1339" height="289" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_Lane_6" bpmnElement="Lane_5" isHorizontal="true">
- <dc:Bounds x="30" y="288" width="1339" height="197" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_3" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
- <dc:Bounds x="144" y="212" width="50" height="50" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="169" y="267" width="0" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_4" targetElement="_BPMNShape_ExclusiveGateway_3">
- <di:waypoint xsi:type="dc:Point" x="108" y="238" />
- <di:waypoint xsi:type="dc:Point" x="126" y="238" />
- <di:waypoint xsi:type="dc:Point" x="126" y="237" />
- <di:waypoint xsi:type="dc:Point" x="144" y="237" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="128" y="237" width="6" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_4" bpmnElement="ExclusiveGateway_3" isMarkerVisible="true">
- <dc:Bounds x="1104" y="208" width="50" height="50" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1129" y="263" width="0" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ExclusiveGateway_4" targetElement="_BPMNShape_ServiceTask_7">
- <di:waypoint xsi:type="dc:Point" x="1154" y="233" />
- <di:waypoint xsi:type="dc:Point" x="1188" y="234" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1175" y="234" width="6" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ServiceTask_6" targetElement="_BPMNShape_ExclusiveGateway_4">
- <di:waypoint xsi:type="dc:Point" x="1012" y="130" />
- <di:waypoint xsi:type="dc:Point" x="1057" y="130" />
- <di:waypoint xsi:type="dc:Point" x="1057" y="233" />
- <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1027" y="178.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_12" bpmnElement="sendOpPolicyReqDelete">
- <dc:Bounds x="831" y="385" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_Lane_9" bpmnElement="Lane_4" isHorizontal="true">
- <dc:Bounds x="30" y="484" width="1339" height="117" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_15" bpmnElement="sendOpPolicyReqUpdate">
- <dc:Bounds x="912" y="500" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_08pqhb3_di">
- <di:waypoint xsi:type="dc:Point" x="169" y="262" />
- <di:waypoint xsi:type="dc:Point" x="169" y="540" />
- <di:waypoint xsi:type="dc:Point" x="496" y="540" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="139" y="398" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_28" sourceElement="_BPMNShape_ServiceTask_15" targetElement="_BPMNShape_ExclusiveGateway_4">
- <di:waypoint xsi:type="dc:Point" x="1012" y="539" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="538" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="233" />
- <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1028" y="382.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_Lane_10" bpmnElement="Lane_6" isHorizontal="true">
- <dc:Bounds x="30" y="600" width="1339" height="117" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_16" bpmnElement="sendOpPolicyReqStop">
- <dc:Bounds x="912" y="619" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_29" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_16">
- <di:waypoint xsi:type="dc:Point" x="169" y="262" />
- <di:waypoint xsi:type="dc:Point" x="169" y="659" />
- <di:waypoint xsi:type="dc:Point" x="912" y="659" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="139" y="457.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_30" bpmnElement="SequenceFlow_30" sourceElement="_BPMNShape_ServiceTask_16" targetElement="_BPMNShape_ExclusiveGateway_4">
- <di:waypoint xsi:type="dc:Point" x="1012" y="658" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="658" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="233" />
- <di:waypoint xsi:type="dc:Point" x="1104" y="233" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1028" y="442.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_Lane_11" bpmnElement="Lane_7" isHorizontal="true">
- <dc:Bounds x="30" y="716" width="1339" height="117" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_17" bpmnElement="sendOpPolicyReqRestart">
- <dc:Bounds x="912" y="735" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_31" bpmnElement="SequenceFlow_31" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_17">
- <di:waypoint xsi:type="dc:Point" x="169" y="262" />
- <di:waypoint xsi:type="dc:Point" x="169" y="775" />
- <di:waypoint xsi:type="dc:Point" x="912" y="775" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="139" y="515.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_32" bpmnElement="SequenceFlow_32" sourceElement="_BPMNShape_ServiceTask_17" targetElement="_BPMNShape_ExclusiveGateway_4">
- <di:waypoint xsi:type="dc:Point" x="1012" y="775" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="775" />
- <di:waypoint xsi:type="dc:Point" x="1058" y="234" />
- <di:waypoint xsi:type="dc:Point" x="1105" y="234" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="1028" y="501.5" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_0y2gwy4_di">
- <di:waypoint xsi:type="dc:Point" x="169" y="262" />
- <di:waypoint xsi:type="dc:Point" x="169" y="425" />
- <di:waypoint xsi:type="dc:Point" x="496" y="425" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="139" y="333.5" width="90" height="20" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_0x8ypxf_di" bpmnElement="ServiceTask_0x8ypxf">
- <dc:Bounds x="204" y="89" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0w39hon_di" bpmnElement="SequenceFlow_0w39hon">
- <di:waypoint xsi:type="dc:Point" x="304" y="129" />
- <di:waypoint xsi:type="dc:Point" x="546" y="129" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="380" y="114" width="90" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1xlfq66_di" bpmnElement="SequenceFlow_1xlfq66">
- <di:waypoint xsi:type="dc:Point" x="169" y="212" />
- <di:waypoint xsi:type="dc:Point" x="169" y="129" />
- <di:waypoint xsi:type="dc:Point" x="204" y="129" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="184" y="170.5" width="0" height="0" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="SequenceFlow_1rga27p_di" bpmnElement="SequenceFlow_1rga27p">
- <di:waypoint xsi:type="dc:Point" x="646" y="129" />
- <di:waypoint xsi:type="dc:Point" x="729" y="129" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="642.5" y="104" width="90" height="20" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_1r1brt6_di" bpmnElement="sendTcaReqDistribute">
- <dc:Bounds x="546" y="89" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0tpegxf_di" bpmnElement="SequenceFlow_0tpegxf">
- <di:waypoint xsi:type="dc:Point" x="596" y="425" />
- <di:waypoint xsi:type="dc:Point" x="665" y="425" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="585.5" y="400" width="90" height="20" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_0y2gwy4_di" bpmnElement="sendTcaReqDelete">
- <dc:Bounds x="495.71500000000003" y="385" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1kegg6u_di" bpmnElement="SequenceFlow_1kegg6u">
- <di:waypoint xsi:type="dc:Point" x="596" y="540" />
- <di:waypoint xsi:type="dc:Point" x="688" y="540" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="597" y="515" width="90" height="20" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_08pqhb3_di" bpmnElement="sendTcaReqUpdate">
- <dc:Bounds x="496" y="500" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="ServiceTask_1a6a3ro_di" bpmnElement="sendHolmesReqDistribute">
- <dc:Bounds x="729" y="89" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1tu9g11_di" bpmnElement="SequenceFlow_1tu9g11">
- <di:waypoint xsi:type="dc:Point" x="829" y="129" />
- <di:waypoint xsi:type="dc:Point" x="912" y="129" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="870.5" y="108" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_1234ame_di" bpmnElement="sendHolmesReqDelete">
- <dc:Bounds x="665" y="385" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_1mtizad_di" bpmnElement="SequenceFlow_1mtizad">
- <di:waypoint xsi:type="dc:Point" x="765" y="425" />
- <di:waypoint xsi:type="dc:Point" x="831" y="425" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="798" y="404" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="ServiceTask_17vvyrl_di" bpmnElement="sendHolmesReqUpdate">
- <dc:Bounds x="688" y="500" width="100" height="80" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="SequenceFlow_0ejpmee_di" bpmnElement="SequenceFlow_0ejpmee">
- <di:waypoint xsi:type="dc:Point" x="788" y="540" />
- <di:waypoint xsi:type="dc:Point" x="912" y="540" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="850" y="519" width="0" height="12" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
diff --git a/src/main/resources/clds/camel/flexible-flow.xml b/src/main/resources/clds/camel/flexible-flow.xml
new file mode 100644
index 000000000..7a3ebdb0a
--- /dev/null
+++ b/src/main/resources/clds/camel/flexible-flow.xml
@@ -0,0 +1,36 @@
+<routes xmlns="http://camel.apache.org/schema/spring">
+ <route id="submit">
+ <from uri="direct:processSubmit" />
+ <choice>
+ <when>
+ <simple> ${exchangeProperty.actionCd} == 'SUBMIT' || ${exchangeProperty.actionCd} == 'RESUBMIT'</simple>
+ <to uri="bean:org.onap.clamp.clds.client.SdcSendReqDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+ </when>
+ <when>
+ <simple> ${exchangeProperty.actionCd} == 'DELETE'</simple>
+ <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDeleteDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
+ </when>
+ <when>
+ <simple> ${exchangeProperty.actionCd} == 'UPDATE'</simple>
+ <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
+ <to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+ </when>
+ <when>
+ <simple> ${exchangeProperty.actionCd} == 'STOP'</simple>
+ <to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
+ </when>
+ <when>
+ <simple> ${exchangeProperty.actionCd} == 'RESTART'</simple>
+ <to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
+ </when>
+ </choice>
+ <to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate" />
+ </route>
+
+</routes> \ No newline at end of file
diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties
index 95ba919c8..09cb5c9ea 100644
--- a/src/main/resources/clds/clds-reference.properties
+++ b/src/main/resources/clds/clds-reference.properties
@@ -80,8 +80,8 @@ op.eNodeB.period=10s
sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/
sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080
sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services
-sdc.serviceUsername=test
-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0
+sdc.serviceUsername=clamp
+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981
sdc.artifactLabel=blueprintclampcockpit
sdc.sdcX-InstanceID=CLAMP
sdc.artifactType=DCAE_INVENTORY_BLUEPRINT
@@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann
action.test.override=false
# if action.insert.test.event is true, then insert event even if the action is set to test
action.insert.test.event=false
-CLDS_SERVICE_CACHE_MAX_SECONDS=30
+clds.service.cache.invalidate.after.seconds=120
#DCAE Inventory Url Properties
DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080
diff --git a/src/main/resources/clds/clds-users.json b/src/main/resources/clds/clds-users.json
index 5909e8e78..d2c06c808 100644
--- a/src/main/resources/clds/clds-users.json
+++ b/src/main/resources/clds/clds-users.json
@@ -7,8 +7,7 @@
"permission-type-cl|dev|update",
"permission-type-cl-manage|dev|*",
"permission-type-filter-vf|dev|*",
- "permission-type-template|dev|read",
- "permission-type-template|dev|update"
+ "permission-type-template|dev|read"
]
},
{
diff --git a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
index b4415ed1a..626cf9576 100644
--- a/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/CldsTemplateServiceItCase.java
@@ -50,7 +50,6 @@ import org.onap.clamp.clds.util.ResourceFileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
@@ -58,7 +57,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class CldsTemplateServiceItCase extends AbstractItCase {
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsTemplateServiceItCase.class);
diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
index 56de81d46..2bdef978a 100644
--- a/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/DcaeHttpConnectionManagerItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -59,30 +59,35 @@ import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
@TestPropertySource(locations = "classpath:https/https-test.properties")
public class DcaeHttpConnectionManagerItCase extends AbstractItCase {
+
@Value("${server.port}")
private String httpsPort;
@Value("${server.http-to-https-redirection.port}")
private String httpPort;
- private static TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
- @Override
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return null;
- }
+ private static TrustManager[] trustAllCerts = new TrustManager[] {
+ new X509TrustManager() {
+
+ @Override
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
- @Override
- public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
- }
+ @Override
+ public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+ }
- @Override
- public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
- }
- } };
+ @Override
+ public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+ }
+ }
+ };
private void enableSslNoCheck() throws NoSuchAlgorithmException, KeyManagementException {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HostnameVerifier allHostsValid = new HostnameVerifier() {
+
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
@@ -119,20 +124,20 @@ public class DcaeHttpConnectionManagerItCase extends AbstractItCase {
public void testHttpsGet404() throws IOException {
DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html",
"GET", null, null);
- fail("Should have raised an BadRequestException exception");
+ fail("Should have raised an BadRequestException");
}
@Test(expected = BadRequestException.class)
public void testHttpsPost404() throws IOException {
DcaeHttpConnectionManager.doDcaeHttpQuery("https://localhost:" + this.httpsPort + "/designer/index1.html",
"POST", "", "application/json");
- fail("Should have raised an BadRequestException exception");
+ fail("Should have raised an BadRequestException");
}
- @Test(expected = IOException.class)
+ @Test(expected = BadRequestException.class)
public void testHttpException() throws IOException {
DcaeHttpConnectionManager.doDcaeHttpQuery("http://localhost:" + this.httpsPort + "/designer/index.html", "GET",
null, null);
- fail("Should have raised an IOException exception");
+ fail("Should have raised an BadRequestException");
}
}
diff --git a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
index 62e04ede3..6f5c24d5e 100644
--- a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,7 +35,6 @@ import org.onap.clamp.clds.model.prop.Holmes;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.util.ResourceFileUtil;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -43,8 +42,8 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class HolmesPolicyDelegateItCase extends AbstractItCase {
+
@Test
public void testCreatePolicyJson() throws IOException {
String modelBpmnProp = ResourceFileUtil
diff --git a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
index 300919957..9013e0c41 100644
--- a/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -45,25 +45,24 @@ import org.onap.clamp.clds.util.ResourceFileUtil;
import org.onap.policy.api.AttributeType;
import org.onap.policy.controlloop.policy.builder.BuilderException;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class OperationPolicyReqItCase extends AbstractItCase {
+
@Test
public void formatAttributesTest() throws IOException, BuilderException {
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
- ModelProperties prop = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT, true,
- modelBpmnProp, modelProp);
+ String modelBpmnProp = ResourceFileUtil
+ .getResourceAsString("example/model-properties/policy/modelBpmnProperties.json");
+ String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json");
+ ModelProperties modelProperties = new ModelProperties("testModel", "controlNameTest", CldsEvent.ACTION_SUBMIT,
+ true, modelBpmn, modelBpmnProp);
List<Map<AttributeType, Map<String, String>>> attributes = new ArrayList<>();
- if (prop.getType(Policy.class).isFound()) {
- for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
-
- attributes.add(OperationalPolicyReq.formatAttributes(refProp, prop, prop.getType(Policy.class).getId(),
- policyChain));
+ if (modelProperties.getType(Policy.class).isFound()) {
+ for (PolicyChain policyChain : modelProperties.getType(Policy.class).getPolicyChains()) {
+ attributes.add(OperationalPolicyReq.formatAttributes(refProp, modelProperties,
+ modelProperties.getType(Policy.class).getId(), policyChain));
}
}
assertFalse(attributes.isEmpty());
@@ -77,9 +76,7 @@ public class OperationPolicyReqItCase extends AbstractItCase {
// Remove this field as not always present (depends of policy api)
yaml = yaml.replaceAll(" pnf: null" + System.lineSeparator(), "");
yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
-
assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-1.yaml"), yaml);
-
yaml = URLDecoder.decode(attributes.get(1).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
@@ -87,7 +84,6 @@ public class OperationPolicyReqItCase extends AbstractItCase {
// Remove this field as not always present (depends of policy api)
yaml = yaml.replaceAll(" pnf: null" + System.lineSeparator(), "");
yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
-
assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml);
}
}
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
index 275737761..71bd2d521 100644
--- a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,6 @@ import org.onap.clamp.clds.model.prop.Tca;
import org.onap.clamp.clds.util.ResourceFileUtil;
import org.onap.policy.api.AttributeType;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -53,8 +52,8 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class PolicyClientItCase extends AbstractItCase {
+
String modelProp;
String modelBpmnProp;
String modelName;
@@ -65,8 +64,8 @@ public class PolicyClientItCase extends AbstractItCase {
*/
@Before
public void setUp() throws IOException {
- modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
- modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
+ modelProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmnProperties.json");
+ modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/policy/modelBpmn.json");
modelName = "example-model06";
controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
}
diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
index 7ccda5a85..8f76b1822 100644
--- a/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/RefPropItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,7 +34,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.clamp.clds.AbstractItCase;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -42,8 +41,8 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class RefPropItCase extends AbstractItCase {
+
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(RefPropItCase.class);
/**
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
index f2eadbe4b..548212ef8 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcCatalogServicesItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -41,7 +41,6 @@ import org.onap.clamp.clds.model.CldsSdcServiceInfo;
import org.onap.clamp.clds.model.CldsServiceData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -49,46 +48,38 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class SdcCatalogServicesItCase extends AbstractItCase {
+
@Autowired
private SdcCatalogServices sdcCatalogWired = new SdcCatalogServices();
@Test
public void removeDuplicateServicesTest() {
-
CldsSdcServiceInfo service1a = new CldsSdcServiceInfo();
service1a.setName("service1");
service1a.setVersion("1.0");
service1a.setInvariantUUID("invariantUUID1.0");
-
List<CldsSdcServiceInfo> rawCldsSdcServiceList = new LinkedList<>();
rawCldsSdcServiceList.add(service1a);
rawCldsSdcServiceList.add(service1a);
-
CldsSdcServiceInfo service1b = new CldsSdcServiceInfo();
service1b.setName("service1");
service1b.setVersion("1.1");
service1b.setInvariantUUID("invariantUUID1.1");
rawCldsSdcServiceList.add(service1b);
-
CldsSdcServiceInfo service1c = new CldsSdcServiceInfo();
service1c.setName("service1");
service1c.setVersion("1.2");
service1c.setInvariantUUID("invariantUUID1.2");
rawCldsSdcServiceList.add(service1c);
-
CldsSdcServiceInfo service2 = new CldsSdcServiceInfo();
service2.setName("service2");
service2.setVersion("1.0");
service2.setInvariantUUID("invariantUUID2.0");
rawCldsSdcServiceList.add(service2);
-
SdcCatalogServices catalogServices = new SdcCatalogServices();
List<CldsSdcServiceInfo> resultList = catalogServices.removeDuplicateServices(rawCldsSdcServiceList);
-
assertTrue(resultList.size() == 2);
-
CldsSdcServiceInfo res1;
CldsSdcServiceInfo res2;
if ("service1".equals(resultList.get(0).getName())) {
@@ -98,43 +89,33 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
res1 = resultList.get(1);
res2 = resultList.get(0);
}
-
assertTrue("service1".equals(res1.getName()));
assertTrue("1.2".equals(res1.getVersion()));
-
assertTrue("service2".equals(res2.getName()));
assertTrue("1.0".equals(res2.getVersion()));
-
}
@Test
public void removeDuplicateSdcResourceInstancesTest() {
-
List<CldsSdcResource> rawCldsSdcResourceList = new LinkedList<>();
-
CldsSdcResource sdcResource1a = new CldsSdcResource();
sdcResource1a.setResourceInstanceName("resource1");
sdcResource1a.setResourceVersion("1.0");
rawCldsSdcResourceList.add(sdcResource1a);
-
CldsSdcResource sdcResource1b = new CldsSdcResource();
sdcResource1b.setResourceInstanceName("resource1");
sdcResource1b.setResourceVersion("1.1");
rawCldsSdcResourceList.add(sdcResource1b);
-
CldsSdcResource sdcResource1c = new CldsSdcResource();
sdcResource1c.setResourceInstanceName("resource1");
sdcResource1c.setResourceVersion("1.2");
rawCldsSdcResourceList.add(sdcResource1c);
-
CldsSdcResource sdcResource2 = new CldsSdcResource();
sdcResource2.setResourceInstanceName("resource2");
sdcResource2.setResourceVersion("1.0");
rawCldsSdcResourceList.add(sdcResource2);
-
SdcCatalogServices catalogServices = new SdcCatalogServices();
List<CldsSdcResource> resultList = catalogServices.removeDuplicateSdcResourceInstances(rawCldsSdcResourceList);
-
CldsSdcResource res1;
CldsSdcResource res2;
if ("resource1".equals(resultList.get(0).getResourceInstanceName())) {
@@ -144,44 +125,34 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
res1 = resultList.get(1);
res2 = resultList.get(0);
}
-
assertTrue("resource1".equals(res1.getResourceInstanceName()));
assertTrue("1.2".equals(res1.getResourceVersion()));
-
assertTrue("resource2".equals(res2.getResourceInstanceName()));
assertTrue("1.0".equals(res2.getResourceVersion()));
-
}
@Test
public void removeDuplicateSdcResourceBasicInfoTest() {
-
List<CldsSdcResourceBasicInfo> rawCldsSdcResourceList = new LinkedList<>();
-
CldsSdcResourceBasicInfo sdcResource1a = new CldsSdcResourceBasicInfo();
sdcResource1a.setName("resource1");
sdcResource1a.setVersion("1.0");
rawCldsSdcResourceList.add(sdcResource1a);
-
CldsSdcResourceBasicInfo sdcResource1b = new CldsSdcResourceBasicInfo();
sdcResource1b.setName("resource1");
sdcResource1b.setVersion("1.1");
rawCldsSdcResourceList.add(sdcResource1b);
-
CldsSdcResourceBasicInfo sdcResource1c = new CldsSdcResourceBasicInfo();
sdcResource1c.setName("resource1");
sdcResource1c.setVersion("1.2");
rawCldsSdcResourceList.add(sdcResource1c);
-
CldsSdcResourceBasicInfo sdcResource2 = new CldsSdcResourceBasicInfo();
sdcResource2.setName("resource2");
sdcResource2.setVersion("1.0");
rawCldsSdcResourceList.add(sdcResource2);
-
SdcCatalogServices catalogServices = new SdcCatalogServices();
List<CldsSdcResourceBasicInfo> resultList = catalogServices
.removeDuplicateSdcResourceBasicInfo(rawCldsSdcResourceList);
-
CldsSdcResourceBasicInfo res1;
CldsSdcResourceBasicInfo res2;
if ("resource1".equals(resultList.get(0).getName())) {
@@ -191,19 +162,15 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
res1 = resultList.get(1);
res2 = resultList.get(0);
}
-
assertTrue("resource1".equals(res1.getName()));
assertTrue("1.2".equals(res1.getVersion()));
-
assertTrue("resource2".equals(res2.getName()));
assertTrue("1.0".equals(res2.getVersion()));
-
}
@Test
public void getServiceUuidFromServiceInvariantIdTest() throws Exception {
SdcCatalogServices spy = Mockito.spy(sdcCatalogWired);
-
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"),
"UTF-8")).when(spy).getSdcServicesInformation(null);
@@ -211,120 +178,97 @@ public class SdcCatalogServicesItCase extends AbstractItCase {
// should not exist, returning empty string
String resUuidVcts4Null = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9b");
assertTrue("".equals(resUuidVcts4Null));
-
// Try the vcts4 version 1.1, this one should be there as it replaces
// the vcts4 v1.0
String resUuidVcts4Latest = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(resUuidVcts4Latest));
-
// Try the vcts5 version 1.0, this one should be there
String resUuidVcts5 = spy.getServiceUuidFromServiceInvariantId("a33ed748-3477-4434-b3f3-b5560f5e7d8c");
assertTrue("29018914-966c-442d-9d08-251b9dc45b7f".equals(resUuidVcts5));
-
// try one that does not exist at all
String resUuidUnknown = spy.getServiceUuidFromServiceInvariantId("testuuid");
assertTrue("".equals(resUuidUnknown));
-
}
@Test
public void getCldsServiceDataWithAlarmConditionsTest() throws Exception {
SdcCatalogServices spy = Mockito.spy(sdcCatalogWired);
-
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServicesListExample.json"),
"UTF-8")).when(spy).getSdcServicesInformation(null);
-
// This invariant uuid is the one from vcts4 v1.1
String serviceResourceDetailUrl = refProp.getStringValue("sdc.serviceUrl")
+ "/29018914-966c-442d-9d08-251b9dc45b8f/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcServiceDetailsExample.json"),
"UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(serviceResourceDetailUrl);
-
String resourceDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/585822c7-4027-4f84-ba50-e9248606f136/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcResourceDetailsExample.json"),
"UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(resourceDetailUrl);
-
String securityRulesDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/d57e57d2-e3c6-470d-8d16-e6ea05f536c5/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcSecurityRules.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(securityRulesDetailUrl);
-
String cinderVolumeDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/b4288e07-597a-44a2-aa98-ad36e551a39d/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCinderVolume.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(cinderVolumeDetailUrl);
-
String vfcGenericDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/2c8f1219-8000-4001-aa13-496a0396d40f/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCGenericWithAlarms.json"),
"UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcGenericDetailUrl);
-
String csvAlarmsDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/2c8f1219-8000-4001-aa13-496a0396d40f/resourceInstances/virc_fe_be/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl);
-
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl);
-
String csvAlarmsDetailUrl2 = refProp.getStringValue("sdc.catalog.url")
+ "resources/d7646638-2572-4a94-b497-c028ac15f9ca/artifacts/5138e316-0237-49aa-817a-b3d8eaf77392";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcAlarmsList.csv"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(csvAlarmsDetailUrl2);
-
String allVfResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VF";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFResources.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(allVfResourcesDetailUrl);
-
String vfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url")
+ "resources/a0475018-1e7e-4ddd-8bee-33cbf958c2e6/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResourceExample.json"),
"UTF-8")).when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourcesDetailUrl);
-
String allVfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=VFC";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResources.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(allVfcResourcesDetailUrl);
-
String allCvfcResourcesDetailUrl = refProp.getStringValue("sdc.catalog.url") + "resources?resourceType=CVFC";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcCVFCResources.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(allCvfcResourcesDetailUrl);
-
String allVfAlarms = refProp.getStringValue("sdc.catalog.url")
+ "resources/84855843-5247-4e97-a2bd-5395a510253b/artifacts/d57ac7ec-f3c3-4793-983a-c75ac3a43153";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcMeasurementsList.csv"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(allVfAlarms);
-
String vfcResourceExample = refProp.getStringValue("sdc.catalog.url")
+ "resources/d7646638-2572-4a94-b497-c028ac15f9ca/metadata";
Mockito.doReturn(IOUtils.toString(
SdcCatalogServicesItCase.class.getResourceAsStream("/example/sdc/sdcVFCResourceExample.json"), "UTF-8"))
.when(spy).getCldsServicesOrResourcesBasedOnURL(vfcResourceExample);
-
CldsServiceData cldsServiceData = spy
.getCldsServiceDataWithAlarmConditions("a33ed748-3477-4434-b3f3-b5560f5e7d9c");
assertTrue("a33ed748-3477-4434-b3f3-b5560f5e7d9c".equals(cldsServiceData.getServiceInvariantUUID()));
assertTrue("29018914-966c-442d-9d08-251b9dc45b8f".equals(cldsServiceData.getServiceUUID()));
assertTrue(cldsServiceData.getCldsVfs().size() == 1);
-
List<CldsAlarmCondition> alarmsList = spy.getAllAlarmConditionsFromCldsServiceData(cldsServiceData,
"alarmCondition");
assertTrue(alarmsList.size() == 12);
-
}
-
}
diff --git a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
index 757d85b53..afff9dd7d 100644
--- a/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/SdcReqItCase.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,67 +23,85 @@
package org.onap.clamp.clds.it;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import java.io.IOException;
import java.security.GeneralSecurityException;
-import java.util.ArrayList;
import java.util.List;
import org.apache.commons.codec.DecoderException;
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.onap.clamp.clds.client.req.sdc.SdcCatalogServices;
+import org.onap.clamp.clds.AbstractItCase;
import org.onap.clamp.clds.client.req.sdc.SdcReq;
-import org.onap.clamp.clds.model.CldsSdcResource;
-import org.onap.clamp.clds.model.CldsSdcServiceDetail;
-import org.onap.clamp.clds.model.prop.Global;
+import org.onap.clamp.clds.model.CldsEvent;
import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
-public class SdcReqItCase {
- String baseUrl = "AYBABTU";
- String serviceInvariantUuid = "serviceInvariantUUID";
+public class SdcReqItCase extends AbstractItCase {
+
@Autowired
private SdcReq sdcReq;
+ private String modelBpmnProp;
+ private String modelBpmn;
+ private String modelName;
+ private String controlName;
+ private ModelProperties modelProperties;
+ private String jsonWithYamlInside;
+
+ /**
+ * Initialize Test.
+ */
+ @Before
+ public void setUp() throws IOException {
+ modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json");
+ modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json");
+ modelName = "example-model01";
+ controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
+ modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
+ modelBpmnProp);
+ jsonWithYamlInside = ResourceFileUtil.getResourceAsString("example/tca-policy-req/prop-text.json");
+ }
+
+ @Test
+ public void formatBlueprintTest() throws IOException {
+ String blueprintFormatted = sdcReq.formatBlueprint(modelProperties, jsonWithYamlInside);
+ assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"),
+ blueprintFormatted);
+ }
+
+ @Test
+ public void formatSdcLocationsReqTest() {
+ String blueprintFormatted = sdcReq.formatSdcLocationsReq(modelProperties, "testos");
+ assertEquals(
+ "{\"artifactName\":\"testos\",\"locations\":[\"SNDGCA64\",\"ALPRGAED\",\"LSLEILAA\",\"MDTWNJC1\"]}",
+ blueprintFormatted);
+ }
+
+ @Test
+ public void formatSdcReqTest() {
+ String jsonResult = sdcReq.formatSdcReq("payload", "artifactName", "artifactLabel", "artifactType");
+ JSONAssert.assertEquals(
+ "{\"payloadData\" : \"cGF5bG9hZA==\",\"artifactLabel\" : \"artifactLabel\",\"artifactName\" :\"artifactName\",\"artifactType\" : \"artifactType\","
+ + "\"artifactGroupType\" : \"DEPLOYMENT\",\"description\" : \"from CLAMP Cockpit\"}",
+ jsonResult, true);
+ }
@Test
- public void getSdcReqUrlsListNoGlobalPropTest() throws GeneralSecurityException, DecoderException {
- ModelProperties prop = mock(ModelProperties.class);
- SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class);
- DelegateExecution delegateExecution = mock(DelegateExecution.class);
- CldsSdcResource cldsSdcResource = mock(CldsSdcResource.class);
- List<CldsSdcResource> cldsSdcResources = new ArrayList<>();
- cldsSdcResources.add(cldsSdcResource);
- List<String> resourceVf = new ArrayList<>();
- resourceVf.add(serviceInvariantUuid);
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- Global global = mock(Global.class);
- when(prop.getGlobal()).thenReturn(global);
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(global.getService()).thenReturn(serviceInvariantUuid);
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- CldsSdcServiceDetail cldsSdcServiceDetail = mock(CldsSdcServiceDetail.class);
- when(sdcCatalogServices.getCldsSdcServiceDetailFromJson(null)).thenReturn(cldsSdcServiceDetail);
- when(global.getResourceVf()).thenReturn(new ArrayList<>());
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(cldsSdcServiceDetail.getResources()).thenReturn(cldsSdcResources);
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(cldsSdcResource.getResoucreType()).thenReturn("VF");
- Assert.assertTrue(sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
- when(global.getResourceVf()).thenReturn(resourceVf);
- when(cldsSdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUuid);
- when(cldsSdcResource.getResourceInstanceName()).thenReturn("Resource instance name");
- List<String> expected = new ArrayList<>();
- expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts");
- Assert.assertEquals(expected, sdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution));
+ public void getSdcReqUrlsListTest() throws GeneralSecurityException, DecoderException {
+ List<String> listUrls = sdcReq.getSdcReqUrlsList(modelProperties, refProp.getStringValue("sdc.serviceUrl"));
+ assertNotNull(listUrls);
+ assertTrue(listUrls.size() == 1);
+ assertTrue(listUrls.get(0).contains(
+ "/sdc/v1/catalog/services/56441b4b-0467-41dc-9a0e-e68613838219/resourceInstances/vpacketgen0/artifacts"));
}
}
diff --git a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
index c17ec0df8..419bfde22 100644
--- a/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/TcaRequestFormatterItCase.java
@@ -39,7 +39,6 @@ import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.util.ResourceFileUtil;
import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
@@ -47,14 +46,14 @@ import org.springframework.test.context.junit4.SpringRunner;
*/
@RunWith(SpringRunner.class)
@SpringBootTest
-@TestPropertySource(locations = "classpath:application-no-camunda.properties")
public class TcaRequestFormatterItCase extends AbstractItCase {
- String modelProp;
- String modelBpmn;
- String modelName;
- String controlName;
- String yamlInput;
+ private String modelProp;
+ private String modelBpmn;
+ private String modelName;
+ private String controlName;
+ private String yamlInput;
+ private ModelProperties modelProperties;
/**
* Initialize Test.
@@ -66,13 +65,13 @@ public class TcaRequestFormatterItCase extends AbstractItCase {
yamlInput = ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-input.yaml");
modelName = "example-model01";
controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
+ modelProperties = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
+ modelProp);
}
@Test
public void testCreatePolicyJson() throws IOException, JSONException {
- ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
- modelProp);
- String result = TcaRequestFormatter.createPolicyJson(refProp, prop);
+ String result = TcaRequestFormatter.createPolicyJson(refProp, modelProperties);
assertNotNull(result);
JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/tca-policy-expected.json"),
result, true);
@@ -80,9 +79,7 @@ public class TcaRequestFormatterItCase extends AbstractItCase {
@Test
public void testUpdatedBlueprintWithConfiguration() throws IOException {
- ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, false, modelBpmn,
- modelProp);
- String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlInput);
+ String result = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, modelProperties, yamlInput);
assertNotNull(result);
assertEquals(ResourceFileUtil.getResourceAsString("example/tca-policy-req/blueprint-expected.yaml"), result);
}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
index 03d7d65da..138d727c0 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElement.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,6 +30,7 @@ import com.fasterxml.jackson.databind.JsonNode;
*/
public class CustomModelElement extends AbstractModelElement {
+ private String test;
private static final String CUSTOM_TYPE = "customType";
/**
@@ -38,10 +39,18 @@ public class CustomModelElement extends AbstractModelElement {
public CustomModelElement(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {
super(CUSTOM_TYPE, modelProp, modelBpmn, modelJson);
topicPublishes = getValueByName("topicPublishes");
+ test = this.getValueByName("test");
}
public static final String getType() {
return CUSTOM_TYPE;
}
+ public String getTest() {
+ return test;
+ }
+
+ public void setTest(String test) {
+ this.test = test;
+ }
}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
index 89eaf51cd..46c70e55e 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/CustomModelElementTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,33 +35,21 @@ public class CustomModelElementTest {
}
@Test
- public void testNewElement() {
-
- try {
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
- String modName = "example-model-name";
- String controlName = "example-control-name";
-
- CustomModelElement customModelElement = null;
-
- // Instantiate first, we should not have our CustomModelElement yet
- ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
-
- Assert.assertNotNull(prop);
-
- customModelElement = prop.getType(CustomModelElement.class);
-
- Assert.assertNull(customModelElement);
-
- ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());
-
- customModelElement = prop.getType(CustomModelElement.class);
-
- Assert.assertNotNull(customModelElement);
-
- } catch (IOException e) {
- e.printStackTrace();
- }
+ public void testCustomElement() throws IOException {
+ String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/model-properties/custom/modelBpmn.json");
+ String modelProp = ResourceFileUtil
+ .getResourceAsString("example/model-properties/custom/modelBpmnProperties.json");
+ String modName = "example-model-name";
+ String controlName = "example-control-name";
+ CustomModelElement customModelElement = null;
+ // Instantiate first, we should not have our CustomModelElement yet
+ ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
+ Assert.assertNotNull(prop);
+ customModelElement = prop.getType(CustomModelElement.class);
+ Assert.assertNull(customModelElement);
+ ModelProperties.registerModelElement(CustomModelElement.class, CustomModelElement.getType());
+ customModelElement = prop.getType(CustomModelElement.class);
+ Assert.assertNotNull(customModelElement);
+ Assert.assertEquals("This is a test", customModelElement.getTest());
}
}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
index eb0214127..7bb11a9ef 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP CLAMP
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -46,14 +46,11 @@ public class ModelPropertiesTest {
@Test
public void testTcaModelDecoding() throws IOException {
-
String modelBpmnProp = ResourceFileUtil
.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json");
String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json");
-
ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
modelBpmnProp);
-
Policy policy = prop.getType(Policy.class);
assertTrue(policy.isFound());
assertEquals(1, policy.getPolicyChains().size());
@@ -64,7 +61,6 @@ public class ModelPropertiesTest {
assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
-
Tca tca = prop.getType(Tca.class);
assertNotNull(tca);
assertTrue(tca.isFound());
@@ -73,14 +69,12 @@ public class ModelPropertiesTest {
assertEquals("policy1", tca.getTcaItem().getPolicyId());
assertEquals("f734f031-10aa-t8fb-330f-04dde2886325", tca.getTcaItem().getTcaUuId());
assertEquals(2, tca.getTcaItem().getTcaThresholds().size());
-
assertEquals("ABATED", tca.getTcaItem().getTcaThresholds().get(0).getClosedLoopEventStatus());
assertEquals(
"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
tca.getTcaItem().getTcaThresholds().get(0).getFieldPath());
assertEquals("LESS_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(0).getOperator());
assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(0).getThreshold());
-
assertEquals("ONSET", tca.getTcaItem().getTcaThresholds().get(1).getClosedLoopEventStatus());
assertEquals("$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
tca.getTcaItem().getTcaThresholds().get(1).getFieldPath());
@@ -90,14 +84,11 @@ public class ModelPropertiesTest {
@Test
public void testHolmesModelDecoding() throws IOException {
-
String modelBpmnProp = ResourceFileUtil
.getResourceAsString("example/model-properties/holmes/modelBpmnProperties.json");
String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/holmes/modelBpmn.json");
-
ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
modelBpmnProp);
-
Policy policy = prop.getType(Policy.class);
assertTrue(policy.isFound());
assertEquals(1, policy.getPolicyChains().size());
@@ -108,7 +99,6 @@ public class ModelPropertiesTest {
assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
-
Holmes holmes = prop.getType(Holmes.class);
assertNotNull(holmes);
assertTrue(holmes.isFound());
@@ -121,6 +111,6 @@ public class ModelPropertiesTest {
CldsModel cldsModel = new CldsModel();
cldsModel.setPropText(
ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json"));
- assertEquals("f5213e3a-9191-4362-93b5-b67f8d770e44", ModelProperties.getVf(cldsModel));
+ assertEquals("023a3f0d-1161-45ff-b4cf-8918a8ccf3ad", ModelProperties.getVf(cldsModel));
}
} \ No newline at end of file
diff --git a/src/test/resources/application-no-camunda.properties b/src/test/resources/application-no-camunda.properties
index f7b2badef..2e284b032 100644
--- a/src/test/resources/application-no-camunda.properties
+++ b/src/test/resources/application-no-camunda.properties
@@ -76,42 +76,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
camel.springboot.consumer-template-cache-size=1000
camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
+camel.springboot.jmx-enabled=false
camel.defaultthreadpool.poolsize=10
camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-
-#server.port=0
-
-#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e
-spring.datasource.camunda.validationQuery=SELECT 1
-spring.datasource.camunda.validationQueryTimeout=20000
-spring.datasource.camunda.validationInterval=30000
-spring.datasource.camunda.testWhileIdle = true
-spring.datasource.camunda.minIdle = 0
-spring.datasource.camunda.initialSize=0
-# Automatically test whether a connection provided is good or not
-spring.datasource.camunda.testOnBorrow=true
-spring.datasource.camunda.ignoreExceptionOnPreLoad=true
-
-#Camunda application properties
-#Camunda history level
-camunda.bpm.history-level=none
-camunda.bpm.enabled=false
-camunda.bpm.jpa.enabled=false
-camunda.bpm.auto-deployment-enabled=false
-camunda.bpm.job-execution.active=false
-camunda.bpm.job-execution.enabled=false
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.metrics.enabled=false
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.database.schema-update=true
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml
+#camel.springboot.typeConversion = false
#clds datasource connection details
spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
diff --git a/src/test/resources/clds/clds-reference.properties b/src/test/resources/clds/clds-reference.properties
index 4627269a5..d6c8bc45b 100644
--- a/src/test/resources/clds/clds-reference.properties
+++ b/src/test/resources/clds/clds-reference.properties
@@ -2,19 +2,19 @@
# ============LICENSE_START=======================================================
# ONAP CLAMP
# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# Copyright (C) 2017-2018 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.
+# 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
+#
+# 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============================================
# ===================================================================
@@ -77,11 +77,11 @@ op.eNodeB.limit=2
op.eNodeB.period=10s
#
# Sdc service properties
-sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/
-sdc.hostUrl=http://sdc.api.simpledemo.onap.org:8080
-sdc.serviceUrl=http://sdc.api.simpledemo.onap.org:8080/sdc/v1/catalog/services
-sdc.serviceUsername=test
-sdc.servicePassword=aa2871669d793c7fb7abbcda31b88b4c29bf2982755b25f08f8d0130539c11b0
+sdc.catalog.url=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/
+sdc.hostUrl=http://localhost:${docker.http-cache.port.host}
+sdc.serviceUrl=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/services
+sdc.serviceUsername=clamp
+sdc.servicePassword=b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981
sdc.artifactLabel=blueprintclampcockpit
sdc.sdcX-InstanceID=CLAMP
sdc.artifactType=DCAE_INVENTORY_BLUEPRINT
@@ -98,7 +98,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann
action.test.override=false
# if action.insert.test.event is true, then insert event even if the action is set to test
action.insert.test.event=false
-CLDS_SERVICE_CACHE_MAX_SECONDS=30
+clds.service.cache.invalidate.after.seconds=120
#DCAE Inventory Url Properties
DCAE_INVENTORY_URL = http://dcae.api.simpledemo.onap.org:8080
diff --git a/src/test/resources/example/modelBpmnProp.json b/src/test/resources/example/model-properties/custom/modelBpmn.json
index c8efff877..c8efff877 100644
--- a/src/test/resources/example/modelBpmnProp.json
+++ b/src/test/resources/example/model-properties/custom/modelBpmn.json
diff --git a/src/test/resources/example/model-properties/custom/modelBpmnProperties.json b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json
new file mode 100644
index 000000000..fc2f1fd99
--- /dev/null
+++ b/src/test/resources/example/model-properties/custom/modelBpmnProperties.json
@@ -0,0 +1,248 @@
+{
+ "global":
+ [
+ {
+ "name": "service",
+ "value":
+ [
+ "0f983e18-4603-4bb4-a98c-e29691fb16a1"
+ ]
+ },
+
+ {
+ "name": "vf",
+ "value":
+ [
+ "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
+ ]
+ },
+
+ {
+ "name": "actionSet",
+ "value":
+ [
+ "enbRecipe"
+ ]
+ },
+
+ {
+ "name": "location",
+ "value":
+ [
+ "SNDGCA64"
+ ]
+ }
+ ],
+
+ "Policy_":
+ {
+ "Policy1":
+ [
+ {
+ "name": "pname",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "pid",
+ "value": "1"
+ },
+
+ {
+ "name": "timeout",
+ "value": "500"
+ },
+
+ {
+ "policyConfigurations":
+ [
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "restart"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ ""
+ ]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
+ }
+ ],
+
+ [
+ {
+ "name": "recipe",
+ "value":
+ [
+ "rebuild"
+ ]
+ },
+
+ {
+ "name": "maxRetries",
+ "value":
+ [
+ "3"
+ ]
+ },
+
+ {
+ "name": "retryTimeLimit",
+ "value":
+ [
+ "180"
+ ]
+ },
+
+ {
+ "name": "_id",
+ "value":
+ [
+ "ItE5xKT"
+ ]
+ },
+
+ {
+ "name": "parentPolicy",
+ "value":
+ [
+ "n9bQ4t6"
+ ]
+ },
+
+ {
+ "name": "parentPolicyConditions",
+ "value":
+ [
+ "Failure_Retries",
+ "Failure_Timeout",
+ "Failure_Exception",
+ "Failure"
+ ]
+ },
+ {
+ "name": "targetResourceId",
+ "value":
+ [
+ "resource-id"
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+
+ "TCA_":
+ {
+ "Narra":
+ [
+ {
+ "name": "tname",
+ "value": "Narra"
+ },
+
+ {
+ "name": "tuuid",
+ "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
+ },
+
+ {
+ "name": "tnfc",
+ "value": "ENBE"
+ },
+
+ {
+ "name": "tcaEnab",
+ "value": "on"
+ },
+
+ {
+ "name": "tcaPol",
+ "value": "Policy1"
+ },
+
+ {
+ "name": "tcaPolId",
+ "value": "1"
+ },
+
+ {
+ "name": "tcaInt",
+ "value": "2"
+ },
+
+ {
+ "name": "tcaSev",
+ "value": "Warning"
+ },
+
+ {
+ "name": "tcaVio",
+ "value": "3"
+ },
+
+ {
+ "serviceConfigurations":
+ [
+ [
+ "PMRRCCONNESTABFAILCELLLATENCY",
+ "LESS",
+ "4",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
+ ],
+
+ [
+ "PMRAATTCBRA",
+ "GREATER",
+ "30",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
+ ]
+ ]
+ }
+ ]
+ },
+
+ "CustomType_": [
+ {
+ "name": "test",
+ "value": "This is a test"
+ }
+ ]
+} \ No newline at end of file
diff --git a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
index cd76a1289..43fecc9ea 100644
--- a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
+++ b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
@@ -69,13 +69,6 @@
]
},
{
- "name": "location",
- "value": [
- "SNDGCA64",
- "ALPRGAED"
- ]
- },
- {
"name": "vf",
"value": [
"f5213e3a-9191-4362-93b5-b67f8d770e44"
diff --git a/src/test/resources/example/model-properties/modelBpmn.json b/src/test/resources/example/model-properties/modelBpmn.json
deleted file mode 100644
index 8f7b8e61a..000000000
--- a/src/test/resources/example/model-properties/modelBpmn.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "policy": [
- {
- "id": "Policy_0honxgv",
- "from": "TCA_1jy9to4"
- }
- ],
- "tca": [
- {
- "id": "TCA_1jy9to4",
- "from": "Holmes_0i4n2mm"
- }
- ],
- "holmes": [
- {
- "id": "Holmes_0i4n2mm",
- "from": "VesCollector_0orydnh"
- }
- ],
- "vesCollector": [
- {
- "id": "VesCollector_0orydnh",
- "from": "StartEvent_1"
- }
- ]
-}
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
deleted file mode 100644
index eacb12448..000000000
--- a/src/test/resources/example/model-properties/modelBpmnProp.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "Policy_0honxgv": {
- "policy1": [
- {
- "name": "pname",
- "value": "policy1"
- },
- {
- "name": "pid",
- "value": "0"
- },
- {
- "name": "timeout",
- "value": "345"
- },
- {
- "policyConfigurations": [
- [
- {
- "name": "maxRetries",
- "value": [
- "3"
- ]
- },
- {
- "name": "retryTimeLimit",
- "value": [
- "180"
- ]
- },
- {
- "name": "_id",
- "value": [
- "dGLuNqg"
- ]
- },
- {
- "name": "parentPolicy",
- "value": [
- ""
- ]
- },
- {
- "name": "targetResourceId",
- "value": [
- "resourceid"
- ]
- }
- ]
- ]
- }
- ]
- },
- "TCA_1jy9to4": {
- "tca1": [
- {
- "name": "tname",
- "value": "tca1"
- },
- {
- "name": "tuuid",
- "value": "f43e3499-8c9c-teed-bb41-a0cb38ebf0d3"
- },
- {
- "name": "tnfc",
- "value": ""
- },
- {
- "name": "tcaEnab",
- "value": "on"
- },
- {
- "name": "tcaPol",
- "value": "policy1"
- },
- {
- "name": "tcaPolId",
- "value": "0"
- },
- {
- "name": "tcaInt",
- "value": "1"
- },
- {
- "name": "tcaSev",
- "value": "NORMAL"
- },
- {
- "name": "tcaVio",
- "value": "1"
- },
- {
- "serviceConfigurations": [
- ]
- }
- ]
- },
- "Holmes_0i4n2mm": [
- {
- "name": "correlationalLogic",
- "value": "blabla"
- },
- {
- "name": "configPolicyName",
- "value": "policy1"
- }
- ]
-}
diff --git a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json b/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
deleted file mode 100644
index 3030adfb3..000000000
--- a/src/test/resources/example/model-properties/modelBpmnPropWithGlobal.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
- "tca": {
- "tname": "New_Set",
- "tcaInt": "1",
- "tcaVio": "1",
- "tcaSev": {
- "NORMAL": "NORMAL",
- "CRITICAL": "CRITICAL",
- "MAJOR": "MAJOR",
- "MINOR": "MINOR",
- "WARNING": "WARNING"
- },
- "fieldPath": {
- "FIELDPATH_test_1": "FIELDPATH_test_1",
- "FIELDPATH_test_2": "FIELDPATH_test_2"
- },
- "operator": {
- ">": "GREATER",
- "=": "EQUAL",
- "<": "LESS"
- },
- "opsPolicy": {
- "POLICY_test_X": "POLICY_test_X",
- "POLICY_test_Y": "POLICY_test_Y"
- }
- },
- "global": [
- {
- "name": "actionSet",
- "value": [
- "vnfRecipe"
- ]
- },
- {
- "name": "location",
- "value": [
- "SNDGCA64",
- "ALPRGAED"
- ]
- },
- {
- "name": "vf",
- "value": [
- "f5213e3a-9191-4362-93b5-b67f8d770e44"
- ]
- },
- {
- "name": "location",
- "value": [
- "SNDGCA64",
- "ALPRGAED",
- "LSLEILAA",
- "MDTWNJC1"
- ]
- }
- ],
- "policy": {
- "pname": "0",
- "timeout": 345,
- "vnfRecipe": {
- "": "",
- "restart": "Restart",
- "rebuild": "Rebuild",
- "migrate": "Migrate",
- "healthCheck": "Health Check",
- "evacuate": "Evacuate"
- },
- "enbRecipe": {
- "": "",
- "reset": "Reset"
- },
- "maxRetries": "3",
- "retryTimeLimit": 180,
- "resource": {
- "vCTS": "vCTS",
- "v3CDB": "v3CDB",
- "vUDR": "vUDR",
- "vCOM": "vCOM",
- "vRAR": "vRAR",
- "vLCS": "vLCS",
- "vUDR-BE": "vUDR-BE",
- "vDBE": "vDBE"
- },
- "parentPolicyConditions": {
- "Failure_Retries": "Failure: Max Retries Exceeded",
- "Failure_Timeout": "Failure: Time Limit Exceeded",
- "Failure_Guard": "Failure: Guard",
- "Failure_Exception": "Failure: Exception",
- "Failure": "Failure: Other",
- "Success": "Success"
- },
- "targetResourceId": "resourceid"
- },
- "shared": {
- "byService": {
- "": {
- "vf": {
- "": ""
- },
- "location": {
- "": ""
- },
- "alarmCondition": {
- "": ""
- }
- }
- },
- "byVf": {
- "": {
- "vfc": {
- "": ""
- }
- }
- }
- }
-}
diff --git a/src/test/resources/example/modelBpmnPropForPolicy.json b/src/test/resources/example/model-properties/policy/modelBpmn.json
index de643a69a..de643a69a 100644
--- a/src/test/resources/example/modelBpmnPropForPolicy.json
+++ b/src/test/resources/example/model-properties/policy/modelBpmn.json
diff --git a/src/test/resources/example/modelProp.json b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json
index 99f67b62e..99f67b62e 100644
--- a/src/test/resources/example/modelProp.json
+++ b/src/test/resources/example/model-properties/policy/modelBpmnProperties.json
diff --git a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
index 7bb4fe0bb..8e2780cda 100644
--- a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
+++ b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json
@@ -101,20 +101,13 @@
{
"name": "service",
"value": [
- "serviceUUID"
- ]
- },
- {
- "name": "location",
- "value": [
- "SNDGCA64",
- "ALPRGAED"
+ "4cc5b45a-1f63-4194-8100-cd8e14248c92"
]
},
{
"name": "vf",
"value": [
- "f5213e3a-9191-4362-93b5-b67f8d770e44"
+ "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"
]
},
{
diff --git a/src/test/resources/example/modelPropForPolicy.json b/src/test/resources/example/modelPropForPolicy.json
deleted file mode 100644
index bf3480924..000000000
--- a/src/test/resources/example/modelPropForPolicy.json
+++ /dev/null
@@ -1,432 +0,0 @@
-{
- "global":
- [
- {
- "name": "service",
- "value":
- [
- "0f983e18-4603-4bb4-a98c-e29691fb16a1"
- ]
- },
-
- {
- "name": "vf",
- "value":
- [
- "6c7aaec2-59eb-41d9-8681-b7f976ab668d"
- ]
- },
-
- {
- "name": "location",
- "value":
- [
- "SNDGCA64"
- ]
- }
- ],
-
- "Policy_":
- {
- "Policy1":
- [
- {
- "name": "pname",
- "value": "Policy1"
- },
-
- {
- "name": "pid",
- "value": "1"
- },
-
- {
- "name": "timeout",
- "value": "500"
- },
-
- {
- "policyConfigurations":
- [
- [
- {
- "name": "recipe",
- "value":
- [
- "restart"
- ]
- },
-
- {
- "name": "maxRetries",
- "value":
- [
- "3"
- ]
- },
-
- {
- "name": "retryTimeLimit",
- "value":
- [
- "180"
- ]
- },
-
- {
- "name": "_id",
- "value":
- [
- "n9bQ4t6"
- ]
- },
-
- {
- "name": "parentPolicy",
- "value":
- [
- ""
- ]
- },
- {
- "name": "targetResourceId",
- "value":
- [
- "resource-id"
- ]
- }
- ],
-
- [
- {
- "name": "recipe",
- "value":
- [
- "rebuild"
- ]
- },
-
- {
- "name": "maxRetries",
- "value":
- [
- "3"
- ]
- },
-
- {
- "name": "retryTimeLimit",
- "value":
- [
- "180"
- ]
- },
-
- {
- "name": "_id",
- "value":
- [
- "ItE5xKT"
- ]
- },
-
- {
- "name": "parentPolicy",
- "value":
- [
- "n9bQ4t6"
- ]
- },
-
- {
- "name": "parentPolicyConditions",
- "value":
- [
- "Failure_Retries",
- "Failure_Timeout",
- "Failure_Exception",
- "Failure"
- ]
- },
- {
- "name": "targetResourceId",
- "value":
- [
- "resource-id"
- ]
- }
- ]
- ]
- }
- ],
-
- "Policy2":
- [
- {
- "name": "pname",
- "value": "Policy2"
- },
-
- {
- "name": "pid",
- "value": "2"
- },
-
- {
- "name": "timeout",
- "value": "500"
- },
-
- {
- "policyConfigurations":
- [
- [
- {
- "name": "recipe",
- "value":
- [
- "restart"
- ]
- },
-
- {
- "name": "maxRetries",
- "value":
- [
- "3"
- ]
- },
-
- {
- "name": "retryTimeLimit",
- "value":
- [
- "180"
- ]
- },
-
- {
- "name": "_id",
- "value":
- [
- "n9bQ4t6"
- ]
- },
-
- {
- "name": "parentPolicy",
- "value":
- [
- ""
- ]
- },
- {
- "name": "targetResourceId",
- "value":
- [
- "resource-id"
- ]
- }
- ],
-
- [
- {
- "name": "recipe",
- "value":
- [
- "rebuild"
- ]
- },
-
- {
- "name": "maxRetries",
- "value":
- [
- "3"
- ]
- },
-
- {
- "name": "retryTimeLimit",
- "value":
- [
- "180"
- ]
- },
-
- {
- "name": "_id",
- "value":
- [
- "ItE5xKT"
- ]
- },
-
- {
- "name": "parentPolicy",
- "value":
- [
- "n9bQ4t6"
- ]
- },
-
- {
- "name": "parentPolicyConditions",
- "value":
- [
- "Failure_Retries",
- "Failure_Timeout",
- "Failure_Exception",
- "Failure"
- ]
- },
- {
- "name": "targetResourceId",
- "value":
- [
- "resource-id"
- ]
- }
- ]
- ]
- }
- ]
- },
-
- "TCA_":
- {
- "Narra":
- [
- {
- "name": "tname",
- "value": "Narra"
- },
-
- {
- "name": "tuuid",
- "value": "886be8da-14fe-tca1-d04b-d13b55d58df9"
- },
-
- {
- "name": "tnfc",
- "value": "ENBE"
- },
-
- {
- "name": "tcaEnab",
- "value": "on"
- },
-
- {
- "name": "tcaPol",
- "value": "Policy1"
- },
-
- {
- "name": "tcaPolId",
- "value": "1"
- },
-
- {
- "name": "tcaInt",
- "value": "2"
- },
-
- {
- "name": "tcaSev",
- "value": "Warning"
- },
-
- {
- "name": "tcaVio",
- "value": "3"
- },
-
- {
- "serviceConfigurations":
- [
- [
- "PMRRCCONNESTABFAILCELLLATENCY",
- "LESS",
- "4",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
- ],
-
- [
- "PMRAATTCBRA",
- "GREATER",
- "30",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
- ]
- ]
- }
- ],
-
- "Srini":
- [
- {
- "name": "tname",
- "value": "Srini"
- },
-
- {
- "name": "tuuid",
- "value": "8b5ba88d-f4b4-tf0e-50b1-78a5a7dd412d"
- },
-
- {
- "name": "tnfc",
- "value": "ENBE"
- },
-
- {
- "name": "tcaEnab",
- "value": "on"
- },
-
- {
- "name": "tcaPol",
- "value": "Policy2"
- },
-
- {
- "name": "tcaPolId",
- "value": "2"
- },
-
- {
- "name": "tcaInt",
- "value": "10"
- },
-
- {
- "name": "tcaSev",
- "value": "Critical"
- },
-
- {
- "name": "tcaVio",
- "value": "5"
- },
-
- {
- "serviceConfigurations":
- [
- [
- "PMRRCCONNESTABFAILCELLLATENCY",
- "EQUAL",
- "3",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRRCCONNESTABFAILCELLLATENCY')].Value"
- ],
-
- [
- "PMRAATTCBRA",
- "GREATER",
- "30",
- "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[?(@.Name == 'PMRAATTCBRA')].Value"
- ]
- ]
- }
- ]
- }
-} \ No newline at end of file
diff --git a/src/test/resources/example/sdc/expected-result/all-sdc-services.json b/src/test/resources/example/sdc/expected-result/all-sdc-services.json
new file mode 100644
index 000000000..ea6efddb4
--- /dev/null
+++ b/src/test/resources/example/sdc/expected-result/all-sdc-services.json
@@ -0,0 +1,6 @@
+{
+ "service": {
+ "4cc5b45a-1f63-4194-8100-cd8e14248c92": "vFirewall",
+ "c95b0e7c-c1f0-4287-9928-7964c5377a46": "vLoadBalancer"
+ }
+}
diff --git a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
index 2082e559b..8739bb22f 100644
--- a/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
+++ b/src/test/resources/example/tca-policy-req/blueprint-expected.yaml
@@ -1,7 +1,7 @@
tosca_definitions_version: cloudify_dsl_1_3
-imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml',
- 'https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml',
- 'http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml']
+imports: ['http://www.getcloudify.org/spec/cloudify/3.4/types.yaml', 'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml',
+ 'https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml',
+ 'http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml']
inputs:
location_id: {type: string}
service_id: {type: string}
@@ -10,7 +10,7 @@ node_templates:
type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure
properties:
location_id: {get_input: location_id}
- scn_override: cdap_broker.solutioning-central.dcae.att.com
+ scn_override: cdap_broker.solutioning-central.dcae.onap.org
interfaces:
cloudify.interfaces.lifecycle: {}
tca_tca:
@@ -21,15 +21,15 @@ node_templates:
tcaVESAlertsTableName: TCAVESAlertsTable, tcaVESAlertsTableTTLSeconds: '1728000',
tcaVESMessageStatusTableName: TCAVESMessageStatusTable, tcaVESMessageStatusTableTTLSeconds: '86400',
thresholdCalculatorFlowletInstances: '2'}
- app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.homer.att.com,
+ app_preferences: {publisherContentType: application/json, publisherHostName: mrlocal-mtnjftle01.onap.org,
publisherHostPort: '3905', publisherMaxBatchSize: '10', publisherMaxRecoveryQueueSize: '100000',
- publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub,
- publisherUserName: m00502@tca.af.dcae.att.com, publisherUserPassword: Te5021abc,
+ publisherPollingInterval: '20000', publisherProtocol: https, publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub,
+ publisherUserName: m00502@tca.af.dcae.onap.org, publisherUserPassword: Te5021abc,
subscriberConsumerGroup: OpenDCAE-c12, subscriberConsumerId: c12, subscriberContentType: application/json,
- subscriberHostName: mrlocal-mtnjftle01.homer.att.com, subscriberHostPort: '3905',
+ subscriberHostName: mrlocal-mtnjftle01.onap.org, subscriberHostPort: '3905',
subscriberMessageLimit: '-1', subscriberPollingInterval: '20000', subscriberProtocol: https,
- subscriberTimeoutMS: '-1', subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub,
- subscriberUserName: m00502@tca.af.dcae.att.com, subscriberUserPassword: Te5021abc,
+ subscriberTimeoutMS: '-1', subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub,
+ subscriberUserName: m00502@tca.af.dcae.onap.org, subscriberUserPassword: Te5021abc,
tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta","thresholdValue":123,"direction":"GREATER_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"}]}]}'}
artifact_name: dcae-analytics-tca
artifact_version: 1.0.0
diff --git a/src/test/resources/example/tca-policy-req/blueprint-input.yaml b/src/test/resources/example/tca-policy-req/blueprint-input.yaml
index 95322258e..101dc2c0d 100644
--- a/src/test/resources/example/tca-policy-req/blueprint-input.yaml
+++ b/src/test/resources/example/tca-policy-req/blueprint-input.yaml
@@ -1,9 +1,9 @@
tosca_definitions_version: cloudify_dsl_1_3
imports:
- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml
-- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml
-- https://nexus01.research.att.com:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml
-- http://nexus01.research.att.com:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml
+- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml
+- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml
+- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml
inputs:
location_id:
type: string
@@ -15,9 +15,10 @@ node_templates:
properties:
location_id:
get_input: location_id
- scn_override: cdap_broker.solutioning-central.dcae.att.com
+ scn_override: cdap_broker.solutioning-central.dcae.onap.org
interfaces:
- cloudify.interfaces.lifecycle: {}
+ cloudify.interfaces.lifecycle: {
+ }
tca_tca:
type: dcae.nodes.MicroService.cdap
properties:
@@ -32,33 +33,35 @@ node_templates:
thresholdCalculatorFlowletInstances: '2'
app_preferences:
publisherContentType: application/json
- publisherHostName: mrlocal-mtnjftle01.homer.att.com
+ publisherHostName: mrlocal-mtnjftle01.onap.org
publisherHostPort: '3905'
publisherMaxBatchSize: '10'
publisherMaxRecoveryQueueSize: '100000'
publisherPollingInterval: '20000'
publisherProtocol: https
- publisherTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESPub
- publisherUserName: m00502@tca.af.dcae.att.com
+ publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub
+ publisherUserName: m00502@tca.af.dcae.onap.org
publisherUserPassword: Te5021abc
subscriberConsumerGroup: OpenDCAE-c12
subscriberConsumerId: c12
subscriberContentType: application/json
- subscriberHostName: mrlocal-mtnjftle01.homer.att.com
+ subscriberHostName: mrlocal-mtnjftle01.onap.org
subscriberHostPort: '3905'
subscriberMessageLimit: '-1'
subscriberPollingInterval: '20000'
subscriberProtocol: https
subscriberTimeoutMS: '-1'
- subscriberTopicName: com.att.dcae.dmaap.mtnje2.DcaeTestVESSub
- subscriberUserName: m00502@tca.af.dcae.att.com
+ subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub
+ subscriberUserName: m00502@tca.af.dcae.onap.org
subscriberUserPassword: Te5021abc
- tca_policy:
+ tca_policy: null
artifact_name: dcae-analytics-tca
artifact_version: 1.0.0
connections:
- streams_publishes: []
- streams_subscribes: []
+ streams_publishes: [
+ ]
+ streams_subscribes: [
+ ]
jar_url: http://somejar
location_id:
get_input: location_id
@@ -76,4 +79,4 @@ node_templates:
streamname: TCASubscriberOutputStream
relationships:
- target: cdap_host_host
- type: dcae.relationships.component_contained_in
+ type: dcae.relationships.component_contained_in \ No newline at end of file
diff --git a/src/test/resources/example/tca-policy-req/prop-text.json b/src/test/resources/example/tca-policy-req/prop-text.json
new file mode 100644
index 000000000..acaa8894f
--- /dev/null
+++ b/src/test/resources/example/tca-policy-req/prop-text.json
@@ -0,0 +1 @@
+{"global":[{"name":"service","value":["tosca_definitions_version: cloudify_dsl_1_3\r\nimports:\r\n- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/docker/2.2.0/node-type.yaml\r\n- https://onap.org:8443/repository/solutioning01-mte2-raw/type_files/relationship/1.0.0/node-type.yaml\r\n- http://onap.org:8081/repository/solutioning01-mte2-raw/type_files/dmaap/dmaap_mr.yaml\r\ninputs:\r\n location_id:\r\n type: string\r\n service_id:\r\n type: string\r\nnode_templates:\r\n cdap_host_host:\r\n type: dcae.nodes.StreamingAnalytics.SelectedCDAPInfrastructure\r\n properties:\r\n location_id:\r\n get_input: location_id\r\n scn_override: cdap_broker.solutioning-central.dcae.onap.org\r\n interfaces:\r\n cloudify.interfaces.lifecycle: {\r\n }\r\n tca_tca:\r\n type: dcae.nodes.MicroService.cdap\r\n properties:\r\n app_config:\r\n appDescription: DCAE Analytics Threshold Crossing Alert Application\r\n appName: dcae-tca\r\n tcaSubscriberOutputStreamName: TCASubscriberOutputStream\r\n tcaVESAlertsTableName: TCAVESAlertsTable\r\n tcaVESAlertsTableTTLSeconds: '1728000'\r\n tcaVESMessageStatusTableName: TCAVESMessageStatusTable\r\n tcaVESMessageStatusTableTTLSeconds: '86400'\r\n thresholdCalculatorFlowletInstances: '2'\r\n app_preferences:\r\n publisherContentType: application/json\r\n publisherHostName: mrlocal-mtnjftle01.onap.org\r\n publisherHostPort: '3905'\r\n publisherMaxBatchSize: '10'\r\n publisherMaxRecoveryQueueSize: '100000'\r\n publisherPollingInterval: '20000'\r\n publisherProtocol: https\r\n publisherTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESPub\r\n publisherUserName: m00502@tca.af.dcae.onap.org\r\n publisherUserPassword: Te5021abc\r\n subscriberConsumerGroup: OpenDCAE-c12\r\n subscriberConsumerId: c12\r\n subscriberContentType: application/json\r\n subscriberHostName: mrlocal-mtnjftle01.onap.org\r\n subscriberHostPort: '3905'\r\n subscriberMessageLimit: '-1'\r\n subscriberPollingInterval: '20000'\r\n subscriberProtocol: https\r\n subscriberTimeoutMS: '-1'\r\n subscriberTopicName: org.onap.dcae.dmaap.mtnje2.DcaeTestVESSub\r\n subscriberUserName: m00502@tca.af.dcae.onap.org\r\n subscriberUserPassword: Te5021abc\r\n tca_policy: '{\"domain\":\"measurementsForVfScaling\",\"metricsPerEventName\":[{\"eventName\":\"vFirewallBroadcastPackets\",\"controlLoopSchemaType\":\"VNF\",\"policyScope\":\"DCAE\",\"policyName\":\"example_model01.ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_TCA_1jy9to4\",\"policyVersion\":\"v0.0.1\",\"thresholds\":[{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"},{\"closedLoopControlName\":\"ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf_null\",\"version\":\"1.0.2\",\"fieldPath\":\"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta\",\"thresholdValue\":123,\"direction\":\"GREATER_OR_EQUAL\",\"severity\":\"MAJOR\",\"closedLoopEventStatus\":\"ONSET\"}]}]}'\r\n artifact_name: dcae-analytics-tca\r\n artifact_version: 1.0.0\r\n connections:\r\n streams_publishes: [\r\n ]\r\n streams_subscribes: [\r\n ]\r\n jar_url: http://somejar\r\n location_id:\r\n get_input: location_id\r\n namespace: cdap_tca_hi_lo\r\n programs:\r\n - program_id: TCAVESCollectorFlow\r\n program_type: flows\r\n - program_id: TCADMaaPMRSubscriberWorker\r\n program_type: workers\r\n - program_id: TCADMaaPMRPublisherWorker\r\n program_type: workers\r\n service_component_type: cdap_app_tca\r\n service_id:\r\n get_input: service_id\r\n streamname: TCASubscriberOutputStream\r\n relationships:\r\n - target: cdap_host_host\r\n type: dcae.relationships.component_contained_in"]}]} \ No newline at end of file
diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties
index 54005ef2c..82cd999c3 100644
--- a/src/test/resources/https/https-test.properties
+++ b/src/test/resources/https/https-test.properties
@@ -77,42 +77,15 @@ server.context_parameters.p-name=value #context parameter with p-name as key and
camel.springboot.consumer-template-cache-size=1000
camel.springboot.producer-template-cache-size=1000
-camel.springboot.jmx-enabled=true
+camel.springboot.jmx-enabled=false
camel.defaultthreadpool.poolsize=10
camel.defaultthreadpool.maxpoolsize=20
camel.defaultthreadpool.maxqueuesize=1000
camel.defaultthreadpool.keepaliveTime=60
camel.defaultthreadpool.rejectpolicy=CallerRuns
-
-#server.port=0
-#Camunda Process Engine DataSource connection Details
-spring.datasource.camunda.driverClassName=org.mariadb.jdbc.Driver
-spring.datasource.camunda.url=jdbc:mariadb:sequential://localhost:${docker.mariadb.port.host}/camundabpm?autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647
-spring.datasource.camunda.username=camunda
-spring.datasource.camunda.password=e1bb2a8381d1aa6c09879bd627db3bb560ad29e8a3343fe6aa7e6a7ba622da4e
-spring.datasource.camunda.validationQuery=SELECT 1
-spring.datasource.camunda.validationQueryTimeout=20000
-spring.datasource.camunda.validationInterval=30000
-spring.datasource.camunda.testWhileIdle = true
-spring.datasource.camunda.minIdle = 0
-spring.datasource.camunda.initialSize=0
-# Automatically test whether a connection provided is good or not
-spring.datasource.camunda.testOnBorrow=true
-spring.datasource.camunda.ignoreExceptionOnPreLoad=true
-
-
-#Camunda application properties
-#Camunda history level
-camunda.bpm.history-level=none
-camunda.bpm.enabled=false
-camunda.bpm.jpa.enabled=false
-camunda.bpm.auto-deployment-enabled=false
-camunda.bpm.job-execution.active=false
-camunda.bpm.job-execution.enabled=false
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.metrics.enabled=false
-camunda.bpm.management.health.camunda.enabled=false
-camunda.bpm.database.schema-update=true
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml
+#camel.springboot.typeConversion = false
#clds datasource connection details
spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver