aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-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
29 files changed, 568 insertions, 949 deletions
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"
]
},
{