aboutsummaryrefslogtreecommitdiffstats
path: root/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap
diff options
context:
space:
mode:
Diffstat (limited to 'so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap')
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ActivityInstance.java187
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessDefinition.java87
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstance.java128
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstanceVariable.java105
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/SoActiveInfraRequests.java195
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaConfiguration.java38
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaRestUrlProvider.java104
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseConfiguration.java37
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseUrlProvider.java47
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/CorsConfigurer.java43
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/HttpServiceProviderConfiguration.java66
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProvider.java35
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProviderImpl.java86
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ActivityInstanceDetail.java192
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessDefinitionDetail.java76
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceDetail.java103
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceIdDetail.java66
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceVariableDetail.java84
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequest.java132
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequestBuilder.java148
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProvider.java45
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProviderImpl.java169
-rw-r--r--so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/utils/ObjectEqualsUtils.java36
23 files changed, 2209 insertions, 0 deletions
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ActivityInstance.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ActivityInstance.java
new file mode 100644
index 0000000..7ef00bd
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ActivityInstance.java
@@ -0,0 +1,187 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.camunda.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ActivityInstance {
+
+ private String activityId;
+ private String activityName;
+ private String activityType;
+ private String processInstanceId;
+ private String calledProcessInstanceId;
+ private String startTime;
+ private String endTime;
+ private String durationInMillis;
+
+ public ActivityInstance() {}
+
+
+ /**
+ * @return the activityId
+ */
+ public String getActivityId() {
+ return activityId;
+ }
+
+ /**
+ * @param activityId the activityId to set
+ */
+ public void setActivityId(final String activityId) {
+ this.activityId = activityId;
+ }
+
+ /**
+ * @return the activityName
+ */
+ public String getActivityName() {
+ return activityName;
+ }
+
+ /**
+ * @param activityName the activityName to set
+ */
+ public void setActivityName(final String activityName) {
+ this.activityName = activityName;
+ }
+
+ /**
+ * @return the activityType
+ */
+ public String getActivityType() {
+ return activityType;
+ }
+
+ /**
+ * @param activityType the activityType to set
+ */
+ public void setActivityType(final String activityType) {
+ this.activityType = activityType;
+ }
+
+ /**
+ * @return the processInstanceId
+ */
+ public String getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ /**
+ * @param processInstanceId the processInstanceId to set
+ */
+ public void setProcessInstanceId(final String processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ }
+
+ /**
+ * @return the calledProcessInstanceId
+ */
+ public String getCalledProcessInstanceId() {
+ return calledProcessInstanceId;
+ }
+
+ /**
+ * @param calledProcessInstanceId the calledProcessInstanceId to set
+ */
+ public void setCalledProcessInstanceId(final String calledProcessInstanceId) {
+ this.calledProcessInstanceId = calledProcessInstanceId;
+ }
+
+ /**
+ * @return the startTime
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @param startTime the startTime to set
+ */
+ public void setStartTime(final String startTime) {
+ this.startTime = startTime;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public String getEndTime() {
+ return endTime;
+ }
+
+ /**
+ * @param endTime the endTime to set
+ */
+ public void setEndTime(final String endTime) {
+ this.endTime = endTime;
+ }
+
+ /**
+ * @return the durationInMillis
+ */
+ public String getDurationInMillis() {
+ return durationInMillis;
+ }
+
+ /**
+ * @param durationInMillis the durationInMillis to set
+ */
+ public void setDurationInMillis(final String durationInMillis) {
+ this.durationInMillis = durationInMillis;
+ }
+
+ @JsonIgnore
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((activityId == null) ? 0 : activityId.hashCode());
+ result = prime * result + ((activityName == null) ? 0 : activityName.hashCode());
+ result = prime * result + ((activityType == null) ? 0 : activityType.hashCode());
+ result = prime * result + ((calledProcessInstanceId == null) ? 0 : calledProcessInstanceId.hashCode());
+ result = prime * result + ((durationInMillis == null) ? 0 : durationInMillis.hashCode());
+ result = prime * result + ((endTime == null) ? 0 : endTime.hashCode());
+ result = prime * result + ((processInstanceId == null) ? 0 : processInstanceId.hashCode());
+ result = prime * result + ((startTime == null) ? 0 : startTime.hashCode());
+ return result;
+ }
+
+ @JsonIgnore
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ActivityInstance) {
+ final ActivityInstance other = (ActivityInstance) obj;
+ return isEqual(activityId, other.activityId) && isEqual(activityName, other.activityName)
+ && isEqual(activityType, other.activityType) && isEqual(processInstanceId, other.processInstanceId)
+ && isEqual(calledProcessInstanceId, other.calledProcessInstanceId)
+ && isEqual(startTime, other.startTime) && isEqual(endTime, other.endTime)
+ && isEqual(durationInMillis, other.durationInMillis);
+ }
+ return false;
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessDefinition.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessDefinition.java
new file mode 100644
index 0000000..76dc096
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessDefinition.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.camunda.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ProcessDefinition {
+
+ private String id;
+ private String bpmn20Xml;
+
+ public ProcessDefinition() {}
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the bpmn20Xml
+ */
+ public String getBpmn20Xml() {
+ return bpmn20Xml;
+ }
+
+ /**
+ * @param bpmn20Xml the bpmn20Xml to set
+ */
+ public void setBpmn20Xml(final String bpmn20Xml) {
+ this.bpmn20Xml = bpmn20Xml;
+ }
+
+ @JsonIgnore
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((bpmn20Xml == null) ? 0 : bpmn20Xml.hashCode());
+ return result;
+ }
+
+ @JsonIgnore
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessDefinition) {
+ final ProcessDefinition other = (ProcessDefinition) obj;
+ return isEqual(id, other.id) && isEqual(bpmn20Xml, other.bpmn20Xml);
+ }
+ return false;
+ }
+
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstance.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstance.java
new file mode 100644
index 0000000..872fae5
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstance.java
@@ -0,0 +1,128 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.camunda.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ProcessInstance {
+
+ private String id;
+ private String processDefinitionId;
+ private String processDefinitionName;
+ private String superProcessInstanceId;
+
+ public ProcessInstance() {}
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+
+ /**
+ * @return the processDefinitionId
+ */
+ public String getProcessDefinitionId() {
+ return processDefinitionId;
+ }
+
+ /**
+ * @param processDefinitionId the processDefinitionId to set
+ */
+ public void setProcessDefinitionId(final String processDefinitionId) {
+ this.processDefinitionId = processDefinitionId;
+ }
+
+ /**
+ * @return the processDefinitionName
+ */
+ public String getProcessDefinitionName() {
+ return processDefinitionName;
+ }
+
+ /**
+ * @param processDefinitionName the processDefinitionName to set
+ */
+ public void setProcessDefinitionName(final String processDefinitionName) {
+ this.processDefinitionName = processDefinitionName;
+ }
+
+ /**
+ * @return the superProcessInstanceId
+ */
+ public String getSuperProcessInstanceId() {
+ return superProcessInstanceId;
+ }
+
+ /**
+ * @param superProcessInstanceId the superProcessInstanceId to set
+ */
+ public void setSuperProcessInstanceId(final String superProcessInstanceId) {
+ this.superProcessInstanceId = superProcessInstanceId;
+ }
+
+
+ @JsonIgnore
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ result = prime * result + ((processDefinitionId == null) ? 0 : processDefinitionId.hashCode());
+ result = prime * result + ((processDefinitionName == null) ? 0 : processDefinitionName.hashCode());
+ result = prime * result + ((superProcessInstanceId == null) ? 0 : superProcessInstanceId.hashCode());
+ return result;
+ }
+
+ @JsonIgnore
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessInstance) {
+ final ProcessInstance other = (ProcessInstance) obj;
+ return isEqual(id, other.id) && isEqual(processDefinitionId, other.processDefinitionId)
+ && isEqual(processDefinitionName, other.processDefinitionName)
+ && isEqual(superProcessInstanceId, other.superProcessInstanceId);
+ }
+
+ return false;
+ }
+
+ @JsonIgnore
+ @Override
+ public String toString() {
+ return "ProcessInstance [id=" + id + ", processDefinitionId=" + processDefinitionId + ", processDefinitionName="
+ + processDefinitionName + "]";
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstanceVariable.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstanceVariable.java
new file mode 100644
index 0000000..6d7da58
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/ProcessInstanceVariable.java
@@ -0,0 +1,105 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.camunda.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class ProcessInstanceVariable {
+
+ private String name;
+ private Object value;
+ private String type;
+
+ public ProcessInstanceVariable() {}
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param name the name to set
+ */
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the value
+ */
+ public Object getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(final Object value) {
+ this.value = value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * @param type the type to set
+ */
+ public void setType(final String type) {
+ this.type = type;
+ }
+
+ @JsonIgnore
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((value == null) ? 0 : value.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @JsonIgnore
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessInstanceVariable) {
+ final ProcessInstanceVariable other = (ProcessInstanceVariable) obj;
+ return isEqual(name, other.name) && isEqual(value, other.value) && isEqual(type, other.type);
+ }
+
+ return false;
+ }
+
+ @JsonIgnore
+ @Override
+ public String toString() {
+ return "ProcessInstance [name=" + name + ", value=" + value + ", type=" + type + "]";
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/SoActiveInfraRequests.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/SoActiveInfraRequests.java
new file mode 100644
index 0000000..6c1d1ad
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/camunda/model/SoActiveInfraRequests.java
@@ -0,0 +1,195 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.camunda.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class SoActiveInfraRequests {
+
+ private String requestId;
+ private String serviceInstanceId;
+ private String networkId;
+ private String startTime;
+ private String endTime;
+ private String requestStatus;
+ private String serviceInstanceName;
+ private String serviceType;
+
+ /**
+ * @return the requestId
+ */
+ public String getRequestId() {
+ return requestId;
+ }
+
+ /**
+ * @param requestId the requestId to set
+ */
+ public void setRequestId(final String requestId) {
+ this.requestId = requestId;
+ }
+
+ /**
+ * @return the serviceInstanceId
+ */
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ /**
+ * @param serviceInstanceId the serviceInstanceId to set
+ */
+ public void setServiceInstanceId(final String serviceInstanceId) {
+ this.serviceInstanceId = serviceInstanceId;
+ }
+
+ /**
+ * @return the networkId
+ */
+ public String getNetworkId() {
+ return networkId;
+ }
+
+ /**
+ * @param networkId the networkId to set
+ */
+ public void setNetworkId(final String networkId) {
+ this.networkId = networkId;
+ }
+
+ /**
+ * @return the startTime
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @param startTime the startTime to set
+ */
+ public void setStartTime(final String startTime) {
+ this.startTime = startTime;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public String getEndTime() {
+ return endTime;
+ }
+
+ /**
+ * @param endTime the endTime to set
+ */
+ public void setEndTime(final String endTime) {
+ this.endTime = endTime;
+ }
+
+ /**
+ * @return the requestStatus
+ */
+ public String getRequestStatus() {
+ return requestStatus;
+ }
+
+ /**
+ * @param requestStatus the requestStatus to set
+ */
+ public void setRequestStatus(final String requestStatus) {
+ this.requestStatus = requestStatus;
+ }
+
+ /**
+ * @return the serviceInstanceName
+ */
+ public String getServiceInstanceName() {
+ return serviceInstanceName;
+ }
+
+ /**
+ * @param serviceInstanceName the serviceInstanceName to set
+ */
+ public void setServiceInstanceName(final String serviceInstanceName) {
+ this.serviceInstanceName = serviceInstanceName;
+ }
+
+ /**
+ * @return the serviceType
+ */
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ /**
+ * @param serviceType the serviceType to set
+ */
+ public void setServiceType(final String serviceType) {
+ this.serviceType = serviceType;
+ }
+
+ @JsonIgnore
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((endTime == null) ? 0 : endTime.hashCode());
+ result = prime * result + ((networkId == null) ? 0 : networkId.hashCode());
+ result = prime * result + ((requestId == null) ? 0 : requestId.hashCode());
+ result = prime * result + ((requestStatus == null) ? 0 : requestStatus.hashCode());
+ result = prime * result + ((serviceInstanceId == null) ? 0 : serviceInstanceId.hashCode());
+ result = prime * result + ((serviceInstanceName == null) ? 0 : serviceInstanceName.hashCode());
+ result = prime * result + ((serviceType == null) ? 0 : serviceType.hashCode());
+ result = prime * result + ((startTime == null) ? 0 : startTime.hashCode());
+ return result;
+ }
+
+ @JsonIgnore
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof SoActiveInfraRequests) {
+ SoActiveInfraRequests other = (SoActiveInfraRequests) obj;
+ return isEqual(requestId, other.requestId) && isEqual(serviceInstanceId, other.serviceInstanceId)
+ && isEqual(networkId, other.networkId) && isEqual(startTime, other.startTime)
+ && isEqual(endTime, other.endTime) && isEqual(requestStatus, other.requestStatus)
+ && isEqual(serviceInstanceName, other.serviceInstanceName)
+ && isEqual(serviceType, other.serviceType);
+ }
+
+ return false;
+ }
+
+ @JsonIgnore
+ @Override
+ public String toString() {
+ return "SoActiveInfraRequests [requestId=" + requestId + ", serviceInstanceId=" + serviceInstanceId
+ + ", networkId=" + networkId + ", startTime=" + startTime + ", endTime=" + endTime + ", requestStatus="
+ + requestStatus + ", serviceInstanceName=" + serviceInstanceName + ", serviceType=" + serviceType + "]";
+ }
+
+
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaConfiguration.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaConfiguration.java
new file mode 100644
index 0000000..e5194da
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaConfiguration.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.configuration.camunda;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+
+@Configuration
+public class CamundaConfiguration {
+
+ @Bean
+ public CamundaRestUrlProvider camundaRestUrlProvider(@Value(value = "${camunda.rest.api.url}") final String httpURL,
+ @Value(value = "${camunda.rest.api.engine:default}") final String engineName) {
+ return new CamundaRestUrlProvider(httpURL, engineName);
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaRestUrlProvider.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaRestUrlProvider.java
new file mode 100644
index 0000000..ab23f24
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/camunda/CamundaRestUrlProvider.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.configuration.camunda;
+
+import java.net.URI;
+import org.springframework.stereotype.Service;
+import org.springframework.web.util.UriComponentsBuilder;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+@Service
+public class CamundaRestUrlProvider {
+
+ private static final String HISTORY_PATH = "history";
+ private final URI baseUri;
+
+ public CamundaRestUrlProvider(final String httpUrl, final String engineName) {
+ this.baseUri = UriComponentsBuilder.fromHttpUrl(httpUrl).path(engineName).build().toUri();
+ }
+
+ /**
+ * see {@link <a href=
+ * "https://docs.camunda.org/manual/7.5/reference/rest/history/process-instance/get-process-instance-query/">Get
+ * Process Instances</a>}.
+ *
+ * @param requestId the request ID
+ * @return URL
+ */
+ public String getHistoryProcessInstanceUrl(final String requestId) {
+ return UriComponentsBuilder.fromUri(baseUri).pathSegment(HISTORY_PATH).pathSegment("process-instance")
+ .query("variables=requestId_eq_{requestID}").buildAndExpand(requestId).toString();
+ }
+
+ /**
+ * see {@link <a href=
+ * "https://docs.camunda.org/manual/7.5/reference/rest/history/process-instance/get-process-instance/">Get Single
+ * Process Instance</a>}.
+ *
+ * @param processInstanceId the process instance id.
+ * @return URL
+ */
+ public String getSingleProcessInstanceUrl(final String processInstanceId) {
+ return UriComponentsBuilder.fromUri(baseUri).pathSegment(HISTORY_PATH).pathSegment("process-instance")
+ .pathSegment(processInstanceId).build().toString();
+ }
+
+ /**
+ * see {@link <a href= "https://docs.camunda.org/manual/7.5/reference/rest/process-definition/get-xml/">Get BPMN 2.0
+ * XML</a>}.
+ *
+ * @param processDefinitionId the process definition id.
+ * @return URL
+ */
+ public String getProcessDefinitionUrl(final String processDefinitionId) {
+ return UriComponentsBuilder.fromUri(baseUri).pathSegment("process-definition").pathSegment(processDefinitionId)
+ .pathSegment("xml").build().toString();
+ }
+
+ /**
+ * see {@link <a href=
+ * "https://docs.camunda.org/manual/7.5/reference/rest/history/activity-instance/get-activity-instance/">Get Single
+ * Activity Instance (Historic)</a>}.
+ *
+ * @param processInstanceId the process instance id.
+ * @return URL
+ */
+ public String getActivityInstanceUrl(final String processInstanceId) {
+ return UriComponentsBuilder.fromUri(baseUri).pathSegment(HISTORY_PATH).pathSegment("activity-instance")
+ .query("processInstanceId={processInstanceId}").queryParam("sortBy", "startTime")
+ .queryParam("sortOrder", "asc").buildAndExpand(processInstanceId).toString();
+ }
+
+ /**
+ * see {@link <a href=
+ * "https://docs.camunda.org/manual/7.5/reference/rest/history/variable-instance/get-variable-instance/">Get Single
+ * Variable Instance</a>}.
+ *
+ * @param processInstanceId the process instance id.
+ * @return URL
+ */
+ public String getProcessInstanceVariablesUrl(final String processInstanceId) {
+ return UriComponentsBuilder.fromUri(baseUri).pathSegment(HISTORY_PATH).pathSegment("variable-instance")
+ .query("processInstanceId={processInstanceId}").buildAndExpand(processInstanceId).toString();
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseConfiguration.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseConfiguration.java
new file mode 100644
index 0000000..359c334
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseConfiguration.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.monitoring.configuration.database;
+
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class DatabaseConfiguration {
+
+ @Bean
+ public DatabaseUrlProvider databaseUrlProvider(
+ @Value(value = "${mso.database.rest.api.url}") final String baseUrl) {
+ return new DatabaseUrlProvider(baseUrl);
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseUrlProvider.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseUrlProvider.java
new file mode 100644
index 0000000..67f588e
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/database/DatabaseUrlProvider.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.configuration.database;
+
+import java.net.URI;
+import org.springframework.web.util.UriComponentsBuilder;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+public class DatabaseUrlProvider {
+
+ private final URI baseUri;
+
+ public DatabaseUrlProvider(final String baseUrl) {
+ this.baseUri = UriComponentsBuilder.fromHttpUrl(baseUrl).build().toUri();
+ }
+
+ public String getSearchUrl(final long from, final long to, final Integer maxResult) {
+ final UriComponentsBuilder builder = UriComponentsBuilder.fromUri(baseUri).pathSegment("v1")
+ .pathSegment("getInfraActiveRequests").queryParam("from", from).queryParam("to", to);
+ if (maxResult != null) {
+ return builder.queryParam("maxResult", maxResult).build().toString();
+ }
+
+ return builder.build().toString();
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/CorsConfigurer.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/CorsConfigurer.java
new file mode 100644
index 0000000..4d0fd44
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/CorsConfigurer.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.monitoring.configuration.rest;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * @author waqas.ikram@ericsson, eoin.hanan@ericsson.com
+ */
+@Configuration
+public class CorsConfigurer {
+
+ @Bean
+ public CorsFilter corsFilter() {
+ final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
+ return new CorsFilter(source);
+ }
+}
+
+
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/HttpServiceProviderConfiguration.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/HttpServiceProviderConfiguration.java
new file mode 100644
index 0000000..6d8d82b
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/configuration/rest/HttpServiceProviderConfiguration.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.configuration.rest;
+
+import static org.onap.so.client.RestTemplateConfig.CONFIGURABLE_REST_TEMPLATE;
+import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
+import org.onap.so.configuration.rest.HttpHeadersProvider;
+import org.onap.so.rest.service.HttpRestServiceProvider;
+import org.onap.so.rest.service.HttpRestServiceProviderImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+@Configuration
+public class HttpServiceProviderConfiguration {
+
+ public static final String DATABASE_HTTP_REST_SERVICE_PROVIDER = "databaseHttpRestServiceProvider";
+ public static final String CAMUNDA_HTTP_REST_SERVICE_PROVIDER = "camundaHttpRestServiceProvider";
+
+ @Bean
+ @Qualifier(CAMUNDA_HTTP_REST_SERVICE_PROVIDER)
+ public HttpRestServiceProvider camundaHttpRestServiceProvider(
+ @Qualifier(CONFIGURABLE_REST_TEMPLATE) @Autowired final RestTemplate restTemplate,
+ @Value(value = "${camunda.rest.api.auth:#{null}}") final String authorization) {
+ return getHttpRestServiceProvider(restTemplate, new BasicHttpHeadersProvider(authorization));
+ }
+
+ @Bean
+ @Qualifier(DATABASE_HTTP_REST_SERVICE_PROVIDER)
+ public HttpRestServiceProvider databaseHttpRestServiceProvider(
+ @Qualifier(CONFIGURABLE_REST_TEMPLATE) @Autowired final RestTemplate restTemplate,
+ @Value(value = "${mso.database.rest.api.auth:#{null}}") final String authorization) {
+ return getHttpRestServiceProvider(restTemplate, new BasicHttpHeadersProvider(authorization));
+ }
+
+ private HttpRestServiceProvider getHttpRestServiceProvider(final RestTemplate restTemplate,
+ final HttpHeadersProvider httpHeadersProvider) {
+ return new HttpRestServiceProviderImpl(restTemplate, httpHeadersProvider);
+ }
+
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProvider.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProvider.java
new file mode 100644
index 0000000..04a14e5
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProvider.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.db.service;
+
+import java.util.List;
+import java.util.Map;
+import org.onap.so.monitoring.model.SoInfraRequest;
+
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public interface DatabaseServiceProvider {
+
+ List<SoInfraRequest> getSoInfraRequest(final Map<String, String[]> filters, final long startTime,
+ final long endTime, final Integer maxResult);
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProviderImpl.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProviderImpl.java
new file mode 100644
index 0000000..4278a26
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/db/service/DatabaseServiceProviderImpl.java
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.db.service;
+
+import static org.onap.so.monitoring.configuration.rest.HttpServiceProviderConfiguration.DATABASE_HTTP_REST_SERVICE_PROVIDER;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.onap.so.monitoring.camunda.model.SoActiveInfraRequests;
+import org.onap.so.monitoring.configuration.database.DatabaseUrlProvider;
+import org.onap.so.monitoring.model.SoInfraRequest;
+import org.onap.so.monitoring.model.SoInfraRequestBuilder;
+import org.onap.so.rest.service.HttpRestServiceProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+import com.google.common.base.Optional;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+@Service
+public class DatabaseServiceProviderImpl implements DatabaseServiceProvider {
+
+ private final DatabaseUrlProvider urlProvider;
+
+ private final HttpRestServiceProvider httpRestServiceProvider;
+
+ @Autowired
+ public DatabaseServiceProviderImpl(final DatabaseUrlProvider urlProvider,
+ @Qualifier(DATABASE_HTTP_REST_SERVICE_PROVIDER) @Autowired final HttpRestServiceProvider httpRestServiceProvider) {
+ this.urlProvider = urlProvider;
+ this.httpRestServiceProvider = httpRestServiceProvider;
+ }
+
+ @Override
+ public List<SoInfraRequest> getSoInfraRequest(final Map<String, String[]> filters, final long startTime,
+ final long endTime, final Integer maxResult) {
+ final String url = urlProvider.getSearchUrl(startTime, endTime, maxResult);
+
+ final Optional<SoActiveInfraRequests[]> optionalRequests =
+ httpRestServiceProvider.post(filters, url, SoActiveInfraRequests[].class);
+ if (optionalRequests.isPresent()) {
+ return getSoInfraRequest(optionalRequests.get());
+ }
+ return Collections.emptyList();
+ }
+
+
+ private List<SoInfraRequest> getSoInfraRequest(final SoActiveInfraRequests[] requests) {
+ final List<SoInfraRequest> result = new ArrayList<>(requests.length);
+ for (final SoActiveInfraRequests activeRequests : requests) {
+ final SoInfraRequest soInfraRequest =
+ new SoInfraRequestBuilder().setRequestId(activeRequests.getRequestId())
+ .setServiceInstanceId(activeRequests.getServiceInstanceId())
+ .setNetworkId(activeRequests.getNetworkId()).setEndTime(activeRequests.getEndTime())
+ .setRequestStatus(activeRequests.getRequestStatus())
+ .setServiceInstanceName(activeRequests.getServiceInstanceName())
+ .setServiceType(activeRequests.getServiceType()).setStartTime(activeRequests.getStartTime())
+ .build();
+ result.add(soInfraRequest);
+
+ }
+ return result;
+ }
+
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ActivityInstanceDetail.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ActivityInstanceDetail.java
new file mode 100644
index 0000000..2b26a4a
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ActivityInstanceDetail.java
@@ -0,0 +1,192 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+public class ActivityInstanceDetail {
+ private final String activityId;
+ private final String activityName;
+ private final String activityType;
+ private final String processInstanceId;
+ private final String calledProcessInstanceId;
+ private final String startTime;
+ private final String endTime;
+ private final String durationInMilliseconds;
+
+ public ActivityInstanceDetail(final ActivityInstanceDetailBuilder builder) {
+ this.activityId = builder.activityId;
+ this.activityName = builder.activityName;
+ this.activityType = builder.activityType;
+ this.processInstanceId = builder.processInstanceId;
+ this.calledProcessInstanceId = builder.calledProcessInstanceId;
+ this.startTime = builder.startTime;
+ this.endTime = builder.endTime;
+ this.durationInMilliseconds = builder.durationInMilliseconds;
+ }
+
+ /**
+ * @return the activityId
+ */
+ public String getActivityId() {
+ return activityId;
+ }
+
+ /**
+ * @return the activityName
+ */
+ public String getActivityName() {
+ return activityName;
+ }
+
+ /**
+ * @return the activityType
+ */
+ public String getActivityType() {
+ return activityType;
+ }
+
+ /**
+ * @return the processInstanceId
+ */
+ public String getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ /**
+ * @return the calledProcessInstanceId
+ */
+ public String getCalledProcessInstanceId() {
+ return calledProcessInstanceId;
+ }
+
+ /**
+ * @return the startTime
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public String getEndTime() {
+ return endTime;
+ }
+
+ /**
+ * @return the durationInMillis
+ */
+ public String getDurationInMillis() {
+ return durationInMilliseconds;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((activityId == null) ? 0 : activityId.hashCode());
+ result = prime * result + ((activityName == null) ? 0 : activityName.hashCode());
+ result = prime * result + ((activityType == null) ? 0 : activityType.hashCode());
+ result = prime * result + ((calledProcessInstanceId == null) ? 0 : calledProcessInstanceId.hashCode());
+ result = prime * result + ((durationInMilliseconds == null) ? 0 : durationInMilliseconds.hashCode());
+ result = prime * result + ((endTime == null) ? 0 : endTime.hashCode());
+ result = prime * result + ((processInstanceId == null) ? 0 : processInstanceId.hashCode());
+ result = prime * result + ((startTime == null) ? 0 : startTime.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+
+ if (obj instanceof ActivityInstanceDetail) {
+ final ActivityInstanceDetail other = (ActivityInstanceDetail) obj;
+ return isEqual(activityId, other.activityId) && isEqual(activityName, other.activityName)
+ && isEqual(activityType, other.activityType) && isEqual(processInstanceId, other.processInstanceId)
+ && isEqual(calledProcessInstanceId, other.calledProcessInstanceId)
+ && isEqual(startTime, other.startTime) && isEqual(endTime, other.endTime)
+ && isEqual(durationInMilliseconds, other.durationInMilliseconds);
+ }
+
+ return false;
+ }
+
+
+ public static final class ActivityInstanceDetailBuilder {
+
+ private String activityId;
+ private String activityName;
+ private String activityType;
+ private String processInstanceId;
+ private String calledProcessInstanceId;
+ private String startTime;
+ private String endTime;
+ private String durationInMilliseconds;
+
+ public ActivityInstanceDetailBuilder activityId(final String activityId) {
+ this.activityId = activityId;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder activityName(final String activityName) {
+ this.activityName = activityName;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder activityType(final String activityType) {
+ this.activityType = activityType;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder processInstanceId(final String processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder calledProcessInstanceId(final String calledProcessInstanceId) {
+ this.calledProcessInstanceId = calledProcessInstanceId;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder startTime(final String startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder endTime(final String endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ public ActivityInstanceDetailBuilder durationInMilliseconds(final String durationInMilliseconds) {
+ this.durationInMilliseconds = durationInMilliseconds;
+ return this;
+ }
+
+ public ActivityInstanceDetail build() {
+ return new ActivityInstanceDetail(this);
+ }
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessDefinitionDetail.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessDefinitionDetail.java
new file mode 100644
index 0000000..5e988f6
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessDefinitionDetail.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ *
+ */
+public class ProcessDefinitionDetail {
+
+ private final String processDefinitionId;
+ private final String processDefinitionXml;
+
+ public ProcessDefinitionDetail(final String processDefinitionId, final String processDefinitionXml) {
+ this.processDefinitionId = processDefinitionId;
+ this.processDefinitionXml = processDefinitionXml;
+ }
+
+ /**
+ * @return the processDefinitionId
+ */
+ public String getProcessDefinitionId() {
+ return processDefinitionId;
+ }
+
+ /**
+ * @return the processDefinitionXml
+ */
+ public String getProcessDefinitionXml() {
+ return processDefinitionXml;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((processDefinitionId == null) ? 0 : processDefinitionId.hashCode());
+ result = prime * result + ((processDefinitionXml == null) ? 0 : processDefinitionXml.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessDefinitionDetail) {
+ final ProcessDefinitionDetail other = (ProcessDefinitionDetail) obj;
+ return isEqual(processDefinitionId, other.processDefinitionId)
+ && isEqual(processDefinitionXml, other.processDefinitionXml);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "ProcessDefinitionDetail [processDefinitionId=" + processDefinitionId + ", processDefinitionXml="
+ + processDefinitionXml + "]";
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceDetail.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceDetail.java
new file mode 100644
index 0000000..2f8e756
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceDetail.java
@@ -0,0 +1,103 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class ProcessInstanceDetail {
+
+ private final String processInstanceId;
+ private final String processDefinitionId;
+ private final String processDefinitionName;
+ private final String superProcessInstanceId;
+
+
+ public ProcessInstanceDetail(final String processInstanceId, final String processDefinitionId,
+ final String processDefinitionName, final String superProcessInstanceId) {
+ this.processInstanceId = processInstanceId;
+ this.processDefinitionId = processDefinitionId;
+ this.processDefinitionName = processDefinitionName;
+ this.superProcessInstanceId = superProcessInstanceId;
+ }
+
+ /**
+ * @return the processInstanceId
+ */
+ public String getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ /**
+ * @return the processDefinitionId
+ */
+ public String getProcessDefinitionId() {
+ return processDefinitionId;
+ }
+
+ /**
+ * @return the processDefinitionName
+ */
+ public String getProcessDefinitionName() {
+ return processDefinitionName;
+ }
+
+ /**
+ * @return the superProcessInstanceId
+ */
+ public String getSuperProcessInstanceId() {
+ return superProcessInstanceId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((processInstanceId == null) ? 0 : processInstanceId.hashCode());
+ result = prime * result + ((processDefinitionId == null) ? 0 : processDefinitionId.hashCode());
+ result = prime * result + ((processDefinitionName == null) ? 0 : processDefinitionName.hashCode());
+ result = prime * result + ((superProcessInstanceId == null) ? 0 : superProcessInstanceId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessInstanceDetail) {
+ final ProcessInstanceDetail other = (ProcessInstanceDetail) obj;
+
+ return isEqual(processInstanceId, other.processInstanceId)
+ && isEqual(processDefinitionId, other.processDefinitionId)
+ && isEqual(processDefinitionName, other.processDefinitionName)
+ && isEqual(superProcessInstanceId, other.superProcessInstanceId);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "ProcessInstanceDetail [processInstanceId=" + processInstanceId + ", processDefinitionId="
+ + processDefinitionId + ", processDefinitionName=" + processDefinitionName + ", superProcessInstanceId="
+ + superProcessInstanceId + "]";
+ }
+
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceIdDetail.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceIdDetail.java
new file mode 100644
index 0000000..0f34664
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceIdDetail.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class ProcessInstanceIdDetail {
+
+ private final String processInstanceId;
+
+
+ public ProcessInstanceIdDetail(final String processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ }
+
+ /**
+ * @return the processInstanceId
+ */
+ public String getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((processInstanceId == null) ? 0 : processInstanceId.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessInstanceIdDetail) {
+ final ProcessInstanceIdDetail other = (ProcessInstanceIdDetail) obj;
+
+ return isEqual(processInstanceId, other.processInstanceId);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "ProcessInstanceIdDetail [processInstanceId=" + processInstanceId + "]";
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceVariableDetail.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceVariableDetail.java
new file mode 100644
index 0000000..a52121d
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/ProcessInstanceVariableDetail.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+public class ProcessInstanceVariableDetail {
+
+ private final String name;
+ private final Object value;
+ private final String type;
+
+ public ProcessInstanceVariableDetail(final String name, final Object value, final String type) {
+ this.name = name;
+ this.value = value;
+ this.type = type;
+ }
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return the value
+ */
+ public Object getValue() {
+ return value;
+ }
+
+ /**
+ * @return the type
+ */
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((value == null) ? 0 : value.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof ProcessInstanceVariableDetail) {
+ final ProcessInstanceVariableDetail other = (ProcessInstanceVariableDetail) obj;
+
+ return isEqual(name, other.name) && isEqual(value, other.value) && isEqual(type, other.type);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "ProcessInstanceVariableDetail [name=" + name + ", value=" + value + ", type=" + type + "]";
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequest.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequest.java
new file mode 100644
index 0000000..53b928b
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequest.java
@@ -0,0 +1,132 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import static org.onap.so.monitoring.utils.ObjectEqualsUtils.isEqual;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class SoInfraRequest {
+
+ private final String requestId;
+ private final String serviceInstanceId;
+ private final String serviceInstanceName;
+ private final String networkId;
+ private final String requestStatus;
+ private final String serviceType;
+ private final String startTime;
+ private final String endTime;
+
+ public SoInfraRequest(final SoInfraRequestBuilder requestBuilder) {
+ this.requestId = requestBuilder.getRequestId();
+ this.serviceInstanceId = requestBuilder.getServiceInstanceId();
+ this.serviceInstanceName = requestBuilder.getServiceInstanceName();
+ this.networkId = requestBuilder.getNetworkId();
+ this.requestStatus = requestBuilder.getRequestStatus();
+ this.serviceType = requestBuilder.getServiceType();
+ this.startTime = requestBuilder.getStartTime();
+ this.endTime = requestBuilder.getEndTime();
+ }
+
+ /**
+ * @return the requestId
+ */
+ public String getRequestId() {
+ return requestId;
+ }
+
+ /**
+ * @return the serviceInstanceId
+ */
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ /**
+ * @return the serviceInstanceName
+ */
+ public String getServiceInstanceName() {
+ return serviceInstanceName;
+ }
+
+ /**
+ * @return the networkId
+ */
+ public String getNetworkId() {
+ return networkId;
+ }
+
+ /**
+ * @return the requestStatus
+ */
+ public String getRequestStatus() {
+ return requestStatus;
+ }
+
+ /**
+ * @return the serviceType
+ */
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ /**
+ * @return the startTime
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public String getEndTime() {
+ return endTime;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((endTime == null) ? 0 : endTime.hashCode());
+ result = prime * result + ((networkId == null) ? 0 : networkId.hashCode());
+ result = prime * result + ((requestId == null) ? 0 : requestId.hashCode());
+ result = prime * result + ((requestStatus == null) ? 0 : requestStatus.hashCode());
+ result = prime * result + ((serviceInstanceId == null) ? 0 : serviceInstanceId.hashCode());
+ result = prime * result + ((serviceInstanceName == null) ? 0 : serviceInstanceName.hashCode());
+ result = prime * result + ((serviceType == null) ? 0 : serviceType.hashCode());
+ result = prime * result + ((startTime == null) ? 0 : startTime.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj instanceof SoInfraRequest) {
+ final SoInfraRequest other = (SoInfraRequest) obj;
+ return isEqual(requestId, other.requestId) && isEqual(serviceInstanceId, other.serviceInstanceId)
+ && isEqual(serviceInstanceName, other.serviceInstanceName) && isEqual(networkId, other.networkId)
+ && isEqual(requestStatus, other.requestStatus) && isEqual(serviceType, other.serviceType)
+ && isEqual(startTime, other.startTime) && isEqual(endTime, other.endTime);
+ }
+ return false;
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequestBuilder.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequestBuilder.java
new file mode 100644
index 0000000..235c481
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/model/SoInfraRequestBuilder.java
@@ -0,0 +1,148 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.model;
+
+import java.sql.Timestamp;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class SoInfraRequestBuilder {
+
+ private String requestId;
+ private String serviceInstanceId;
+ private String serviceInstanceName;
+ private String networkId;
+ private String requestStatus;
+ private String serviceType;
+ private String startTime;
+ private String endTime;
+
+ public SoInfraRequestBuilder setRequestId(final String requestId) {
+ this.requestId = requestId;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setServiceInstanceId(final String serviceInstanceId) {
+ this.serviceInstanceId = serviceInstanceId;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setServiceInstanceName(final String serviceInstanceName) {
+ this.serviceInstanceName = serviceInstanceName;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setNetworkId(final String networkId) {
+ this.networkId = networkId;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setRequestStatus(final String requestStatus) {
+ this.requestStatus = requestStatus;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setServiceType(final String serviceType) {
+ this.serviceType = serviceType;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setEndTime(final String endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setEndTime(final Timestamp endTime) {
+ this.endTime = endTime != null ? endTime.toString() : null;
+ return this;
+ }
+
+
+ public SoInfraRequestBuilder setStartTime(final String startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ public SoInfraRequestBuilder setStartTime(final Timestamp startTime) {
+ this.startTime = startTime != null ? startTime.toString() : null;
+ return this;
+ }
+
+ public SoInfraRequest build() {
+ return new SoInfraRequest(this);
+ }
+
+ /**
+ * @return the requestId
+ */
+ public String getRequestId() {
+ return requestId;
+ }
+
+ /**
+ * @return the serviceInstanceId
+ */
+ public String getServiceInstanceId() {
+ return serviceInstanceId;
+ }
+
+ /**
+ * @return the serviceInstanceName
+ */
+ public String getServiceInstanceName() {
+ return serviceInstanceName;
+ }
+
+ /**
+ * @return the networkId
+ */
+ public String getNetworkId() {
+ return networkId;
+ }
+
+ /**
+ * @return the requestStatus
+ */
+ public String getRequestStatus() {
+ return requestStatus;
+ }
+
+ /**
+ * @return the serviceType
+ */
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ /**
+ * @return the startTime
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public String getEndTime() {
+ return endTime;
+ }
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProvider.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProvider.java
new file mode 100644
index 0000000..729e57b
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProvider.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.rest.service;
+
+import java.util.List;
+import org.onap.so.monitoring.model.ActivityInstanceDetail;
+import org.onap.so.monitoring.model.ProcessDefinitionDetail;
+import org.onap.so.monitoring.model.ProcessInstanceDetail;
+import org.onap.so.monitoring.model.ProcessInstanceIdDetail;
+import org.onap.so.monitoring.model.ProcessInstanceVariableDetail;
+import com.google.common.base.Optional;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public interface CamundaProcessDataServiceProvider {
+
+ Optional<ProcessInstanceIdDetail> getProcessInstanceIdDetail(final String requestId);
+
+ Optional<ProcessInstanceDetail> getSingleProcessInstanceDetail(final String processInstanceId);
+
+ Optional<ProcessDefinitionDetail> getProcessDefinition(final String processDefinitionId);
+
+ List<ActivityInstanceDetail> getActivityInstance(final String processInstanceId);
+
+ List<ProcessInstanceVariableDetail> getProcessInstanceVariable(final String processInstanceId);
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProviderImpl.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProviderImpl.java
new file mode 100644
index 0000000..e0996fd
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/rest/service/CamundaProcessDataServiceProviderImpl.java
@@ -0,0 +1,169 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.rest.service;
+
+import static org.onap.so.monitoring.configuration.rest.HttpServiceProviderConfiguration.CAMUNDA_HTTP_REST_SERVICE_PROVIDER;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.onap.so.monitoring.camunda.model.ActivityInstance;
+import org.onap.so.monitoring.camunda.model.ProcessDefinition;
+import org.onap.so.monitoring.camunda.model.ProcessInstance;
+import org.onap.so.monitoring.camunda.model.ProcessInstanceVariable;
+import org.onap.so.monitoring.configuration.camunda.CamundaRestUrlProvider;
+import org.onap.so.monitoring.model.ActivityInstanceDetail;
+import org.onap.so.monitoring.model.ProcessDefinitionDetail;
+import org.onap.so.monitoring.model.ProcessInstanceDetail;
+import org.onap.so.monitoring.model.ProcessInstanceIdDetail;
+import org.onap.so.monitoring.model.ProcessInstanceVariableDetail;
+import org.onap.so.rest.service.HttpRestServiceProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+import com.google.common.base.Optional;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+@Service
+public class CamundaProcessDataServiceProviderImpl implements CamundaProcessDataServiceProvider {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CamundaProcessDataServiceProviderImpl.class);
+ private final CamundaRestUrlProvider urlProvider;
+
+ private final HttpRestServiceProvider httpRestServiceProvider;
+
+ @Autowired
+ public CamundaProcessDataServiceProviderImpl(final CamundaRestUrlProvider urlProvider,
+ @Qualifier(CAMUNDA_HTTP_REST_SERVICE_PROVIDER) @Autowired final HttpRestServiceProvider httpRestServiceProvider) {
+ this.urlProvider = urlProvider;
+ this.httpRestServiceProvider = httpRestServiceProvider;
+ }
+
+ @Override
+ public Optional<ProcessInstanceIdDetail> getProcessInstanceIdDetail(final String requestId) {
+ final String url = urlProvider.getHistoryProcessInstanceUrl(requestId);
+ final Optional<ProcessInstance[]> processInstances = httpRestServiceProvider.get(url, ProcessInstance[].class);
+
+ if (processInstances.isPresent()) {
+ final ProcessInstance[] instances = processInstances.get();
+ final String message =
+ "found process instance for request id: " + requestId + ", result size: " + instances.length;
+ LOGGER.debug(message);
+
+ if (instances.length > 0) {
+ for (int index = 0; index < instances.length; index++) {
+ final ProcessInstance processInstance = instances[index];
+ if (processInstance.getSuperProcessInstanceId() == null) {
+ return Optional.of(new ProcessInstanceIdDetail(processInstance.getId()));
+ }
+ LOGGER.debug("found sub process instance id with super process instanceId: "
+ + processInstance.getSuperProcessInstanceId());
+ }
+ }
+ }
+ LOGGER.error("Unable to find process intance for request id: " + requestId);
+ return Optional.absent();
+ }
+
+ @Override
+ public Optional<ProcessInstanceDetail> getSingleProcessInstanceDetail(final String processInstanceId) {
+ final String url = urlProvider.getSingleProcessInstanceUrl(processInstanceId);
+ final Optional<ProcessInstance> processInstances = httpRestServiceProvider.get(url, ProcessInstance.class);
+
+ if (processInstances.isPresent()) {
+ final ProcessInstance processInstance = processInstances.get();
+
+ final ProcessInstanceDetail instanceDetail =
+ new ProcessInstanceDetail(processInstance.getId(), processInstance.getProcessDefinitionId(),
+ processInstance.getProcessDefinitionName(), processInstance.getSuperProcessInstanceId());
+ return Optional.of(instanceDetail);
+
+ }
+ LOGGER.error("Unable to find process intance for id: " + processInstanceId);
+ return Optional.absent();
+ }
+
+
+ @Override
+ public Optional<ProcessDefinitionDetail> getProcessDefinition(final String processDefinitionId) {
+ final String url = urlProvider.getProcessDefinitionUrl(processDefinitionId);
+ final Optional<ProcessDefinition> response = httpRestServiceProvider.get(url, ProcessDefinition.class);
+ if (response.isPresent()) {
+ final ProcessDefinition processDefinition = response.get();
+ final String xmlDefinition = processDefinition.getBpmn20Xml();
+ if (xmlDefinition != null) {
+ return Optional.of(new ProcessDefinitionDetail(processDefinitionId, xmlDefinition));
+ }
+ }
+ LOGGER.error("Unable to find process definition for processDefinitionId: " + processDefinitionId);
+ return Optional.absent();
+ }
+
+ @Override
+ public List<ActivityInstanceDetail> getActivityInstance(final String processInstanceId) {
+ final String url = urlProvider.getActivityInstanceUrl(processInstanceId);
+ final Optional<ActivityInstance[]> response = httpRestServiceProvider.get(url, ActivityInstance[].class);
+ if (response.isPresent()) {
+ final ActivityInstance[] activityInstances = response.get();
+ final List<ActivityInstanceDetail> activityInstanceDetails = new ArrayList<>(activityInstances.length);
+ for (int index = 0; index < activityInstances.length; index++) {
+
+ final ActivityInstance activityInstance = activityInstances[index];
+
+ activityInstanceDetails.add(new ActivityInstanceDetail.ActivityInstanceDetailBuilder()
+ .activityId(activityInstance.getActivityId()).activityName(activityInstance.getActivityName())
+ .activityType(activityInstance.getActivityType())
+ .calledProcessInstanceId(activityInstance.getCalledProcessInstanceId())
+ .startTime(activityInstance.getStartTime()).endTime(activityInstance.getEndTime())
+ .durationInMilliseconds(activityInstance.getDurationInMillis())
+ .processInstanceId(activityInstance.getProcessInstanceId()).build());
+
+ }
+ return activityInstanceDetails;
+ }
+ LOGGER.error("Unable to find activity intance detail for process instance id: " + processInstanceId);
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<ProcessInstanceVariableDetail> getProcessInstanceVariable(final String processInstanceId) {
+ final String url = urlProvider.getProcessInstanceVariablesUrl(processInstanceId);
+ final Optional<ProcessInstanceVariable[]> response =
+ httpRestServiceProvider.get(url, ProcessInstanceVariable[].class);
+ if (response.isPresent()) {
+ final ProcessInstanceVariable[] instanceVariables = response.get();
+ final List<ProcessInstanceVariableDetail> instanceVariableDetails =
+ new ArrayList<>(instanceVariables.length);
+ for (int index = 0; index < instanceVariables.length; index++) {
+ final ProcessInstanceVariable processInstanceVariable = instanceVariables[index];
+ final ProcessInstanceVariableDetail instanceVariableDetail =
+ new ProcessInstanceVariableDetail(processInstanceVariable.getName(),
+ processInstanceVariable.getValue(), processInstanceVariable.getType());
+ instanceVariableDetails.add(instanceVariableDetail);
+ }
+ return instanceVariableDetails;
+ }
+ LOGGER.error("Unable to find process intance variable details for process instance id: " + processInstanceId);
+ return Collections.emptyList();
+ }
+
+}
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/utils/ObjectEqualsUtils.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/utils/ObjectEqualsUtils.java
new file mode 100644
index 0000000..d8e331b
--- /dev/null
+++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-handler/src/main/java/org/onap/so/monitoring/utils/ObjectEqualsUtils.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.monitoring.utils;
+
+/**
+ * @author waqas.ikram@ericsson.com
+ */
+public class ObjectEqualsUtils {
+
+ private ObjectEqualsUtils() {}
+
+ public static boolean isEqual(final Object objectA, final Object objectB) {
+ if (objectA == null) {
+ return objectB == null;
+ }
+ return objectA.equals(objectB);
+ }
+
+}