diff options
60 files changed, 11083 insertions, 970 deletions
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/InfraActiveRequestsRepositoryCustomController.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/InfraActiveRequestsRepositoryCustomController.java index 34bf9cb0f5..a476f890cc 100644 --- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/InfraActiveRequestsRepositoryCustomController.java +++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/InfraActiveRequestsRepositoryCustomController.java @@ -20,19 +20,19 @@ package org.onap.so.adapters.requestsdb; +import java.util.List; +import java.util.Map; + import org.onap.so.db.request.beans.InfraActiveRequests; import org.onap.so.db.request.data.controller.InstanceNameDuplicateCheckRequest; import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; - - -import java.util.List; -import java.util.Map; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; @RestController public class InfraActiveRequestsRepositoryCustomController { @@ -59,4 +59,11 @@ public class InfraActiveRequestsRepositoryCustomController { public InfraActiveRequests checkInstanceNameDuplicate(@RequestBody InstanceNameDuplicateCheckRequest instanceNameDuplicateCheckRequest) { return infraActiveRequestsRepository.checkInstanceNameDuplicate(instanceNameDuplicateCheckRequest.getInstanceIdMap(), instanceNameDuplicateCheckRequest.getInstanceName(), instanceNameDuplicateCheckRequest.getRequestScope()); } + + @RequestMapping(method = RequestMethod.POST, value = "/infraActiveRequests/v1/getInfraActiveRequests") + public List<InfraActiveRequests> getInfraActiveRequests(@RequestBody Map<String, String[]> filters, + @RequestParam("from") long startTime, @RequestParam("to") long endTime, + @RequestParam(value = "maxResult", required = false) Integer maxResult) { + return infraActiveRequestsRepository.getInfraActiveRequests(filters, startTime, endTime, maxResult); + } } diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java index 924f8870d3..348fc524ef 100644 --- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraActiveRequests.java @@ -36,60 +36,59 @@ import org.apache.commons.lang3.builder.ToStringBuilder; @Table(name = "infra_active_requests") public class InfraActiveRequests extends InfraRequests { - private static final long serialVersionUID = -6818265918910035170L; + private static final long serialVersionUID = -6818265918910035170L; - public InfraActiveRequests() { - } + public InfraActiveRequests() {} - public InfraActiveRequests(String requestId, String action) { - setRequestId(requestId); - setAction(action); - } + public InfraActiveRequests(final String requestId, final String action) { + setRequestId(requestId); + setAction(action); + } - public InfraActiveRequests(String requestId) { - setRequestId(requestId); - } - - @Override - public boolean equals(final Object other) { - if (this == other) { - return true; - } - if (!(other instanceof InfraActiveRequests)) { - return false; - } - InfraActiveRequests castOther = (InfraActiveRequests) other; - return Objects.equals(getRequestId(), castOther.getRequestId()); - } + public InfraActiveRequests(final String requestId) { + setRequestId(requestId); + } - @Override - public int hashCode() { - return Objects.hash(getRequestId()); - } + @Override + public boolean equals(final Object other) { + if (this == other) { + return true; + } + if (!(other instanceof InfraActiveRequests)) { + return false; + } + final InfraActiveRequests castOther = (InfraActiveRequests) other; + return Objects.equals(getRequestId(), castOther.getRequestId()); + } - @Override - public String toString() { - return new ToStringBuilder(this).append("requestId", getRequestId()) - .append("clientRequestId", getClientRequestId()).append("action", getAction()) - .append("requestStatus", getRequestStatus()).append("statusMessage", getStatusMessage()) - .append("progress", getProgress()).append("startTime", getStartTime()).append("endTime", getEndTime()) - .append("source", getSource()).append("vnfId", getVnfId()).append("vnfName", getVnfName()) - .append("vnfType", getVnfType()).append("serviceType", getServiceType()) - .append("aicNodeClli", getAicNodeClli()).append("tenantId", getTenantId()) - .append("provStatus", getProvStatus()).append("vnfParams", getVnfParams()) - .append("vnfOutputs", getVnfOutputs()).append("requestBody", getRequestBody()) - .append("responseBody", getResponseBody()).append("lastModifiedBy", getLastModifiedBy()) - .append("modifyTime", getModifyTime()).append("requestType", getRequestType()) - .append("volumeGroupId", getVolumeGroupId()).append("volumeGroupName", getVolumeGroupName()) - .append("vfModuleId", getVfModuleId()).append("vfModuleName", getVfModuleName()) - .append("vfModuleModelName", getVfModuleModelName()).append("aaiServiceId", getAaiServiceId()) - .append("aicCloudRegion", getAicCloudRegion()).append("callBackUrl", getCallBackUrl()) - .append("correlator", getCorrelator()).append("serviceInstanceId", getServiceInstanceId()) - .append("serviceInstanceName", getServiceInstanceName()).append("requestScope", getRequestScope()) - .append("requestAction", getRequestAction()).append("networkId", getNetworkId()) - .append("networkName", getNetworkName()).append("networkType", getNetworkType()) - .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId()) - .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId()) - .append("operationalEnvName", getOperationalEnvName()).toString(); - } + @Override + public int hashCode() { + return Objects.hash(getRequestId()); + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("requestId", getRequestId()) + .append("clientRequestId", getClientRequestId()).append("action", getAction()) + .append("requestStatus", getRequestStatus()).append("statusMessage", getStatusMessage()) + .append("progress", getProgress()).append("startTime", getStartTime()).append("endTime", getEndTime()) + .append("source", getSource()).append("vnfId", getVnfId()).append("vnfName", getVnfName()) + .append("vnfType", getVnfType()).append("serviceType", getServiceType()) + .append("aicNodeClli", getAicNodeClli()).append("tenantId", getTenantId()) + .append("provStatus", getProvStatus()).append("vnfParams", getVnfParams()) + .append("vnfOutputs", getVnfOutputs()).append("requestBody", getRequestBody()) + .append("responseBody", getResponseBody()).append("lastModifiedBy", getLastModifiedBy()) + .append("modifyTime", getModifyTime()).append("requestType", getRequestType()) + .append("volumeGroupId", getVolumeGroupId()).append("volumeGroupName", getVolumeGroupName()) + .append("vfModuleId", getVfModuleId()).append("vfModuleName", getVfModuleName()) + .append("vfModuleModelName", getVfModuleModelName()).append("aaiServiceId", getAaiServiceId()) + .append("aicCloudRegion", getAicCloudRegion()).append("callBackUrl", getCallBackUrl()) + .append("correlator", getCorrelator()).append("serviceInstanceId", getServiceInstanceId()) + .append("serviceInstanceName", getServiceInstanceName()).append("requestScope", getRequestScope()) + .append("requestAction", getRequestAction()).append("networkId", getNetworkId()) + .append("networkName", getNetworkName()).append("networkType", getNetworkType()) + .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId()) + .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId()) + .append("operationalEnvName", getOperationalEnvName()).toString(); + } } diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java index 48a6cf3ff0..0833064f8a 100644 --- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/beans/InfraRequests.java @@ -42,515 +42,515 @@ import uk.co.blackpepper.bowman.annotation.ResourceId; @MappedSuperclass public abstract class InfraRequests implements java.io.Serializable { - private static final long serialVersionUID = -5497583682393936143L; - private static final String UNKNOWN = "unknown"; - - - @Id - @Column(name = "REQUEST_ID", length=45) + private static final long serialVersionUID = -5497583682393936143L; + private static final String UNKNOWN = "unknown"; + + + @Id + @Column(name = "REQUEST_ID", length = 45) private String requestId; - @Column(name = "CLIENT_REQUEST_ID", length=45, unique=true) - private String clientRequestId; - @Column(name = "ACTION", length=45) - private String action; - @Column(name = "REQUEST_STATUS", length=20) - private String requestStatus; - @Column(name = "STATUS_MESSAGE", length=2000) - private String statusMessage; - @Column(name = "PROGRESS", precision=11) - private Long progress; - - @Column(name = "START_TIME") - private Timestamp startTime; - @Column(name = "END_TIME") - private Timestamp endTime; - @Column(name = "SOURCE", length=45) - private String source; - @Column(name = "VNF_ID", length=45) - private String vnfId; - @Column(name = "VNF_NAME", length=80) - private String vnfName; - @Column(name = "VNF_TYPE", length=200) - private String vnfType; - @Column(name = "SERVICE_TYPE", length=45) - private String serviceType; - @Column(name = "AIC_NODE_CLLI", length=11) - private String aicNodeClli; - @Column(name = "TENANT_ID", length=45) - private String tenantId; - @Column(name = "PROV_STATUS", length=20) - private String provStatus; - @Column(name = "VNF_PARAMS") - private String vnfParams; - @Column(name = "VNF_OUTPUTS") - private String vnfOutputs; - @Column(name = "REQUEST_BODY") - private String requestBody; - @Column(name = "RESPONSE_BODY") - private String responseBody; - @Column(name = "LAST_MODIFIED_BY", length=50) - private String lastModifiedBy; - @Column(name = "MODIFY_TIME") - @Temporal(TemporalType.TIMESTAMP) - private Date modifyTime; - @Column(name = "REQUEST_TYPE", length=20) - private String requestType; - @Column(name = "VOLUME_GROUP_ID", length=45) - private String volumeGroupId; - @Column(name = "VOLUME_GROUP_NAME", length=45) - private String volumeGroupName; - @Column(name = "VF_MODULE_ID", length=45) - private String vfModuleId; - @Column(name = "VF_MODULE_NAME", length=200) - private String vfModuleName; - @Column(name = "VF_MODULE_MODEL_NAME", length=200) - private String vfModuleModelName; - @Column(name = "AAI_SERVICE_ID", length=50) - private String aaiServiceId; - @Column(name = "AIC_CLOUD_REGION", length=11) - private String aicCloudRegion; - @Column(name = "CALLBACK_URL", length=200) - private String callBackUrl; - @Column(name = "CORRELATOR", length=80) - private String correlator; - @Column(name = "SERVICE_INSTANCE_ID", length=45) - private String serviceInstanceId; - @Column(name = "SERVICE_INSTANCE_NAME", length=80) - private String serviceInstanceName; - @Column(name = "REQUEST_SCOPE", length=45) - private String requestScope; - @Column(name = "REQUEST_ACTION", length=45) - private String requestAction; - @Column(name = "NETWORK_ID", length=45) - private String networkId; - @Column(name = "NETWORK_NAME", length=80) - private String networkName; - @Column(name = "NETWORK_TYPE", length=80) - private String networkType; - @Column(name = "REQUESTOR_ID", length=80) - private String requestorId; - @Column(name = "CONFIGURATION_ID", length=45) - private String configurationId; - @Column(name = "CONFIGURATION_NAME", length=200) - private String configurationName; - @Column(name = "OPERATIONAL_ENV_ID", length=45) - private String operationalEnvId; - @Column(name = "OPERATIONAL_ENV_NAME", length=200) - private String operationalEnvName; - - @ResourceId - public URI getRequestURI() { - return URI.create(this.requestId); - } - - public String getRequestId() { - return this.requestId; - } - - public void setRequestId(String requestId) { - this.requestId = requestId; - } - - public String getClientRequestId() { - return clientRequestId; - } - - public void setClientRequestId(String clientRequestId) { - this.clientRequestId = clientRequestId; - } - - public String getAction() { - return this.action; - } - - public void setAction(String action) { - this.action = action; - } - - public String getRequestStatus() { - return this.requestStatus; - } - - public void setRequestStatus(String requestStatus) { - this.requestStatus = requestStatus; - } - - public String getStatusMessage() { - return this.statusMessage; - } - - public void setStatusMessage(String statusMessage) { - this.statusMessage = statusMessage; - } - - public Long getProgress() { - return this.progress; - } - - public void setProgress(Long progress) { - this.progress = progress; - } + @Column(name = "CLIENT_REQUEST_ID", length = 45, unique = true) + private String clientRequestId; + @Column(name = "ACTION", length = 45) + private String action; + @Column(name = "REQUEST_STATUS", length = 20) + private String requestStatus; + @Column(name = "STATUS_MESSAGE", length = 2000) + private String statusMessage; + @Column(name = "PROGRESS", precision = 11) + private Long progress; + + @Column(name = "START_TIME") + private Timestamp startTime; + @Column(name = "END_TIME") + private Timestamp endTime; + @Column(name = "SOURCE", length = 45) + private String source; + @Column(name = "VNF_ID", length = 45) + private String vnfId; + @Column(name = "VNF_NAME", length = 80) + private String vnfName; + @Column(name = "VNF_TYPE", length = 200) + private String vnfType; + @Column(name = "SERVICE_TYPE", length = 45) + private String serviceType; + @Column(name = "AIC_NODE_CLLI", length = 11) + private String aicNodeClli; + @Column(name = "TENANT_ID", length = 45) + private String tenantId; + @Column(name = "PROV_STATUS", length = 20) + private String provStatus; + @Column(name = "VNF_PARAMS") + private String vnfParams; + @Column(name = "VNF_OUTPUTS") + private String vnfOutputs; + @Column(name = "REQUEST_BODY") + private String requestBody; + @Column(name = "RESPONSE_BODY") + private String responseBody; + @Column(name = "LAST_MODIFIED_BY", length = 50) + private String lastModifiedBy; + @Column(name = "MODIFY_TIME") + @Temporal(TemporalType.TIMESTAMP) + private Date modifyTime; + @Column(name = "REQUEST_TYPE", length = 20) + private String requestType; + @Column(name = "VOLUME_GROUP_ID", length = 45) + private String volumeGroupId; + @Column(name = "VOLUME_GROUP_NAME", length = 45) + private String volumeGroupName; + @Column(name = "VF_MODULE_ID", length = 45) + private String vfModuleId; + @Column(name = "VF_MODULE_NAME", length = 200) + private String vfModuleName; + @Column(name = "VF_MODULE_MODEL_NAME", length = 200) + private String vfModuleModelName; + @Column(name = "AAI_SERVICE_ID", length = 50) + private String aaiServiceId; + @Column(name = "AIC_CLOUD_REGION", length = 11) + private String aicCloudRegion; + @Column(name = "CALLBACK_URL", length = 200) + private String callBackUrl; + @Column(name = "CORRELATOR", length = 80) + private String correlator; + @Column(name = "SERVICE_INSTANCE_ID", length = 45) + private String serviceInstanceId; + @Column(name = "SERVICE_INSTANCE_NAME", length = 80) + private String serviceInstanceName; + @Column(name = "REQUEST_SCOPE", length = 45) + private String requestScope; + @Column(name = "REQUEST_ACTION", length = 45) + private String requestAction; + @Column(name = "NETWORK_ID", length = 45) + private String networkId; + @Column(name = "NETWORK_NAME", length = 80) + private String networkName; + @Column(name = "NETWORK_TYPE", length = 80) + private String networkType; + @Column(name = "REQUESTOR_ID", length = 80) + private String requestorId; + @Column(name = "CONFIGURATION_ID", length = 45) + private String configurationId; + @Column(name = "CONFIGURATION_NAME", length = 200) + private String configurationName; + @Column(name = "OPERATIONAL_ENV_ID", length = 45) + private String operationalEnvId; + @Column(name = "OPERATIONAL_ENV_NAME", length = 200) + private String operationalEnvName; + + @ResourceId + public URI getRequestURI() { + return URI.create(this.requestId); + } + + public String getRequestId() { + return this.requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public String getClientRequestId() { + return clientRequestId; + } + + public void setClientRequestId(String clientRequestId) { + this.clientRequestId = clientRequestId; + } + + public String getAction() { + return this.action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getRequestStatus() { + return this.requestStatus; + } + + public void setRequestStatus(String requestStatus) { + this.requestStatus = requestStatus; + } + + public String getStatusMessage() { + return this.statusMessage; + } + + public void setStatusMessage(String statusMessage) { + this.statusMessage = statusMessage; + } + + public Long getProgress() { + return this.progress; + } + + public void setProgress(Long progress) { + this.progress = progress; + } @XmlJavaTypeAdapter(TimestampXMLAdapter.class) - public Timestamp getStartTime() { - return this.startTime; - } + public Timestamp getStartTime() { + return this.startTime; + } - public void setStartTime(Timestamp startTime) { - this.startTime = startTime; - } + public void setStartTime(Timestamp startTime) { + this.startTime = startTime; + } @XmlJavaTypeAdapter(TimestampXMLAdapter.class) - public Timestamp getEndTime() { - return this.endTime; - } + public Timestamp getEndTime() { + return this.endTime; + } + + public void setEndTime(Timestamp endTime) { + this.endTime = endTime; + } + + public String getSource() { + return this.source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getVnfId() { + return this.vnfId; + } + + public void setVnfId(String vnfId) { + this.vnfId = vnfId; + } + + public String getVnfName() { + return this.vnfName; + } + + public void setVnfName(String vnfName) { + this.vnfName = vnfName; + } + + public String getVnfType() { + return this.vnfType; + } + + public void setVnfType(String vnfType) { + this.vnfType = vnfType; + } + + public String getServiceType() { + return this.serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public String getAicNodeClli() { + return this.aicNodeClli; + } + + public void setAicNodeClli(String aicNodeClli) { + this.aicNodeClli = aicNodeClli; + } + + public String getTenantId() { + return this.tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getProvStatus() { + return this.provStatus; + } + + public void setProvStatus(String provStatus) { + this.provStatus = provStatus; + } + + public String getVnfParams() { + return this.vnfParams; + } + + public void setVnfParams(String vnfParams) { + this.vnfParams = vnfParams; + } + + public String getVnfOutputs() { + return this.vnfOutputs; + } + + public void setVnfOutputs(String vnfOutputs) { + this.vnfOutputs = vnfOutputs; + } + + public String getRequestBody() { + return this.requestBody; + } + + public void setRequestBody(String requestBody) { + this.requestBody = requestBody; + } + + public String getResponseBody() { + return this.responseBody; + } + + public void setResponseBody(String responseBody) { + this.responseBody = responseBody; + } - public void setEndTime(Timestamp endTime) { - this.endTime = endTime; - } + public String getLastModifiedBy() { + return this.lastModifiedBy; + } - public String getSource() { - return this.source; - } + public void setLastModifiedBy(String lastModifiedBy) { + this.lastModifiedBy = lastModifiedBy; + } - public void setSource(String source) { - this.source = source; - } - - public String getVnfId() { - return this.vnfId; - } - - public void setVnfId(String vnfId) { - this.vnfId = vnfId; - } - - public String getVnfName() { - return this.vnfName; - } - - public void setVnfName(String vnfName) { - this.vnfName = vnfName; - } - - public String getVnfType() { - return this.vnfType; - } - - public void setVnfType(String vnfType) { - this.vnfType = vnfType; - } - - public String getServiceType() { - return this.serviceType; - } - - public void setServiceType(String serviceType) { - this.serviceType = serviceType; - } - - public String getAicNodeClli() { - return this.aicNodeClli; - } - - public void setAicNodeClli(String aicNodeClli) { - this.aicNodeClli = aicNodeClli; - } - - public String getTenantId() { - return this.tenantId; - } - - public void setTenantId(String tenantId) { - this.tenantId = tenantId; - } - - public String getProvStatus() { - return this.provStatus; - } - - public void setProvStatus(String provStatus) { - this.provStatus = provStatus; - } - - public String getVnfParams() { - return this.vnfParams; - } - - public void setVnfParams(String vnfParams) { - this.vnfParams = vnfParams; - } - - public String getVnfOutputs() { - return this.vnfOutputs; - } - - public void setVnfOutputs(String vnfOutputs) { - this.vnfOutputs = vnfOutputs; - } - - public String getRequestBody() { - return this.requestBody; - } - - public void setRequestBody(String requestBody) { - this.requestBody = requestBody; - } - - public String getResponseBody() { - return this.responseBody; - } - - public void setResponseBody(String responseBody) { - this.responseBody = responseBody; - } + public Date getModifyTime() { + return this.modifyTime; + } - public String getLastModifiedBy() { - return this.lastModifiedBy; - } + public String getRequestType() { + return this.requestType; + } - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } + public void setRequestType(String requestType) { + this.requestType = requestType; + } - public Date getModifyTime() { - return this.modifyTime; - } - - public String getRequestType() { - return this.requestType; - } + public String getVolumeGroupId() { + return this.volumeGroupId; + } - public void setRequestType(String requestType) { - this.requestType = requestType; - } + public void setVolumeGroupId(String volumeGroupId) { + this.volumeGroupId = volumeGroupId; + } - public String getVolumeGroupId() { - return this.volumeGroupId; - } + public String getVolumeGroupName() { + return this.volumeGroupName; + } - public void setVolumeGroupId(String volumeGroupId) { - this.volumeGroupId = volumeGroupId; - } + public void setVolumeGroupName(String volumeGroupName) { + this.volumeGroupName = volumeGroupName; + } - public String getVolumeGroupName() { - return this.volumeGroupName; - } + public String getVfModuleId() { + return this.vfModuleId; + } - public void setVolumeGroupName(String volumeGroupName) { - this.volumeGroupName = volumeGroupName; - } + public void setVfModuleId(String vfModuleId) { + this.vfModuleId = vfModuleId; + } - public String getVfModuleId() { - return this.vfModuleId; - } + public String getVfModuleName() { + return this.vfModuleName; + } - public void setVfModuleId(String vfModuleId) { - this.vfModuleId = vfModuleId; - } + public void setVfModuleName(String vfModuleName) { + this.vfModuleName = vfModuleName; + } - public String getVfModuleName() { - return this.vfModuleName; - } + public String getVfModuleModelName() { + return this.vfModuleModelName; + } - public void setVfModuleName(String vfModuleName) { - this.vfModuleName = vfModuleName; - } + public void setVfModuleModelName(String vfModuleModelName) { + this.vfModuleModelName = vfModuleModelName; + } - public String getVfModuleModelName() { - return this.vfModuleModelName; - } + public String getAaiServiceId() { + return this.aaiServiceId; + } - public void setVfModuleModelName(String vfModuleModelName) { - this.vfModuleModelName = vfModuleModelName; - } + public void setAaiServiceId(String aaiServiceId) { + this.aaiServiceId = aaiServiceId; + } - public String getAaiServiceId() { - return this.aaiServiceId; - } + public String getAicCloudRegion() { + return this.aicCloudRegion; + } - public void setAaiServiceId(String aaiServiceId) { - this.aaiServiceId = aaiServiceId; - } + public void setAicCloudRegion(String aicCloudRegion) { + this.aicCloudRegion = aicCloudRegion; + } - public String getAicCloudRegion() { - return this.aicCloudRegion; - } + public String getCallBackUrl() { + return callBackUrl; + } - public void setAicCloudRegion(String aicCloudRegion) { - this.aicCloudRegion = aicCloudRegion; - } + public void setCallBackUrl(String callBackUrl) { + this.callBackUrl = callBackUrl; + } - public String getCallBackUrl() { - return callBackUrl; - } + public String getCorrelator() { + return correlator; + } - public void setCallBackUrl(String callBackUrl) { - this.callBackUrl = callBackUrl; - } + public void setCorrelator(String correlator) { + this.correlator = correlator; + } - public String getCorrelator() { - return correlator; - } - - public void setCorrelator(String correlator) { - this.correlator = correlator; - } - - public String getServiceInstanceId() { - return serviceInstanceId; - } - - public void setServiceInstanceId(String serviceInstanceId) { - this.serviceInstanceId = serviceInstanceId; - } - - public String getServiceInstanceName() { - return serviceInstanceName; - } - - public void setServiceInstanceName(String serviceInstanceName) { - this.serviceInstanceName = serviceInstanceName; - } - - public String getRequestScope() { - return requestScope; - } - - public void setRequestScope(String requestScope) { - this.requestScope = requestScope; - } - - public String getRequestAction() { - return requestAction; - } - - public void setRequestAction(String requestAction) { - this.requestAction = requestAction; - } - - public String getNetworkId() { - return networkId; - } - - public void setNetworkId(String networkId) { - this.networkId = networkId; - } - - public String getNetworkName() { - return networkName; - } - - public void setNetworkName(String networkName) { - this.networkName = networkName; - } - - public String getNetworkType() { - return networkType; - } - - public void setNetworkType(String networkType) { - this.networkType = networkType; - } - - public String getRequestorId() { - return requestorId; - } - - public void setRequestorId(String requestorId) { - this.requestorId = requestorId; - } - - public String getConfigurationId() { - return configurationId; - } - - public void setConfigurationId(String configurationId) { - this.configurationId = configurationId; - } - - public String getConfigurationName() { - return configurationName; - } - - public void setConfigurationName(String configurationName) { - this.configurationName = configurationName; - } - - public String getOperationalEnvId() { - return operationalEnvId; - } - - public void setOperationalEnvId(String operationalEnvId) { - this.operationalEnvId = operationalEnvId; - } - - public String getOperationalEnvName() { - return operationalEnvName; - } - - public void setOperationalEnvName(String operationalEnvName) { - this.operationalEnvName = operationalEnvName; - } - - @PrePersist - protected void onCreate() { - if(requestScope==null) - requestScope=UNKNOWN; - if(requestAction==null) - requestAction=UNKNOWN; - this.modifyTime = new Date(); - } - - @PreUpdate - protected void onUpdate() { - if(requestScope==null) - requestScope=UNKNOWN; - if(requestAction==null) - requestAction=UNKNOWN; - this.modifyTime = new Date(); - } - - @Override - public boolean equals(final Object other) { - if (this == other) { - return true; - } - if (!(other instanceof InfraRequests)) { - return false; - } - InfraRequests castOther = (InfraRequests) other; - return Objects.equals(getRequestId(), castOther.getRequestId()); - } - - @Override - public int hashCode() { - return Objects.hash(getRequestId()); - } - - @Override - public String toString() { - return new ToStringBuilder(this).append("requestId", getRequestId()) - .append("clientRequestId", getClientRequestId()).append("action", getAction()) - .append("requestStatus", getRequestStatus()).append("statusMessage", getStatusMessage()) - .append("progress", getProgress()).append("startTime", getStartTime()).append("endTime", getEndTime()) - .append("source", getSource()).append("vnfId", getVnfId()).append("vnfName", getVnfName()) - .append("vnfType", getVnfType()).append("serviceType", getServiceType()) - .append("aicNodeClli", getAicNodeClli()).append("tenantId", getTenantId()) - .append("provStatus", getProvStatus()).append("vnfParams", getVnfParams()) - .append("vnfOutputs", getVnfOutputs()).append("requestBody", getRequestBody()) - .append("responseBody", getResponseBody()).append("lastModifiedBy", getLastModifiedBy()) - .append("modifyTime", getModifyTime()).append("requestType", getRequestType()) - .append("volumeGroupId", getVolumeGroupId()).append("volumeGroupName", getVolumeGroupName()) - .append("vfModuleId", getVfModuleId()).append("vfModuleName", getVfModuleName()) - .append("vfModuleModelName", getVfModuleModelName()).append("aaiServiceId", getAaiServiceId()) - .append("aicCloudRegion", getAicCloudRegion()).append("callBackUrl", getCallBackUrl()) - .append("correlator", getCorrelator()).append("serviceInstanceId", getServiceInstanceId()) - .append("serviceInstanceName", getServiceInstanceName()).append("requestScope", getRequestScope()) - .append("requestAction", getRequestAction()).append("networkId", getNetworkId()) - .append("networkName", getNetworkName()).append("networkType", getNetworkType()) - .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId()) - .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId()) - .append("operationalEnvName", getOperationalEnvName()).toString(); - } + public String getServiceInstanceId() { + return serviceInstanceId; + } + + public void setServiceInstanceId(String serviceInstanceId) { + this.serviceInstanceId = serviceInstanceId; + } + + public String getServiceInstanceName() { + return serviceInstanceName; + } + + public void setServiceInstanceName(String serviceInstanceName) { + this.serviceInstanceName = serviceInstanceName; + } + + public String getRequestScope() { + return requestScope; + } + + public void setRequestScope(String requestScope) { + this.requestScope = requestScope; + } + + public String getRequestAction() { + return requestAction; + } + + public void setRequestAction(String requestAction) { + this.requestAction = requestAction; + } + + public String getNetworkId() { + return networkId; + } + + public void setNetworkId(String networkId) { + this.networkId = networkId; + } + + public String getNetworkName() { + return networkName; + } + + public void setNetworkName(String networkName) { + this.networkName = networkName; + } + + public String getNetworkType() { + return networkType; + } + + public void setNetworkType(String networkType) { + this.networkType = networkType; + } + + public String getRequestorId() { + return requestorId; + } + + public void setRequestorId(String requestorId) { + this.requestorId = requestorId; + } + + public String getConfigurationId() { + return configurationId; + } + + public void setConfigurationId(String configurationId) { + this.configurationId = configurationId; + } + + public String getConfigurationName() { + return configurationName; + } + + public void setConfigurationName(String configurationName) { + this.configurationName = configurationName; + } + + public String getOperationalEnvId() { + return operationalEnvId; + } + + public void setOperationalEnvId(String operationalEnvId) { + this.operationalEnvId = operationalEnvId; + } + + public String getOperationalEnvName() { + return operationalEnvName; + } + + public void setOperationalEnvName(String operationalEnvName) { + this.operationalEnvName = operationalEnvName; + } + + @PrePersist + protected void onCreate() { + if (requestScope == null) + requestScope = UNKNOWN; + if (requestAction == null) + requestAction = UNKNOWN; + this.modifyTime = new Date(); + } + + @PreUpdate + protected void onUpdate() { + if (requestScope == null) + requestScope = UNKNOWN; + if (requestAction == null) + requestAction = UNKNOWN; + this.modifyTime = new Date(); + } + + @Override + public boolean equals(final Object other) { + if (this == other) { + return true; + } + if (!(other instanceof InfraRequests)) { + return false; + } + InfraRequests castOther = (InfraRequests) other; + return Objects.equals(getRequestId(), castOther.getRequestId()); + } + + @Override + public int hashCode() { + return Objects.hash(getRequestId()); + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("requestId", getRequestId()) + .append("clientRequestId", getClientRequestId()).append("action", getAction()) + .append("requestStatus", getRequestStatus()).append("statusMessage", getStatusMessage()) + .append("progress", getProgress()).append("startTime", getStartTime()).append("endTime", getEndTime()) + .append("source", getSource()).append("vnfId", getVnfId()).append("vnfName", getVnfName()) + .append("vnfType", getVnfType()).append("serviceType", getServiceType()) + .append("aicNodeClli", getAicNodeClli()).append("tenantId", getTenantId()) + .append("provStatus", getProvStatus()).append("vnfParams", getVnfParams()) + .append("vnfOutputs", getVnfOutputs()).append("requestBody", getRequestBody()) + .append("responseBody", getResponseBody()).append("lastModifiedBy", getLastModifiedBy()) + .append("modifyTime", getModifyTime()).append("requestType", getRequestType()) + .append("volumeGroupId", getVolumeGroupId()).append("volumeGroupName", getVolumeGroupName()) + .append("vfModuleId", getVfModuleId()).append("vfModuleName", getVfModuleName()) + .append("vfModuleModelName", getVfModuleModelName()).append("aaiServiceId", getAaiServiceId()) + .append("aicCloudRegion", getAicCloudRegion()).append("callBackUrl", getCallBackUrl()) + .append("correlator", getCorrelator()).append("serviceInstanceId", getServiceInstanceId()) + .append("serviceInstanceName", getServiceInstanceName()).append("requestScope", getRequestScope()) + .append("requestAction", getRequestAction()).append("networkId", getNetworkId()) + .append("networkName", getNetworkName()).append("networkType", getNetworkType()) + .append("requestorId", getRequestorId()).append("configurationId", getConfigurationId()) + .append("configurationName", getConfigurationName()).append("operationalEnvId", getOperationalEnvId()) + .append("operationalEnvName", getOperationalEnvName()).toString(); + } } diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryCustom.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryCustom.java index ba237bfa35..570861dfa1 100644 --- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryCustom.java +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryCustom.java @@ -30,28 +30,31 @@ import org.springframework.stereotype.Repository; @Repository public interface InfraActiveRequestsRepositoryCustom { - public boolean healthCheck(); + public boolean healthCheck(); - public InfraActiveRequests getRequestFromInfraActive(String requestId); + public InfraActiveRequests getRequestFromInfraActive(String requestId); - public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, - String requestScope); + public InfraActiveRequests checkInstanceNameDuplicate(HashMap<String, String> instanceIdMap, String instanceName, + String requestScope); - public List<InfraActiveRequests> getOrchestrationFiltersFromInfraActive(Map<String, List<String>> orchestrationMap); + public List<InfraActiveRequests> getOrchestrationFiltersFromInfraActive(Map<String, List<String>> orchestrationMap); - // Added this method for Tenant Isolation project ( 1802-295491a) to query the mso_requests DB - // (infra_active_requests table) for operationalEnvId and OperationalEnvName - public List<InfraActiveRequests> getCloudOrchestrationFiltersFromInfraActive(Map<String, String> orchestrationMap); + // Added this method for Tenant Isolation project ( 1802-295491a) to query the mso_requests DB + // (infra_active_requests table) for operationalEnvId and OperationalEnvName + public List<InfraActiveRequests> getCloudOrchestrationFiltersFromInfraActive(Map<String, String> orchestrationMap); - public List<InfraActiveRequests> getRequestListFromInfraActive(String queryAttributeName, String queryValue, - String requestType); + public List<InfraActiveRequests> getRequestListFromInfraActive(String queryAttributeName, String queryValue, + String requestType); - public InfraActiveRequests getRequestFromInfraActive(String requestId, String requestType); + public InfraActiveRequests getRequestFromInfraActive(String requestId, String requestType); - public InfraActiveRequests checkDuplicateByVnfName(String vnfName, String action, String requestType); + public InfraActiveRequests checkDuplicateByVnfName(String vnfName, String action, String requestType); - public InfraActiveRequests checkDuplicateByVnfId(String vnfId, String action, String requestType); + public InfraActiveRequests checkDuplicateByVnfId(String vnfId, String action, String requestType); + + public InfraActiveRequests checkVnfIdStatus(String operationalEnvironmentId); + + List<InfraActiveRequests> getInfraActiveRequests(final Map<String, String[]> filters, final long startTime, + final long endTime, final Integer maxResult); - public InfraActiveRequests checkVnfIdStatus(String operationalEnvironmentId); - } diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImpl.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImpl.java index 3240972a58..d66e378146 100644 --- a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImpl.java +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImpl.java @@ -25,11 +25,13 @@ import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.TimeUnit; import javax.persistence.EntityManager; @@ -43,13 +45,9 @@ import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.onap.so.db.request.beans.InfraActiveRequests; -import org.onap.so.db.request.beans.OperationStatus; -import org.onap.so.db.request.beans.ResourceOperationStatus; import org.onap.so.logger.MsoLogger; -import org.onap.so.requestsdb.RequestsDbConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.data.domain.Example; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; @@ -58,509 +56,563 @@ import org.springframework.transaction.annotation.Transactional; @Transactional(readOnly = true) public class InfraActiveRequestsRepositoryImpl implements InfraActiveRequestsRepositoryCustom { - @Qualifier("requestEntityManagerFactory") - @Autowired - private EntityManager entityManager; - - protected static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL, InfraActiveRequestsRepositoryImpl.class); - - protected static final String SOURCE = "source"; - protected static final String START_TIME = "startTime"; - protected static final String REQUEST_TYPE = "requestType"; - protected static final String SERVICE_INSTANCE_ID = "serviceInstanceId"; - protected static final String SERVICE_INSTANCE_NAME = "serviceInstanceName"; - protected static final String VNF_INSTANCE_NAME = "vnfName"; - protected static final String VNF_INSTANCE_ID = "vnfId"; - protected static final String VOLUME_GROUP_INSTANCE_NAME = "volumeGroupName"; - protected static final String VOLUME_GROUP_INSTANCE_ID = "volumeGroupId"; - protected static final String VFMODULE_INSTANCE_NAME = "vfModuleName"; - protected static final String VFMODULE_INSTANCE_ID = "vfModuleId"; - protected static final String NETWORK_INSTANCE_NAME = "networkName"; - protected static final String CONFIGURATION_INSTANCE_ID = "configurationId"; - protected static final String CONFIGURATION_INSTANCE_NAME= "configurationName"; - protected static final String OPERATIONAL_ENV_ID = "operationalEnvId"; - protected static final String OPERATIONAL_ENV_NAME = "operationalEnvName"; - protected static final String NETWORK_INSTANCE_ID = "networkId"; - protected static final String GLOBAL_SUBSCRIBER_ID = "globalSubscriberId"; - protected static final String SERVICE_NAME_VERSION_ID = "serviceNameVersionId"; - protected static final String SERVICE_ID = "serviceId"; - protected static final String SERVICE_VERSION = "serviceVersion"; - protected static final String REQUEST_ID = "requestId"; - protected static final String REQUESTOR_ID = "requestorId"; - - @Autowired - private OperationStatusRepository operationStatusRepository; - - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#healthCheck() - */ + @Qualifier("requestEntityManagerFactory") + @Autowired + private EntityManager entityManager; + + protected static MsoLogger msoLogger = + MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, InfraActiveRequestsRepositoryImpl.class); + + protected static final String REQUEST_STATUS = "requestStatus"; + protected static final String SOURCE = "source"; + protected static final String START_TIME = "startTime"; + protected static final String END_TIME = "endTime"; + protected static final String REQUEST_TYPE = "requestType"; + protected static final String SERVICE_INSTANCE_ID = "serviceInstanceId"; + protected static final String SERVICE_INSTANCE_NAME = "serviceInstanceName"; + protected static final String VNF_INSTANCE_NAME = "vnfName"; + protected static final String VNF_INSTANCE_ID = "vnfId"; + protected static final String VOLUME_GROUP_INSTANCE_NAME = "volumeGroupName"; + protected static final String VOLUME_GROUP_INSTANCE_ID = "volumeGroupId"; + protected static final String VFMODULE_INSTANCE_NAME = "vfModuleName"; + protected static final String VFMODULE_INSTANCE_ID = "vfModuleId"; + protected static final String NETWORK_INSTANCE_NAME = "networkName"; + protected static final String CONFIGURATION_INSTANCE_ID = "configurationId"; + protected static final String CONFIGURATION_INSTANCE_NAME = "configurationName"; + protected static final String OPERATIONAL_ENV_ID = "operationalEnvId"; + protected static final String OPERATIONAL_ENV_NAME = "operationalEnvName"; + protected static final String NETWORK_INSTANCE_ID = "networkId"; + protected static final String GLOBAL_SUBSCRIBER_ID = "globalSubscriberId"; + protected static final String SERVICE_NAME_VERSION_ID = "serviceNameVersionId"; + protected static final String SERVICE_ID = "serviceId"; + protected static final String SERVICE_VERSION = "serviceVersion"; + protected static final String REQUEST_ID = "requestId"; + protected static final String REQUESTOR_ID = "requestorId"; + protected static final String ACTION = "action"; + + private static final List<String> VALID_COLUMNS = + Arrays.asList(REQUEST_ID, SERVICE_INSTANCE_ID, SERVICE_INSTANCE_NAME, ACTION, REQUEST_STATUS); + + + /* + * (non-Javadoc) + * + * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#healthCheck() + */ @Override - public boolean healthCheck () { - - Query query = entityManager.createNativeQuery(" show tables "); + public boolean healthCheck() { + + final Query query = entityManager.createNativeQuery(" show tables "); - List<?> list = query.getResultList(); + final List<?> list = query.getResultList(); return true; } - private List<InfraActiveRequests> executeInfraQuery (CriteriaQuery<InfraActiveRequests> crit, List <Predicate> predicates, Order order) { + private List<InfraActiveRequests> executeInfraQuery(final CriteriaQuery<InfraActiveRequests> crit, + final List<Predicate> predicates, final Order order) { + + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Execute query on infra active request table"); - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Execute query on infra active request table"); - - List <InfraActiveRequests> results = new ArrayList<InfraActiveRequests>(); + List<InfraActiveRequests> results = new ArrayList<InfraActiveRequests>(); try { - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - crit.where(cb.and(predicates.toArray(new Predicate[0]))); + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + crit.where(cb.and(predicates.toArray(new Predicate[0]))); crit.orderBy(order); results = entityManager.createQuery(crit).getResultList(); } finally { - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "getInfraActiveRequest", null); + msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, + "Successfully", "RequestDB", "getInfraActiveRequest", null); } return results; } - - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestFromInfraActive(java.lang.String) - */ + + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestFromInfraActive(java. + * lang.String) + */ @Override - public InfraActiveRequests getRequestFromInfraActive (String requestId) { - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Get request " + requestId + " from InfraActiveRequests DB"); + public InfraActiveRequests getRequestFromInfraActive(final String requestId) { + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Get request " + requestId + " from InfraActiveRequests DB"); InfraActiveRequests ar = null; try { - Query query = entityManager.createQuery ("from InfraActiveRequests where requestId = :requestId OR clientRequestId = :requestId"); - query.setParameter (REQUEST_ID, requestId); + final Query query = entityManager.createQuery( + "from InfraActiveRequests where requestId = :requestId OR clientRequestId = :requestId"); + query.setParameter(REQUEST_ID, requestId); ar = this.getSingleResult(query); } finally { - - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "InfraRequestDB", "getRequestFromInfraActive", null); + + msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, + "Successfully", "InfraRequestDB", "getRequestFromInfraActive", null); } return ar; } - - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkInstanceNameDuplicate(java.util.HashMap, java.lang.String, java.lang.String) - */ + + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkInstanceNameDuplicate(java. + * util.HashMap, java.lang.String, java.lang.String) + */ @Override - public InfraActiveRequests checkInstanceNameDuplicate (HashMap<String,String> instanceIdMap, String instanceName, String requestScope) { - - List <Predicate> predicates = new LinkedList <> (); - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); - Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); - - if(instanceName != null && !instanceName.equals("")) { - - if("service".equals(requestScope)){ - predicates.add (cb.equal(tableRoot.get(SERVICE_INSTANCE_NAME), instanceName)); - } else if("vnf".equals(requestScope)){ - predicates.add (cb.equal(tableRoot.get(VNF_INSTANCE_NAME), instanceName)); - } else if("volumeGroup".equals(requestScope)){ - predicates.add (cb.equal(tableRoot.get(VOLUME_GROUP_INSTANCE_NAME), instanceName)); - } else if("vfModule".equals(requestScope)){ - predicates.add (cb.equal(tableRoot.get(VFMODULE_INSTANCE_NAME), instanceName)); - } else if("network".equals(requestScope)){ - predicates.add (cb.equal(tableRoot.get(NETWORK_INSTANCE_NAME), instanceName)); - } else if(requestScope.equals("configuration")) { - predicates.add (cb.equal(tableRoot.get(CONFIGURATION_INSTANCE_NAME), instanceName)); - } else if(requestScope.equals("operationalEnvironment")) { - predicates.add (cb.equal(tableRoot.get(OPERATIONAL_ENV_NAME), instanceName)); - } - + public InfraActiveRequests checkInstanceNameDuplicate(final HashMap<String, String> instanceIdMap, + final String instanceName, final String requestScope) { + + final List<Predicate> predicates = new LinkedList<>(); + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); + + if (instanceName != null && !instanceName.equals("")) { + + if ("service".equals(requestScope)) { + predicates.add(cb.equal(tableRoot.get(SERVICE_INSTANCE_NAME), instanceName)); + } else if ("vnf".equals(requestScope)) { + predicates.add(cb.equal(tableRoot.get(VNF_INSTANCE_NAME), instanceName)); + } else if ("volumeGroup".equals(requestScope)) { + predicates.add(cb.equal(tableRoot.get(VOLUME_GROUP_INSTANCE_NAME), instanceName)); + } else if ("vfModule".equals(requestScope)) { + predicates.add(cb.equal(tableRoot.get(VFMODULE_INSTANCE_NAME), instanceName)); + } else if ("network".equals(requestScope)) { + predicates.add(cb.equal(tableRoot.get(NETWORK_INSTANCE_NAME), instanceName)); + } else if (requestScope.equals("configuration")) { + predicates.add(cb.equal(tableRoot.get(CONFIGURATION_INSTANCE_NAME), instanceName)); + } else if (requestScope.equals("operationalEnvironment")) { + predicates.add(cb.equal(tableRoot.get(OPERATIONAL_ENV_NAME), instanceName)); + } + } else { - if(instanceIdMap != null){ - if("service".equals(requestScope) && instanceIdMap.get("serviceInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(SERVICE_INSTANCE_ID), instanceIdMap.get("serviceInstanceId"))); - } - - if("vnf".equals(requestScope) && instanceIdMap.get("vnfInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(VNF_INSTANCE_ID), instanceIdMap.get("vnfInstanceId" ))); - } - - if("vfModule".equals(requestScope) && instanceIdMap.get("vfModuleInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(VFMODULE_INSTANCE_ID), instanceIdMap.get("vfModuleInstanceId"))); - } - - if("volumeGroup".equals(requestScope) && instanceIdMap.get("volumeGroupInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(VOLUME_GROUP_INSTANCE_ID), instanceIdMap.get("volumeGroupInstanceId"))); - } - - if("network".equals(requestScope) && instanceIdMap.get("networkInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(NETWORK_INSTANCE_ID), instanceIdMap.get("networkInstanceId"))); - } - - if(requestScope.equals("configuration") && instanceIdMap.get("configurationInstanceId") != null){ - predicates.add (cb.equal(tableRoot.get(CONFIGURATION_INSTANCE_ID), instanceIdMap.get("configurationInstanceId"))); - } - - if(requestScope.equals("operationalEnvironment") && instanceIdMap.get("operationalEnvironmentId") != null) { - predicates.add (cb.equal(tableRoot.get(OPERATIONAL_ENV_ID), instanceIdMap.get("operationalEnvironmentId"))); - } + if (instanceIdMap != null) { + if ("service".equals(requestScope) && instanceIdMap.get("serviceInstanceId") != null) { + predicates + .add(cb.equal(tableRoot.get(SERVICE_INSTANCE_ID), instanceIdMap.get("serviceInstanceId"))); + } + + if ("vnf".equals(requestScope) && instanceIdMap.get("vnfInstanceId") != null) { + predicates.add(cb.equal(tableRoot.get(VNF_INSTANCE_ID), instanceIdMap.get("vnfInstanceId"))); + } + + if ("vfModule".equals(requestScope) && instanceIdMap.get("vfModuleInstanceId") != null) { + predicates.add( + cb.equal(tableRoot.get(VFMODULE_INSTANCE_ID), instanceIdMap.get("vfModuleInstanceId"))); + } + + if ("volumeGroup".equals(requestScope) && instanceIdMap.get("volumeGroupInstanceId") != null) { + predicates.add(cb.equal(tableRoot.get(VOLUME_GROUP_INSTANCE_ID), + instanceIdMap.get("volumeGroupInstanceId"))); + } + + if ("network".equals(requestScope) && instanceIdMap.get("networkInstanceId") != null) { + predicates + .add(cb.equal(tableRoot.get(NETWORK_INSTANCE_ID), instanceIdMap.get("networkInstanceId"))); + } + + if (requestScope.equals("configuration") && instanceIdMap.get("configurationInstanceId") != null) { + predicates.add(cb.equal(tableRoot.get(CONFIGURATION_INSTANCE_ID), + instanceIdMap.get("configurationInstanceId"))); + } + + if (requestScope.equals("operationalEnvironment") + && instanceIdMap.get("operationalEnvironmentId") != null) { + predicates.add( + cb.equal(tableRoot.get(OPERATIONAL_ENV_ID), instanceIdMap.get("operationalEnvironmentId"))); + } } } - - predicates.add (tableRoot.get("requestStatus").in(Arrays.asList("PENDING", "IN_PROGRESS", "TIMEOUT", "PENDING_MANUAL_TASK"))); - - Order order = cb.desc(tableRoot.get(START_TIME)); - - List<InfraActiveRequests> dupList = executeInfraQuery(crit, predicates, order); - + + predicates.add(tableRoot.get(REQUEST_STATUS) + .in(Arrays.asList("PENDING", "IN_PROGRESS", "TIMEOUT", "PENDING_MANUAL_TASK"))); + + final Order order = cb.desc(tableRoot.get(START_TIME)); + + final List<InfraActiveRequests> dupList = executeInfraQuery(crit, predicates, order); + InfraActiveRequests infraActiveRequests = null; - - if(dupList != null && !dupList.isEmpty()){ - infraActiveRequests = dupList.get(0); + + if (dupList != null && !dupList.isEmpty()) { + infraActiveRequests = dupList.get(0); } - - return infraActiveRequests; + + return infraActiveRequests; } - - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getOrchestrationFiltersFromInfraActive(java.util.Map) - */ + + /* + * (non-Javadoc) + * + * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom# + * getOrchestrationFiltersFromInfraActive(java.util.Map) + */ @Override - public List<InfraActiveRequests> getOrchestrationFiltersFromInfraActive (Map<String, List<String>> orchestrationMap) { - - - List <Predicate> predicates = new LinkedList <> (); - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); - Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); - for (Map.Entry<String, List<String>> entry : orchestrationMap.entrySet()) - { - String mapKey = entry.getKey(); - if("serviceInstanceId".equalsIgnoreCase(mapKey)) { - mapKey = "serviceInstanceId"; - } else if("serviceInstanceName".equalsIgnoreCase(mapKey)) { - mapKey = "serviceInstanceName"; - } else if("vnfInstanceId".equalsIgnoreCase(mapKey)){ - mapKey = "vnfId"; - } else if("vnfInstanceName".equalsIgnoreCase(mapKey)) { - mapKey = "vnfName"; - } else if("vfModuleInstanceId".equalsIgnoreCase(mapKey)) { - mapKey = "vfModuleId"; - } else if("vfModuleInstanceName".equalsIgnoreCase(mapKey)) { - mapKey = "vfModuleName"; - } else if("volumeGroupInstanceId".equalsIgnoreCase(mapKey)) { - mapKey = "volumeGroupId"; - } else if("volumeGroupInstanceName".equalsIgnoreCase(mapKey)) { - mapKey = "volumeGroupName"; - } else if("networkInstanceId".equalsIgnoreCase(mapKey)) { - mapKey = "networkId"; - } else if("networkInstanceName".equalsIgnoreCase(mapKey)) { - mapKey = "networkName"; - } else if(mapKey.equalsIgnoreCase("configurationInstanceId")) { - mapKey = "configurationId"; - } else if(mapKey.equalsIgnoreCase("configurationInstanceName")) { - mapKey = "configurationName"; - } else if("lcpCloudRegionId".equalsIgnoreCase(mapKey)) { - mapKey = "aicCloudRegion"; - } else if("tenantId".equalsIgnoreCase(mapKey)) { - mapKey = "tenantId"; - } else if("modelType".equalsIgnoreCase(mapKey)) { - mapKey = "requestScope"; - } else if("requestorId".equalsIgnoreCase(mapKey)) { - mapKey = "requestorId"; - } else if("requestExecutionDate".equalsIgnoreCase(mapKey)) { - mapKey = "startTime"; - } - - String propertyValue = entry.getValue().get(1); - if ("startTime".equals(mapKey)) { - SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); - try { - Date thisDate = format.parse(propertyValue); - Timestamp minTime = new Timestamp(thisDate.getTime()); - Timestamp maxTime = new Timestamp(thisDate.getTime() + TimeUnit.DAYS.toMillis(1)); - - if("DOES_NOT_EQUAL".equalsIgnoreCase(entry.getValue().get(0))) { - predicates.add(cb.or(cb.lessThan(tableRoot.get(mapKey), minTime), cb.greaterThanOrEqualTo(tableRoot.get(mapKey), maxTime))); - } else { - predicates.add(cb.between(tableRoot.get(mapKey), minTime, maxTime)); - } - } - catch (Exception e){ - msoLogger.debug("Exception in getOrchestrationFiltersFromInfraActive(): + " + e.getMessage(), e); - return null; - } - } - else if("DOES_NOT_EQUAL".equalsIgnoreCase(entry.getValue().get(0))) { - predicates.add(cb.notEqual(tableRoot.get(mapKey), propertyValue)); - } else { - predicates.add(cb.equal(tableRoot.get(mapKey), propertyValue)); - } - - } - - Order order = cb.asc(tableRoot.get(START_TIME)); - - return executeInfraQuery (crit, predicates, order); + public List<InfraActiveRequests> getOrchestrationFiltersFromInfraActive( + final Map<String, List<String>> orchestrationMap) { + + + final List<Predicate> predicates = new LinkedList<>(); + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); + for (final Map.Entry<String, List<String>> entry : orchestrationMap.entrySet()) { + String mapKey = entry.getKey(); + if ("serviceInstanceId".equalsIgnoreCase(mapKey)) { + mapKey = "serviceInstanceId"; + } else if ("serviceInstanceName".equalsIgnoreCase(mapKey)) { + mapKey = "serviceInstanceName"; + } else if ("vnfInstanceId".equalsIgnoreCase(mapKey)) { + mapKey = "vnfId"; + } else if ("vnfInstanceName".equalsIgnoreCase(mapKey)) { + mapKey = "vnfName"; + } else if ("vfModuleInstanceId".equalsIgnoreCase(mapKey)) { + mapKey = "vfModuleId"; + } else if ("vfModuleInstanceName".equalsIgnoreCase(mapKey)) { + mapKey = "vfModuleName"; + } else if ("volumeGroupInstanceId".equalsIgnoreCase(mapKey)) { + mapKey = "volumeGroupId"; + } else if ("volumeGroupInstanceName".equalsIgnoreCase(mapKey)) { + mapKey = "volumeGroupName"; + } else if ("networkInstanceId".equalsIgnoreCase(mapKey)) { + mapKey = "networkId"; + } else if ("networkInstanceName".equalsIgnoreCase(mapKey)) { + mapKey = "networkName"; + } else if (mapKey.equalsIgnoreCase("configurationInstanceId")) { + mapKey = "configurationId"; + } else if (mapKey.equalsIgnoreCase("configurationInstanceName")) { + mapKey = "configurationName"; + } else if ("lcpCloudRegionId".equalsIgnoreCase(mapKey)) { + mapKey = "aicCloudRegion"; + } else if ("tenantId".equalsIgnoreCase(mapKey)) { + mapKey = "tenantId"; + } else if ("modelType".equalsIgnoreCase(mapKey)) { + mapKey = "requestScope"; + } else if ("requestorId".equalsIgnoreCase(mapKey)) { + mapKey = "requestorId"; + } else if ("requestExecutionDate".equalsIgnoreCase(mapKey)) { + mapKey = "startTime"; + } + + final String propertyValue = entry.getValue().get(1); + if ("startTime".equals(mapKey)) { + final SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); + try { + final Date thisDate = format.parse(propertyValue); + final Timestamp minTime = new Timestamp(thisDate.getTime()); + final Timestamp maxTime = new Timestamp(thisDate.getTime() + TimeUnit.DAYS.toMillis(1)); + + if ("DOES_NOT_EQUAL".equalsIgnoreCase(entry.getValue().get(0))) { + predicates.add(cb.or(cb.lessThan(tableRoot.get(mapKey), minTime), + cb.greaterThanOrEqualTo(tableRoot.get(mapKey), maxTime))); + } else { + predicates.add(cb.between(tableRoot.get(mapKey), minTime, maxTime)); + } + } catch (final Exception e) { + msoLogger.debug("Exception in getOrchestrationFiltersFromInfraActive(): + " + e.getMessage(), e); + return null; + } + } else if ("DOES_NOT_EQUAL".equalsIgnoreCase(entry.getValue().get(0))) { + predicates.add(cb.notEqual(tableRoot.get(mapKey), propertyValue)); + } else { + predicates.add(cb.equal(tableRoot.get(mapKey), propertyValue)); + } + + } + + final Order order = cb.asc(tableRoot.get(START_TIME)); + + return executeInfraQuery(crit, predicates, order); } - // Added this method for Tenant Isolation project ( 1802-295491a) to query the mso_requests DB + // Added this method for Tenant Isolation project ( 1802-295491a) to query the mso_requests DB // (infra_active_requests table) for operationalEnvId and OperationalEnvName - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getCloudOrchestrationFiltersFromInfraActive(java.util.Map) - */ + /* + * (non-Javadoc) + * + * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom# + * getCloudOrchestrationFiltersFromInfraActive(java.util.Map) + */ @Override - public List<InfraActiveRequests> getCloudOrchestrationFiltersFromInfraActive (Map<String, String> orchestrationMap) { - List <Predicate> predicates = new LinkedList <> (); - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); - Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); - - // Add criteria on OperationalEnvironment RequestScope when requestorId is only specified in the filter - // as the same requestorId can also match on different API methods - String resourceType = orchestrationMap.get("resourceType"); - if(resourceType == null) { - predicates.add(cb.equal(tableRoot.get("requestScope"), "operationalEnvironment")); - } - - for (Map.Entry<String, String> entry : orchestrationMap.entrySet()) { - String mapKey = entry.getKey(); - if(mapKey.equalsIgnoreCase("requestorId")) { - mapKey = "requestorId"; - } else if(mapKey.equalsIgnoreCase("requestExecutionDate")) { - mapKey = "startTime"; - } else if(mapKey.equalsIgnoreCase("operationalEnvironmentId")) { - mapKey = "operationalEnvId"; - } else if(mapKey.equalsIgnoreCase("operationalEnvironmentName")) { - mapKey = "operationalEnvName"; - } else if(mapKey.equalsIgnoreCase("resourceType")) { - mapKey = "requestScope"; - } - - String propertyValue = entry.getValue(); - if (mapKey.equals("startTime")) { - SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); - try { - Date thisDate = format.parse(propertyValue); - Timestamp minTime = new Timestamp(thisDate.getTime()); - Timestamp maxTime = new Timestamp(thisDate.getTime() + TimeUnit.DAYS.toMillis(1)); - - predicates.add(cb.between(tableRoot.get(mapKey), minTime, maxTime)); - } - catch (Exception e){ - msoLogger.debug("Exception in getCloudOrchestrationFiltersFromInfraActive(): + " + e.getMessage()); - return null; - } - } else { - predicates.add(cb.equal(tableRoot.get(mapKey), propertyValue)); - } - } - - Order order = cb.asc(tableRoot.get(START_TIME)); - return executeInfraQuery (crit, predicates, order); + public List<InfraActiveRequests> getCloudOrchestrationFiltersFromInfraActive( + final Map<String, String> orchestrationMap) { + final List<Predicate> predicates = new LinkedList<>(); + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> tableRoot = crit.from(InfraActiveRequests.class); + + // Add criteria on OperationalEnvironment RequestScope when requestorId is only specified in + // the filter + // as the same requestorId can also match on different API methods + final String resourceType = orchestrationMap.get("resourceType"); + if (resourceType == null) { + predicates.add(cb.equal(tableRoot.get("requestScope"), "operationalEnvironment")); + } + + for (final Map.Entry<String, String> entry : orchestrationMap.entrySet()) { + String mapKey = entry.getKey(); + if (mapKey.equalsIgnoreCase("requestorId")) { + mapKey = "requestorId"; + } else if (mapKey.equalsIgnoreCase("requestExecutionDate")) { + mapKey = "startTime"; + } else if (mapKey.equalsIgnoreCase("operationalEnvironmentId")) { + mapKey = "operationalEnvId"; + } else if (mapKey.equalsIgnoreCase("operationalEnvironmentName")) { + mapKey = "operationalEnvName"; + } else if (mapKey.equalsIgnoreCase("resourceType")) { + mapKey = "requestScope"; + } + + final String propertyValue = entry.getValue(); + if (mapKey.equals("startTime")) { + final SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy"); + try { + final Date thisDate = format.parse(propertyValue); + final Timestamp minTime = new Timestamp(thisDate.getTime()); + final Timestamp maxTime = new Timestamp(thisDate.getTime() + TimeUnit.DAYS.toMillis(1)); + + predicates.add(cb.between(tableRoot.get(mapKey), minTime, maxTime)); + } catch (final Exception e) { + msoLogger.debug("Exception in getCloudOrchestrationFiltersFromInfraActive(): + " + e.getMessage()); + return null; + } + } else { + predicates.add(cb.equal(tableRoot.get(mapKey), propertyValue)); + } + } + + final Order order = cb.asc(tableRoot.get(START_TIME)); + return executeInfraQuery(crit, predicates, order); } - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestListFromInfraActive(java.lang.String, java.lang.String, java.lang.String) - */ + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestListFromInfraActive(java + * .lang.String, java.lang.String, java.lang.String) + */ @Override - public List <InfraActiveRequests> getRequestListFromInfraActive (String queryAttributeName, - String queryValue, - String requestType) { - msoLogger.debug ("Get list of infra requests from DB with " + queryAttributeName + " = " + queryValue); + public List<InfraActiveRequests> getRequestListFromInfraActive(final String queryAttributeName, + final String queryValue, final String requestType) { + msoLogger.debug("Get list of infra requests from DB with " + queryAttributeName + " = " + queryValue); + - try { - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); - Root<InfraActiveRequests> candidateRoot = crit.from(InfraActiveRequests.class); - Predicate isEqual = cb.equal(candidateRoot.get(queryAttributeName), queryValue); - Predicate equalRequestType = cb.equal(candidateRoot.get(REQUEST_TYPE), requestType); - Predicate isNull = cb.isNull(candidateRoot.get(REQUEST_TYPE)); - Predicate orClause = cb.or(equalRequestType, isNull); - Order orderDesc = cb.desc(candidateRoot.get(START_TIME)); - Order orderAsc = cb.asc(candidateRoot.get(SOURCE)); - crit.where(cb.and(isEqual, orClause)).orderBy(orderDesc, orderAsc); - - @SuppressWarnings("unchecked") - List <InfraActiveRequests> arList = entityManager.createQuery(crit).getResultList(); - if (arList != null && !arList.isEmpty ()) { + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> candidateRoot = crit.from(InfraActiveRequests.class); + final Predicate isEqual = cb.equal(candidateRoot.get(queryAttributeName), queryValue); + final Predicate equalRequestType = cb.equal(candidateRoot.get(REQUEST_TYPE), requestType); + final Predicate isNull = cb.isNull(candidateRoot.get(REQUEST_TYPE)); + final Predicate orClause = cb.or(equalRequestType, isNull); + final Order orderDesc = cb.desc(candidateRoot.get(START_TIME)); + final Order orderAsc = cb.asc(candidateRoot.get(SOURCE)); + crit.where(cb.and(isEqual, orClause)).orderBy(orderDesc, orderAsc); + + final List<InfraActiveRequests> arList = entityManager.createQuery(crit).getResultList(); + if (arList != null && !arList.isEmpty()) { return arList; } - } finally { - // msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "getRequestListFromInfraActive", null); + } catch (final Exception exception) { + msoLogger.error("Unable to execute query", exception); } - return null; + return Collections.emptyList(); } - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestFromInfraActive(java.lang.String, java.lang.String) - */ + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#getRequestFromInfraActive(java. + * lang.String, java.lang.String) + */ @Override - public InfraActiveRequests getRequestFromInfraActive (String requestId, String requestType) { - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Get infra request from DB with id " + requestId); + public InfraActiveRequests getRequestFromInfraActive(final String requestId, final String requestType) { + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Get infra request from DB with id " + requestId); InfraActiveRequests ar = null; try { - Query query = entityManager.createQuery ("from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType"); - query.setParameter (REQUEST_ID, requestId); - query.setParameter (REQUEST_TYPE, requestType); + final Query query = entityManager.createQuery( + "from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType"); + query.setParameter(REQUEST_ID, requestId); + query.setParameter(REQUEST_TYPE, requestType); ar = this.getSingleResult(query); } finally { - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "getRequestFromInfraActive", null); + msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, + "Successfully", "RequestDB", "getRequestFromInfraActive", null); } return ar; } - - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkDuplicateByVnfName(java.lang.String, java.lang.String, java.lang.String) - */ + + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkDuplicateByVnfName(java.lang. + * String, java.lang.String, java.lang.String) + */ @Override - public InfraActiveRequests checkDuplicateByVnfName (String vnfName, String action, String requestType) { + public InfraActiveRequests checkDuplicateByVnfName(final String vnfName, final String action, + final String requestType) { - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Get infra request from DB for VNF " + vnfName + " and action " + action + " and requestType " + requestType); + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Get infra request from DB for VNF " + vnfName + " and action " + action + " and requestType " + + requestType); InfraActiveRequests ar = null; try { - Query query = entityManager.createQuery ("from InfraActiveRequests where vnfName = :vnfName and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT' or requestStatus = 'PENDING_MANUAL_TASK') and requestType = :requestType ORDER BY startTime DESC"); - query.setParameter ("vnfName", vnfName); - query.setParameter ("action", action); - query.setParameter (REQUEST_TYPE, requestType); + final Query query = entityManager.createQuery( + "from InfraActiveRequests where vnfName = :vnfName and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT' or requestStatus = 'PENDING_MANUAL_TASK') and requestType = :requestType ORDER BY startTime DESC"); + query.setParameter("vnfName", vnfName); + query.setParameter("action", action); + query.setParameter(REQUEST_TYPE, requestType); @SuppressWarnings("unchecked") - List <InfraActiveRequests> results = query.getResultList(); - if (!results.isEmpty ()) { - ar = results.get (0); + final List<InfraActiveRequests> results = query.getResultList(); + if (!results.isEmpty()) { + ar = results.get(0); } } finally { - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "checkDuplicateByVnfName", null); + msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, + "Successfully", "RequestDB", "checkDuplicateByVnfName", null); } return ar; } - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkDuplicateByVnfId(java.lang.String, java.lang.String, java.lang.String) - */ + /* + * (non-Javadoc) + * + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkDuplicateByVnfId(java.lang. + * String, java.lang.String, java.lang.String) + */ @Override - public InfraActiveRequests checkDuplicateByVnfId (String vnfId, String action, String requestType) { + public InfraActiveRequests checkDuplicateByVnfId(final String vnfId, final String action, + final String requestType) { - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Get list of infra requests from DB for VNF " + vnfId + " and action " + action); + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Get list of infra requests from DB for VNF " + vnfId + " and action " + action); InfraActiveRequests ar = null; try { - Query query = entityManager.createQuery ("from InfraActiveRequests where vnfId = :vnfId and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT' or requestStatus = 'PENDING_MANUAL_TASK') and requestType = :requestType ORDER BY startTime DESC"); - query.setParameter ("vnfId", vnfId); - query.setParameter ("action", action); - query.setParameter (REQUEST_TYPE, requestType); + final Query query = entityManager.createQuery( + "from InfraActiveRequests where vnfId = :vnfId and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT' or requestStatus = 'PENDING_MANUAL_TASK') and requestType = :requestType ORDER BY startTime DESC"); + query.setParameter("vnfId", vnfId); + query.setParameter("action", action); + query.setParameter(REQUEST_TYPE, requestType); @SuppressWarnings("unchecked") - List <InfraActiveRequests> results = query.getResultList(); - if (!results.isEmpty ()) { - ar = results.get (0); + final List<InfraActiveRequests> results = query.getResultList(); + if (!results.isEmpty()) { + ar = results.get(0); } } finally { - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "checkDuplicateByVnfId", null); + msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, + "Successfully", "RequestDB", "checkDuplicateByVnfId", null); } return ar; } - - /** - * update service operation status when a operation resource status updated - * <br> + + /* + * (non-Javadoc) * - * @param operStatus the resource operation status - * @since ONAP Amsterdam Release + * @see + * org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkVnfIdStatus(java.lang.String) */ - private void updateOperationStatusBasedOnResourceStatus(ResourceOperationStatus operStatus) { - long startTime = System.currentTimeMillis(); - msoLogger.debug("Request database - query Resource Operation Status with service Id:" - + operStatus.getServiceId() + ", operationId:" + operStatus.getOperationId()); + @Override + public InfraActiveRequests checkVnfIdStatus(final String operationalEnvironmentId) { + final long startTime = System.currentTimeMillis(); + msoLogger.debug("Get Infra request from DB for OperationalEnvironmentId " + operationalEnvironmentId); + + InfraActiveRequests ar = null; try { - // query all resources of the service - String hql = "FROM ResourceOperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"; - Query query = entityManager.createQuery(hql); - query.setParameter("service_id", operStatus.getServiceId()); - query.setParameter("operation_id", operStatus.getOperationId()); - @SuppressWarnings("unchecked") - List<ResourceOperationStatus> lstResourceStatus = (List<ResourceOperationStatus>)query.getResultList(); - // count the total progress - int resourceCount = lstResourceStatus.size(); - int progress = 0; - boolean isFinished = true; - for(int i = 0; i < resourceCount; i++) { - progress = progress + Integer.valueOf(lstResourceStatus.get(i).getProgress()) / resourceCount; - if(RequestsDbConstant.Status.PROCESSING.equals(lstResourceStatus.get(i).getStatus())) { - isFinished = false; - } + final CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> candidateRoot = crit.from(InfraActiveRequests.class); + final Predicate operationalEnvEq = + cb.equal(candidateRoot.get("operationalEnvId"), operationalEnvironmentId); + final Predicate requestStatusNotEq = cb.notEqual(candidateRoot.get(REQUEST_STATUS), "COMPLETE"); + final Predicate actionEq = cb.equal(candidateRoot.get("action"), "create"); + final Order startTimeOrder = cb.desc(candidateRoot.get("startTime")); + crit.select(candidateRoot); + crit.where(cb.and(operationalEnvEq, requestStatusNotEq, actionEq)); + crit.orderBy(startTimeOrder); + final TypedQuery<InfraActiveRequests> query = entityManager.createQuery(crit); + final List<InfraActiveRequests> results = query.getResultList(); + if (!results.isEmpty()) { + ar = results.get(0); } - - OperationStatus serviceOperStatus = new OperationStatus(operStatus.getServiceId(), operStatus.getOperationId()); - serviceOperStatus = operationStatusRepository.findOne(Example.of(serviceOperStatus)); - progress = progress > 100 ? 100 : progress; - serviceOperStatus.setProgress(String.valueOf(progress)); - serviceOperStatus.setOperationContent(operStatus.getStatusDescription()); - // if current resource failed. service failed. - if(RequestsDbConstant.Status.ERROR.equals(operStatus.getStatus())) { - serviceOperStatus.setResult(RequestsDbConstant.Status.ERROR); - serviceOperStatus.setReason(operStatus.getStatusDescription()); - } else if(isFinished) { - // if finished - serviceOperStatus.setResult(RequestsDbConstant.Status.FINISHED); - serviceOperStatus.setProgress(RequestsDbConstant.Progress.ONE_HUNDRED); - } - operationStatusRepository.save(serviceOperStatus); } finally { msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, - "Successfully", "RequestDB", "updateResOperStatus", null); + "Successfully", "RequestDB", "checkDuplicateByVnfName", null); + } + + return ar; + } + + protected <T> T getSingleResult(final Query query) { + query.setMaxResults(1); + final List<T> list = query.getResultList(); + if (list == null || list.isEmpty()) { + return null; + } else if (list.size() == 1) { + return list.get(0); + } else { + throw new NonUniqueResultException(); + } + + } + + @Override + public List<InfraActiveRequests> getInfraActiveRequests(final Map<String, String[]> filters, final long startTime, + final long endTime, final Integer maxResult) { + if (filters == null) { + return Collections.emptyList(); + } + try { + final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); + final CriteriaQuery<InfraActiveRequests> criteriaQuery = + criteriaBuilder.createQuery(InfraActiveRequests.class); + final Root<InfraActiveRequests> tableRoot = criteriaQuery.from(InfraActiveRequests.class); + final List<Predicate> predicates = getPredicates(filters, criteriaBuilder, tableRoot); + + final Timestamp minTime = new Timestamp(startTime); + final Timestamp maxTime = new Timestamp(endTime); + predicates.add(criteriaBuilder.greaterThanOrEqualTo(tableRoot.get(START_TIME), minTime)); + predicates.add(criteriaBuilder.lessThanOrEqualTo(tableRoot.get(END_TIME), maxTime)); + + criteriaQuery.where(criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]))); + if (maxResult != null) { + return entityManager.createQuery(criteriaQuery).setMaxResults(maxResult).getResultList(); + } + return entityManager.createQuery(criteriaQuery).getResultList(); + } catch (final Exception exception) { + msoLogger.error("Unable to execute query using filters: " + filters, exception); + return Collections.emptyList(); } } - /* (non-Javadoc) - * @see org.onap.so.requestsdb.InfraActiveRequestsRepositoryCustom#checkVnfIdStatus(java.lang.String) - */ - @Override - public InfraActiveRequests checkVnfIdStatus(String operationalEnvironmentId) { - long startTime = System.currentTimeMillis (); - msoLogger.debug ("Get Infra request from DB for OperationalEnvironmentId " + operationalEnvironmentId); - - InfraActiveRequests ar = null; - try { - CriteriaBuilder cb = entityManager.getCriteriaBuilder(); - CriteriaQuery<InfraActiveRequests> crit = cb.createQuery(InfraActiveRequests.class); - Root<InfraActiveRequests> candidateRoot = crit.from(InfraActiveRequests.class); - Predicate operationalEnvEq = cb.equal(candidateRoot.get("operationalEnvId"), operationalEnvironmentId); - Predicate requestStatusNotEq = cb.notEqual(candidateRoot.get("requestStatus"), "COMPLETE"); - Predicate actionEq = cb.equal(candidateRoot.get("action"), "create"); - Order startTimeOrder = cb.desc(candidateRoot.get("startTime")); - crit.select(candidateRoot); - crit.where(cb.and(operationalEnvEq, requestStatusNotEq, actionEq)); - crit.orderBy(startTimeOrder); - TypedQuery<InfraActiveRequests> query = entityManager.createQuery(crit); - @SuppressWarnings("unchecked") - List <InfraActiveRequests> results = query.getResultList(); - if (!results.isEmpty ()) { - ar = results.get (0); - } - } finally { - msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "checkDuplicateByVnfName", null); - } - - return ar; - } - - protected <T> T getSingleResult(Query query) { - query.setMaxResults(1); - List<T> list = query.getResultList(); - if (list == null || list.isEmpty()) { - return null; - } else if (list.size() == 1) { - return list.get(0); - } else { - throw new NonUniqueResultException(); - } - - } + private List<Predicate> getPredicates(final Map<String, String[]> filters, final CriteriaBuilder criteriaBuilder, + final Root<InfraActiveRequests> tableRoot) { + final List<Predicate> predicates = new LinkedList<>(); + for (final Entry<String, String[]> entry : filters.entrySet()) { + final String[] params = entry.getValue(); + if (VALID_COLUMNS.contains(entry.getKey()) && params.length == 2) { + final QueryOperationType operationType = QueryOperationType.getQueryOperationType(params[0]); + final Predicate predicate = + operationType.getPredicate(criteriaBuilder, tableRoot, entry.getKey(), params[1]); + predicates.add(predicate); + } + } + return predicates; + } } diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/QueryOperationType.java b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/QueryOperationType.java new file mode 100644 index 0000000000..4aaa8d2cbe --- /dev/null +++ b/mso-api-handlers/mso-requests-db/src/main/java/org/onap/so/db/request/data/repository/QueryOperationType.java @@ -0,0 +1,69 @@ +/*- + * ============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.db.request.data.repository; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + +/** + * @author waqas.ikram@ericsson.com + */ +public enum QueryOperationType { + + EQ { + @Override + public <T> Predicate getPredicate(final CriteriaBuilder criteriaBuilder, final Root<T> tableRoot, + final String key, final String value) { + return criteriaBuilder.equal(tableRoot.get(key), value); + } + + }, + NEQ { + + @Override + public <T> Predicate getPredicate(final CriteriaBuilder criteriaBuilder, final Root<T> tableRoot, + final String key, final String value) { + return criteriaBuilder.notEqual(tableRoot.get(key), value); + } + + }, + LIKE { + + @Override + public <T> Predicate getPredicate(final CriteriaBuilder criteriaBuilder, final Root<T> tableRoot, + final String key, final String value) { + return criteriaBuilder.like(tableRoot.get(key), "%" + value + "%"); + } + }; + + public static QueryOperationType getQueryOperationType(final String type) { + for (final QueryOperationType queryOperationType : QueryOperationType.values()) { + if (queryOperationType.name().equalsIgnoreCase(type)) { + return queryOperationType; + } + } + return QueryOperationType.EQ; + } + + public abstract <T> Predicate getPredicate(final CriteriaBuilder criteriaBuilder, final Root<T> tableRoot, + final String key, final String value); + +} diff --git a/mso-api-handlers/mso-requests-db/src/test/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImplTest.java b/mso-api-handlers/mso-requests-db/src/test/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImplTest.java new file mode 100644 index 0000000000..d889a15fc4 --- /dev/null +++ b/mso-api-handlers/mso-requests-db/src/test/java/org/onap/so/db/request/data/repository/InfraActiveRequestsRepositoryImplTest.java @@ -0,0 +1,184 @@ +/*- + * ============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.db.request.data.repository; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; +import static org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl.ACTION; +import static org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl.REQUEST_ID; +import static org.onap.so.db.request.data.repository.InfraActiveRequestsRepositoryImpl.SERVICE_INSTANCE_ID; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.so.TestApplication; +import org.onap.so.db.request.beans.InfraActiveRequests; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@ActiveProfiles("test") +public class InfraActiveRequestsRepositoryImplTest { + + private static final int MAX_LIMIT = 1; + private static final long END_TIME_IN_MILISEC = 1482436800000l; + private static final long START_TIME_IN_MILISEC = 1482429600000l; + private static final String REQUEST_ID_VALUE = "00032ab7-3fb3-42e5-965d-8ea592502017"; + private static final String SERVICE_INSTANCE_ID_VALUE = "e3b5744d-2ad1-4cdd-8390-c999a38829bc"; + + @Autowired + private InfraActiveRequestsRepository objUnderTest; + + @Test + public void test_GetInfraActiveRequests_emptyFiltersMap() { + final List<InfraActiveRequests> actualRequests = objUnderTest.getInfraActiveRequests(Collections.emptyMap(), + START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, null); + assertFalse(actualRequests.isEmpty()); + } + + @Test + public void test_GetInfraActiveRequests_invalidFiltersMap() { + final Map<String, String[]> filters = new HashMap<>(); + filters.put("OverTheMoon", new String[] {"Humpty Dumpty Sat On The Wall"}); + final long startTime = START_TIME_IN_MILISEC - TimeUnit.DAYS.toMillis(20); + final long endTime = END_TIME_IN_MILISEC - TimeUnit.DAYS.toMillis(20); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(filters, startTime, endTime, null); + assertTrue(actualRequests.isEmpty()); + } + + @Test + public void test_GetInfraActiveRequests_invalidFiltersMapWithInvalidKey() { + final Map<String, String[]> filters = new HashMap<>(); + filters.put("OverTheMoon", new String[] {"Avengers", "Humpty Dumpty Sat On The Wall"}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(filters, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, null); + assertFalse(actualRequests.isEmpty()); + } + + @Test + public void test_GetInfraActiveRequestsData_withEqualServiceInstanceId() { + final Map<String, String[]> values = new HashMap<>(); + values.put(SERVICE_INSTANCE_ID, new String[] {QueryOperationType.EQ.name(), SERVICE_INSTANCE_ID_VALUE}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, 1); + assertFalse(actualRequests.isEmpty()); + + assertEquals(SERVICE_INSTANCE_ID_VALUE, actualRequests.get(0).getServiceInstanceId()); + } + + + @Test + public void test_GetInfraActiveRequestsData_withLikeRequestID() { + final Map<String, String[]> values = new HashMap<>(); + values.put(REQUEST_ID, new String[] {QueryOperationType.LIKE.name(), "00032ab7"}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, 1); + assertFalse(actualRequests.isEmpty()); + + assertEquals(REQUEST_ID_VALUE, actualRequests.get(0).getRequestId()); + assertEquals(SERVICE_INSTANCE_ID_VALUE, actualRequests.get(0).getServiceInstanceId()); + } + + + @Test + public void test_GetInfraActiveRequestsData_withLikeRequestIDAndEqualToServiceInstanceId() { + final Map<String, String[]> values = new HashMap<>(); + values.put(REQUEST_ID, new String[] {QueryOperationType.LIKE.name(), "00032ab7"}); + values.put(SERVICE_INSTANCE_ID, new String[] {QueryOperationType.EQ.name(), SERVICE_INSTANCE_ID_VALUE}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, 1); + assertFalse(actualRequests.isEmpty()); + + assertEquals(REQUEST_ID_VALUE, actualRequests.get(0).getRequestId()); + assertEquals(SERVICE_INSTANCE_ID_VALUE, actualRequests.get(0).getServiceInstanceId()); + } + + + @Test + public void test_GetInfraActiveRequestsData_withNotEqualAction() { + final Map<String, String[]> values = new HashMap<>(); + values.put(ACTION, new String[] {QueryOperationType.NEQ.name(), "createInstance"}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, null); + assertFalse(actualRequests.isEmpty()); + for (final InfraActiveRequests actualActiveRequests : actualRequests) { + assertNotEquals("createInstance", actualActiveRequests.getAction()); + } + } + + + @Test + public void test_GetInfraActiveRequestsData_withNotEqualToServiceInstanceNameAndServiceInstanceIdNul() { + final Map<String, String[]> values = new HashMap<>(); + values.put(ACTION, new String[] {QueryOperationType.NEQ.name(), "createInstance"}); + values.put(SERVICE_INSTANCE_ID, new String[] {QueryOperationType.EQ.name(), SERVICE_INSTANCE_ID_VALUE}); + + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, null); + assertFalse(actualRequests.isEmpty()); + for (final InfraActiveRequests actualActiveRequests : actualRequests) { + assertNotEquals("createInstance", actualActiveRequests.getAction()); + assertEquals(SERVICE_INSTANCE_ID_VALUE, actualActiveRequests.getServiceInstanceId()); + } + } + + @Test + public void test_GetInfraActiveRequestsData_withStartEndDateTimeNotEqualAction() { + final Map<String, String[]> values = new HashMap<>(); + values.put(ACTION, new String[] {QueryOperationType.NEQ.name(), "createInstance"}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, null); + assertFalse(actualRequests.isEmpty()); + for (final InfraActiveRequests actualActiveRequests : actualRequests) { + assertNotEquals("createInstance", actualActiveRequests.getAction()); + } + } + + @Test + public void test_GetInfraActiveRequestsData_withLimitNotEqualAction() { + final Map<String, String[]> values = new HashMap<>(); + values.put(ACTION, new String[] {QueryOperationType.NEQ.name(), "createInstance"}); + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(values, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, MAX_LIMIT); + assertFalse(actualRequests.isEmpty()); + for (final InfraActiveRequests actualActiveRequests : actualRequests) { + assertNotEquals("createInstance", actualActiveRequests.getAction()); + } + } + + @Test + public void test_GetInfraActiveRequestsData_withNullFilters() { + final List<InfraActiveRequests> actualRequests = + objUnderTest.getInfraActiveRequests(null, START_TIME_IN_MILISEC, END_TIME_IN_MILISEC, MAX_LIMIT); + assertTrue(actualRequests.isEmpty()); + } +} @@ -30,6 +30,7 @@ <module>bpmn</module> <module>cloudify-client</module> <module>cxf-logging</module> + <module>so-monitoring</module> <module>packages</module> </modules> <properties> diff --git a/so-monitoring/pom.xml b/so-monitoring/pom.xml new file mode 100644 index 0000000000..cf1f481b96 --- /dev/null +++ b/so-monitoring/pom.xml @@ -0,0 +1,65 @@ +<!-- + ============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========================================================= +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.so</groupId> + <artifactId>so</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + + <groupId>org.onap.so.monitoring</groupId> + <artifactId>so-monitoring</artifactId> + + <packaging>pom</packaging> + <name>${project.artifactId}</name> + + <properties> + <java.version>1.8</java.version> + <version.java.compiler>1.8</version.java.compiler> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>${version.java.compiler}</source> + <target>${version.java.compiler}</target> + </configuration> + </plugin> + </plugins> + </build> + + <modules> + <module>so-monitoring-handler</module> + <module>so-monitoring-service</module> + </modules> +</project>
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-handler/pom.xml b/so-monitoring/so-monitoring-handler/pom.xml new file mode 100644 index 0000000000..a535d408f7 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/pom.xml @@ -0,0 +1,95 @@ +<!-- + ============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========================================================= +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.so.monitoring</groupId> + <artifactId>so-monitoring</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + <artifactId>so-monitoring-handler</artifactId> + <name>${project.artifactId}</name> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <java.version>1.8</java.version> + <guava.version>22.0</guava.version> + <openpojo.version>0.8.6</openpojo.version> + </properties> + + + <dependencies> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + <version>${guava.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + <exclusions> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-jdbc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-ext</artifactId> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpcore</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>nl.jqno.equalsverifier</groupId> + <artifactId>equalsverifier</artifactId> + <version>2.5.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.onap.so</groupId> + <artifactId>common</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project>
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ActivityInstance.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ActivityInstance.java new file mode 100644 index 0000000000..10ca6c9ac3 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ActivityInstance.java @@ -0,0 +1,188 @@ +/*- + * ============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.montoring.camunda.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessDefinition.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessDefinition.java new file mode 100644 index 0000000000..ccddf0cd95 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessDefinition.java @@ -0,0 +1,88 @@ +/*- + * ============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.montoring.camunda.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstance.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstance.java new file mode 100644 index 0000000000..faea7b3bf9 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstance.java @@ -0,0 +1,129 @@ +/*- + * ============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.montoring.camunda.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstanceVariable.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstanceVariable.java new file mode 100644 index 0000000000..14a01b96bb --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/ProcessInstanceVariable.java @@ -0,0 +1,106 @@ +/*- + * ============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.montoring.camunda.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/SoActiveInfraRequests.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/SoActiveInfraRequests.java new file mode 100644 index 0000000000..b17cad23b5 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/camunda/model/SoActiveInfraRequests.java @@ -0,0 +1,196 @@ +/*- + * ============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.montoring.camunda.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/camunda/CamundaConfiguration.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/camunda/CamundaConfiguration.java new file mode 100644 index 0000000000..2540eda04b --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/camunda/CamundaRestUrlProvider.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/camunda/CamundaRestUrlProvider.java new file mode 100644 index 0000000000..9a509f037b --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/camunda/CamundaRestUrlProvider.java @@ -0,0 +1,106 @@ +/*- + * ============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.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/database/DatabaseConfiguration.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/database/DatabaseConfiguration.java new file mode 100644 index 0000000000..3d2b529d9a --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/database/DatabaseUrlProvider.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/database/DatabaseUrlProvider.java new file mode 100644 index 0000000000..8235b9272b --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/database/DatabaseUrlProvider.java @@ -0,0 +1,48 @@ +/*- + * ============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.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/BasicAuthorizationHttpRequestInterceptor.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/BasicAuthorizationHttpRequestInterceptor.java new file mode 100644 index 0000000000..0db1e51ce2 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/BasicAuthorizationHttpRequestInterceptor.java @@ -0,0 +1,49 @@ +/*- + * ============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.montoring.configuration.rest; + +import java.io.IOException; + +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpRequest; +import org.springframework.http.client.ClientHttpRequestExecution; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.ClientHttpResponse; + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class BasicAuthorizationHttpRequestInterceptor implements ClientHttpRequestInterceptor { + + private final String authorization; + + public BasicAuthorizationHttpRequestInterceptor(final String authorization) { + this.authorization = authorization; + } + + @Override + public ClientHttpResponse intercept(final HttpRequest request, final byte[] body, + final ClientHttpRequestExecution execution) throws IOException { + final HttpHeaders headers = request.getHeaders(); + headers.add("Authorization", authorization); + return execution.execute(request, body); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpClientConnectionConfiguration.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpClientConnectionConfiguration.java new file mode 100644 index 0000000000..a465b53c71 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpClientConnectionConfiguration.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.montoring.configuration.rest; + +import java.util.concurrent.TimeUnit; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +@Service +public class HttpClientConnectionConfiguration { + + @Value(value = "${rest.http.client.configuration.connTimeOutInSec:10}") + private int connectionTimeOutInSeconds; + + @Value(value = "${rest.http.client.configuration.socketTimeOutInSec:180}") + private int socketTimeOutInSeconds; + + @Value(value = "${rest.http.client.configuration.socketTimeOutInSec:600}") + private int timeToLiveInSeconds; + + @Value(value = "${rest.http.client.configuration.maxConnections:10}") + private int maxConnections; + + @Value(value = "${rest.http.client.configuration.maxConnectionsPerRoute:2}") + private int maxConnectionsPerRoute; + + /** + * @return the socketTimeOut + */ + public int getSocketTimeOutInMiliSeconds() { + return (int) TimeUnit.SECONDS.toMillis(socketTimeOutInSeconds); + } + + /** + * @return the maxConnections + */ + public int getMaxConnections() { + return maxConnections; + } + + /** + * @return the maxConnectionsPerRoute + */ + public int getMaxConnectionsPerRoute() { + return maxConnectionsPerRoute; + } + + /** + * @return the connectionTimeOut + */ + public int getConnectionTimeOutInMilliSeconds() { + return (int) TimeUnit.SECONDS.toMillis(connectionTimeOutInSeconds); + } + + /** + * @return the timeToLive + */ + public int getTimeToLiveInMins() { + return (int) TimeUnit.SECONDS.toMinutes(timeToLiveInSeconds); + } + + @Override + public String toString() { + return "HttpClientConnectionConfiguration [connectionTimeOutInSeconds=" + connectionTimeOutInSeconds + + ", socketTimeOutInSeconds=" + socketTimeOutInSeconds + ", timeToLiveInSeconds=" + timeToLiveInSeconds + + ", maxConnections=" + maxConnections + ", maxConnectionsPerRoute=" + maxConnectionsPerRoute + "]"; + } + +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpServiceProviderConfiguration.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpServiceProviderConfiguration.java new file mode 100644 index 0000000000..31cd12bebc --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/HttpServiceProviderConfiguration.java @@ -0,0 +1,73 @@ +/*- + * ============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.montoring.configuration.rest; + +import static org.onap.so.montoring.configuration.rest.RestTemplateConfigration.CAMUNDA_REST_TEMPLATE; +import static org.onap.so.montoring.configuration.rest.RestTemplateConfigration.DATABASE_REST_TEMPLATE; + +import org.onap.so.montoring.rest.service.HttpRestServiceProvider; +import org.onap.so.montoring.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.http.client.ClientHttpRequestInterceptor; +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(CAMUNDA_REST_TEMPLATE) @Autowired final RestTemplate restTemplate, + @Value(value = "${camunda.rest.api.auth:#{null}}") final String authorization) { + return getHttpRestServiceProvider(restTemplate, authorization); + } + + @Bean + @Qualifier(DATABASE_HTTP_REST_SERVICE_PROVIDER) + public HttpRestServiceProvider databaseHttpRestServiceProvider( + @Qualifier(DATABASE_REST_TEMPLATE) @Autowired final RestTemplate restTemplate, + @Value(value = "${mso.database.rest.api.auth:#{null}}") final String authorization) { + + return getHttpRestServiceProvider(restTemplate, authorization); + } + + private HttpRestServiceProvider getHttpRestServiceProvider(final RestTemplate restTemplate, + final String authorization) { + if (authorization != null && !authorization.isEmpty()) { + final ClientHttpRequestInterceptor authorizationInterceptor = + new BasicAuthorizationHttpRequestInterceptor(authorization); + restTemplate.getInterceptors().add(authorizationInterceptor); + } + return new HttpRestServiceProviderImpl(restTemplate); + } + + +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/RestTemplateConfigration.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/RestTemplateConfigration.java new file mode 100644 index 0000000000..914e5d676e --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/configuration/rest/RestTemplateConfigration.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.montoring.configuration.rest; + +import java.util.concurrent.TimeUnit; + +import org.apache.http.client.config.RequestConfig; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +/** + * @author waqas.ikram@ericsson.com + */ +@Configuration +public class RestTemplateConfigration { + + public static final String DATABASE_REST_TEMPLATE = "databaseRestTemplate"; + + public static final String CAMUNDA_REST_TEMPLATE = "camundaRestTemplate"; + + @Autowired + private HttpClientConnectionConfiguration clientConnectionConfiguration; + + @Bean + @Qualifier(CAMUNDA_REST_TEMPLATE) + public RestTemplate camundaRestTemplate() { + return new RestTemplate(httpComponentsClientHttpRequestFactory()); + } + + @Bean + @Qualifier(DATABASE_REST_TEMPLATE) + public RestTemplate dataBasecamundaRestTemplate() { + return new RestTemplate(httpComponentsClientHttpRequestFactory()); + } + + @Bean + public HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory() { + return new HttpComponentsClientHttpRequestFactory(httpClient()); + } + + @Bean + public CloseableHttpClient httpClient() { + return HttpClientBuilder.create().setConnectionManager(poolingHttpClientConnectionManager()) + .setMaxConnPerRoute(clientConnectionConfiguration.getMaxConnectionsPerRoute()) + .setMaxConnTotal(clientConnectionConfiguration.getMaxConnections()) + .setDefaultRequestConfig(requestConfig()).build(); + } + + @Bean + public PoolingHttpClientConnectionManager poolingHttpClientConnectionManager() { + return new PoolingHttpClientConnectionManager(clientConnectionConfiguration.getTimeToLiveInMins(), + TimeUnit.MINUTES); + } + + @Bean + public RequestConfig requestConfig() { + return RequestConfig.custom().setSocketTimeout(clientConnectionConfiguration.getSocketTimeOutInMiliSeconds()) + .setConnectTimeout(clientConnectionConfiguration.getConnectionTimeOutInMilliSeconds()).build(); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProvider.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProvider.java new file mode 100644 index 0000000000..b8481803e2 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProvider.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.montoring.db.service; + +import java.util.List; +import java.util.Map; + +import org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProviderImpl.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProviderImpl.java new file mode 100644 index 0000000000..f6cbc3c297 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/db/service/DatabaseServiceProviderImpl.java @@ -0,0 +1,89 @@ +/*- + * ============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.montoring.db.service; + +import static org.onap.so.montoring.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.montoring.camunda.model.SoActiveInfraRequests; +import org.onap.so.montoring.configuration.database.DatabaseUrlProvider; +import org.onap.so.montoring.model.SoInfraRequest; +import org.onap.so.montoring.model.SoInfraRequestBuilder; +import org.onap.so.montoring.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.postHttpRequest(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()) + .setServiceIstanceName(activeRequests.getServiceInstanceName()) + .setServiceType(activeRequests.getServiceType()).setStartTime(activeRequests.getStartTime()) + .build(); + result.add(soInfraRequest); + + } + return result; + } + + +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/InvalidRestRequestException.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/InvalidRestRequestException.java new file mode 100644 index 0000000000..8e4c751c8e --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/InvalidRestRequestException.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.montoring.exception; + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class InvalidRestRequestException extends RuntimeException { + private static final long serialVersionUID = -1158414939006977465L; + + public InvalidRestRequestException(final String message) { + super(message); + } + + public InvalidRestRequestException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/RestProcessingException.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/RestProcessingException.java new file mode 100644 index 0000000000..2d3544ed66 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/exception/RestProcessingException.java @@ -0,0 +1,37 @@ +/*- + * ============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.montoring.exception; + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class RestProcessingException extends RuntimeException { + + private static final long serialVersionUID = 16862313537198441L; + + public RestProcessingException(final String message) { + super(message); + } + + public RestProcessingException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ActivityInstanceDetail.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ActivityInstanceDetail.java new file mode 100644 index 0000000000..5691f23622 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessDefinitionDetail.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessDefinitionDetail.java new file mode 100644 index 0000000000..164a3921c0 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceDetail.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceDetail.java new file mode 100644 index 0000000000..a96b6c3a0f --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceIdDetail.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceIdDetail.java new file mode 100644 index 0000000000..b0bb7acc75 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import static org.onap.so.montoring.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 processInstancId + */ + 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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceVariableDetail.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/ProcessInstanceVariableDetail.java new file mode 100644 index 0000000000..9674dfea4d --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +/** + * @author waqas.ikram@ericsson.com + */ +import static org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/SoInfraRequest.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/SoInfraRequest.java new file mode 100644 index 0000000000..ca392496eb --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import static org.onap.so.montoring.utils.ObjectEqualsUtils.isEqual; + +/** + * @author waqas.ikram@ericsson.com + */ +public class SoInfraRequest { + + private final String requestId; + private final String serviceInstanceId; + private final String serviceIstanceName; + 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.serviceIstanceName = requestBuilder.getServiceIstanceName(); + 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 serviceIstanceName + */ + public String getServiceIstanceName() { + return serviceIstanceName; + } + + /** + * @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 + ((serviceIstanceName == null) ? 0 : serviceIstanceName.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(serviceIstanceName, other.serviceIstanceName) && 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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/SoInfraRequestBuilder.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/model/SoInfraRequestBuilder.java new file mode 100644 index 0000000000..3b996f758e --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.model; + +import java.sql.Timestamp; + +/** + * @author waqas.ikram@ericsson.com + */ +public class SoInfraRequestBuilder { + + private String requestId; + private String serviceInstanceId; + private String serviceIstanceName; + 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 setServiceIstanceName(final String serviceIstanceName) { + this.serviceIstanceName = serviceIstanceName; + 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 serviceIstanceName + */ + public String getServiceIstanceName() { + return serviceIstanceName; + } + + /** + * @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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProvider.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProvider.java new file mode 100644 index 0000000000..81e30f1176 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProvider.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.montoring.rest.service; + +import java.util.List; + +import org.onap.so.montoring.model.ActivityInstanceDetail; +import org.onap.so.montoring.model.ProcessDefinitionDetail; +import org.onap.so.montoring.model.ProcessInstanceDetail; +import org.onap.so.montoring.model.ProcessInstanceIdDetail; +import org.onap.so.montoring.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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderImpl.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderImpl.java new file mode 100644 index 0000000000..b1815b5350 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderImpl.java @@ -0,0 +1,174 @@ +/*- + * ============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.montoring.rest.service; + +import static org.onap.so.montoring.configuration.rest.HttpServiceProviderConfiguration.CAMUNDA_HTTP_REST_SERVICE_PROVIDER; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.onap.so.montoring.camunda.model.ActivityInstance; +import org.onap.so.montoring.camunda.model.ProcessDefinition; +import org.onap.so.montoring.camunda.model.ProcessInstance; +import org.onap.so.montoring.camunda.model.ProcessInstanceVariable; +import org.onap.so.montoring.configuration.camunda.CamundaRestUrlProvider; +import org.onap.so.montoring.model.ActivityInstanceDetail; +import org.onap.so.montoring.model.ProcessDefinitionDetail; +import org.onap.so.montoring.model.ProcessInstanceDetail; +import org.onap.so.montoring.model.ProcessInstanceIdDetail; +import org.onap.so.montoring.model.ProcessInstanceVariableDetail; +import org.slf4j.ext.XLogger; +import org.slf4j.ext.XLoggerFactory; +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 XLogger LOGGER = XLoggerFactory.getXLogger(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.getHttpResponse(url, ProcessInstance[].class); + + if (processInstances.isPresent()) { + final ProcessInstance[] instances = processInstances.get(); + LOGGER.debug("found process instance for request id: {}, result size: {}", requestId, instances.length); + + 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.getHttpResponse(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.getHttpResponse(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.getHttpResponse(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.getHttpResponse(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-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProvider.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProvider.java new file mode 100644 index 0000000000..eb80ddcd78 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProvider.java @@ -0,0 +1,33 @@ +/*- + * ============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.montoring.rest.service; + +import com.google.common.base.Optional; + +/** + * @author waqas.ikram@ericsson.com + */ +public interface HttpRestServiceProvider { + + public <T> Optional<T> getHttpResponse(final String url, final Class<T> clazz); + + public <T> Optional<T> postHttpRequest(final Object object, final String url, final Class<T> clazz); + +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProviderImpl.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProviderImpl.java new file mode 100644 index 0000000000..35e6038a86 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/rest/service/HttpRestServiceProviderImpl.java @@ -0,0 +1,113 @@ +/*- + * ============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.montoring.rest.service; + +import org.onap.so.montoring.exception.InvalidRestRequestException; +import org.onap.so.montoring.exception.RestProcessingException; +import org.slf4j.ext.XLogger; +import org.slf4j.ext.XLoggerFactory; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import com.google.common.base.Optional; + +/** + * @author waqas.ikram@ericsson.com + */ +public class HttpRestServiceProviderImpl implements HttpRestServiceProvider { + + private static final XLogger LOGGER = XLoggerFactory.getXLogger(HttpRestServiceProviderImpl.class); + + private final RestTemplate restTemplate; + + public HttpRestServiceProviderImpl(final RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @Override + public <T> Optional<T> getHttpResponse(final String url, final Class<T> clazz) { + LOGGER.trace("Will invoke HTTP GET using URL: {}", url); + try { + final ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.GET, null, clazz); + if (!response.getStatusCode().equals(HttpStatus.OK)) { + LOGGER.error("Unable to invoke HTTP GET using URL: {}, Response Code: {}", url, + response.getStatusCode()); + return Optional.absent(); + } + + if (response.hasBody()) { + return Optional.of(response.getBody()); + } + } catch (final HttpClientErrorException httpClientErrorException) { + LOGGER.error("Unable to invoke HTTP GET using url: {}, Response: {}", url, + httpClientErrorException.getRawStatusCode(), httpClientErrorException); + final int rawStatusCode = httpClientErrorException.getRawStatusCode(); + if (rawStatusCode == HttpStatus.BAD_REQUEST.value() || rawStatusCode == HttpStatus.NOT_FOUND.value()) { + throw new InvalidRestRequestException("No result found for given url: " + url); + } + throw new RestProcessingException("Unable to invoke HTTP GET using URL: " + url); + + } catch (final RestClientException restClientException) { + LOGGER.error("Unable to invoke HTTP GET using url: {}", url, restClientException); + throw new RestProcessingException("Unable to invoke HTTP GET using URL: " + url, restClientException); + } + + return Optional.absent(); + } + + @Override + public <T> Optional<T> postHttpRequest(final Object object, final String url, final Class<T> clazz) { + try { + final HttpEntity<?> request = new HttpEntity<>(object); + final ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.POST, request, clazz); + if (!response.getStatusCode().equals(HttpStatus.OK)) { + LOGGER.error("Unable to invoke HTTP GET using URL: {}, Response Code: {}", url, + response.getStatusCode()); + return Optional.absent(); + } + + if (response.hasBody()) { + return Optional.of(response.getBody()); + } + + } catch (final HttpClientErrorException httpClientErrorException) { + LOGGER.error("Unable to invoke HTTP POST using url: {}, Response: {}", url, + httpClientErrorException.getRawStatusCode(), httpClientErrorException); + final int rawStatusCode = httpClientErrorException.getRawStatusCode(); + if (rawStatusCode == HttpStatus.BAD_REQUEST.value() || rawStatusCode == HttpStatus.NOT_FOUND.value()) { + throw new InvalidRestRequestException("No result found for given url: " + url); + } + throw new RestProcessingException("Unable to invoke HTTP POST using URL: " + url); + + } catch (final RestClientException restClientException) { + LOGGER.error("Unable to invoke HTTP POST using url: {}", url, restClientException); + throw new RestProcessingException("Unable to invoke HTTP POST using URL: " + url, restClientException); + } + + return Optional.absent(); + } + + +} diff --git a/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/utils/ObjectEqualsUtils.java b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/utils/ObjectEqualsUtils.java new file mode 100644 index 0000000000..496ad26bea --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/main/java/org/onap/so/montoring/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.montoring.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); + } + +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaConfigurationTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaConfigurationTest.java new file mode 100644 index 0000000000..de891dd01b --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaConfigurationTest.java @@ -0,0 +1,44 @@ +/*- + * ============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.montoring.configuration; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.so.montoring.configuration.camunda.CamundaConfiguration; +import org.onap.so.montoring.configuration.camunda.CamundaRestUrlProvider; + + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class CamundaConfigurationTest { + + @Test + public void test_CamundaRestURIConfiguration_ValidUrl() { + final CamundaConfiguration objUnderTest = new CamundaConfiguration(); + final CamundaRestUrlProvider provider = objUnderTest.camundaRestUrlProvider("http://localhost:8080", "default"); + assertEquals( + "http://localhost:8080/default/history/activity-instance?processInstanceId=Deadpool&sortBy=startTime&sortOrder=asc", + provider.getActivityInstanceUrl("Deadpool")); + } + +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaRestUrlProviderTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaRestUrlProviderTest.java new file mode 100644 index 0000000000..5fa9b447e6 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/CamundaRestUrlProviderTest.java @@ -0,0 +1,80 @@ +/*- + * ============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.montoring.configuration; + +import static org.junit.Assert.assertEquals; + +import java.util.UUID; + +import org.junit.Test; +import org.onap.so.montoring.configuration.camunda.CamundaRestUrlProvider; + +/** + * @author waqas.ikram@ericsson.com + */ +public class CamundaRestUrlProviderTest { + private static final String DEFAULT = "default"; + private static final String CAMUNDA_REST_API_URL = "http://localhost:9080/engine-rest/engine/"; + private static final String BASE_URL = CAMUNDA_REST_API_URL + DEFAULT; + private final CamundaRestUrlProvider objUnderTest = new CamundaRestUrlProvider(CAMUNDA_REST_API_URL, DEFAULT); + private static final String ID = UUID.randomUUID().toString(); + + + @Test + public void test_GetHistoryProcessInstanceUrl() { + final String expectedUrl = BASE_URL + "/history/process-instance?variables=requestId_eq_" + ID; + final String actualUrl = objUnderTest.getHistoryProcessInstanceUrl(ID); + assertEquals(expectedUrl, actualUrl); + } + + @Test + public void test_GetProcessInstanceUrl() { + final String expectedUrl = BASE_URL + "/history/process-instance/" + ID; + final String actualUrl = objUnderTest.getSingleProcessInstanceUrl(ID); + assertEquals(expectedUrl, actualUrl); + } + + + @Test + public void test_GetProcessDefinitionUrl() { + final String expectedUrl = BASE_URL + "/process-definition/" + ID + "/xml"; + final String actualUrl = objUnderTest.getProcessDefinitionUrl(ID); + assertEquals(expectedUrl, actualUrl); + + } + + @Test + public void test_GetActivityIntanceUrl() { + final String expectedUrl = + BASE_URL + "/history/activity-instance?processInstanceId=" + ID + "&sortBy=startTime&sortOrder=asc"; + final String actualUrl = objUnderTest.getActivityInstanceUrl(ID); + assertEquals(expectedUrl, actualUrl); + + } + + @Test + public void test_GetProcessInstanceVariablesUrl() { + final String expectedUrl = BASE_URL + "/history/variable-instance?processInstanceId=" + ID; + final String actualUrl = objUnderTest.getProcessInstanceVariablesUrl(ID); + assertEquals(expectedUrl, actualUrl); + + } + +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/HttpServiceProviderConfigurationTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/HttpServiceProviderConfigurationTest.java new file mode 100644 index 0000000000..13a2f98d57 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/HttpServiceProviderConfigurationTest.java @@ -0,0 +1,70 @@ +/*- + * ============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.montoring.configuration; + +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.onap.so.montoring.configuration.rest.HttpServiceProviderConfiguration; +import org.onap.so.montoring.rest.service.HttpRestServiceProvider; +import org.springframework.web.client.RestTemplate; + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class HttpServiceProviderConfigurationTest { + + private final HttpServiceProviderConfiguration objUnderTest = new HttpServiceProviderConfiguration(); + private static final String AUTHORIZATION = + "Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="; + + @Test + public void test_CamundaHttpRestServiceProvider_NotNull() { + + final HttpRestServiceProvider serviceProvider = + objUnderTest.camundaHttpRestServiceProvider(new RestTemplate(), AUTHORIZATION); + + assertNotNull(serviceProvider); + } + + @Test + public void test_DatabaseHttpRestServiceProvider_NotNull() { + + final HttpRestServiceProvider serviceProvider = + objUnderTest.databaseHttpRestServiceProvider(new RestTemplate(), AUTHORIZATION); + + assertNotNull(serviceProvider); + } + + @Test + public void test_DatabaseHttpRestServiceProviderWithAuthorizationNullOrEmpty_NotNull() { + + HttpRestServiceProvider serviceProvider = + objUnderTest.databaseHttpRestServiceProvider(new RestTemplate(), null); + + assertNotNull(serviceProvider); + + serviceProvider = objUnderTest.databaseHttpRestServiceProvider(new RestTemplate(), ""); + + assertNotNull(serviceProvider); + } + +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/PojoClassesTests.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/PojoClassesTests.java new file mode 100644 index 0000000000..93dfa79990 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/PojoClassesTests.java @@ -0,0 +1,82 @@ +/*- + * ============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.montoring.configuration; + +import static org.junit.Assert.assertFalse; + +import java.util.Set; +import java.util.regex.Pattern; + +import org.junit.Test; +import org.onap.so.openpojo.rules.ToStringTester; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.type.filter.RegexPatternTypeFilter; + +import com.openpojo.reflection.filters.FilterPackageInfo; +import com.openpojo.validation.Validator; +import com.openpojo.validation.ValidatorBuilder; +import com.openpojo.validation.test.impl.GetterTester; +import com.openpojo.validation.test.impl.SetterTester; + +import nl.jqno.equalsverifier.EqualsVerifier; +import nl.jqno.equalsverifier.Warning; + +/** + * @author waqas.ikram@ericsson.com + */ +public class PojoClassesTests { + + @Test + public void test_camunda_module_pojo_classes() throws ClassNotFoundException { + test("org.onap.so.montoring.camunda.model"); + assertEqualMethod("org.onap.so.montoring.camunda.model"); + } + + @Test + public void test_so_monitoring_pojo_classes() throws ClassNotFoundException { + test("org.onap.so.montoring.model"); + assertEqualMethod("org.onap.so.montoring.model"); + } + + public void assertEqualMethod(final String pojoPackage) throws ClassNotFoundException { + final Set<BeanDefinition> classes = getBeanDefinition(pojoPackage); + assertFalse(classes.isEmpty()); + for (final BeanDefinition bean : classes) { + final Class<?> clazz = Class.forName(bean.getBeanClassName()); + if (!clazz.getName().endsWith("Builder")) { + EqualsVerifier.forClass(clazz).suppress(Warning.STRICT_INHERITANCE, Warning.NONFINAL_FIELDS).verify(); + } + } + } + + private Set<BeanDefinition> getBeanDefinition(final String pojoPackage) { + final ClassPathScanningCandidateComponentProvider provider = + new ClassPathScanningCandidateComponentProvider(false); + provider.addIncludeFilter(new RegexPatternTypeFilter(Pattern.compile(pojoPackage + ".*"))); + return provider.findCandidateComponents(pojoPackage); + } + + private void test(final String pojoPackage) { + final Validator validator = ValidatorBuilder.create().with(new SetterTester()).with(new GetterTester()) + .with(new ToStringTester()).build(); + validator.validate(pojoPackage, new FilterPackageInfo()); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/database/DatabaseUrlProviderTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/database/DatabaseUrlProviderTest.java new file mode 100644 index 0000000000..d9d260992d --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/configuration/database/DatabaseUrlProviderTest.java @@ -0,0 +1,52 @@ +/*- + * ============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.montoring.configuration.database; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + + +/** + * @author waqas.ikram@ericsson.com + */ +public class DatabaseUrlProviderTest { + + private static final int MAX_RESULT = 1; + private static final String URL = "http://localhost:8081/infraActiveRequests/"; + private final DatabaseUrlProvider objUnderTest = new DatabaseUrlProvider(URL); + + @Test + public void test_maxResultNull() { + final long from = System.currentTimeMillis(); + final long to = System.currentTimeMillis(); + final String actualUrl = objUnderTest.getSearchUrl(from, to, null); + assertEquals(URL + "v1/getInfraActiveRequests?from=" + from + "&to=" + to, actualUrl); + } + + @Test + public void test_maxResultNotNull() { + final long from = System.currentTimeMillis(); + final long to = System.currentTimeMillis(); + final String actualUrl = objUnderTest.getSearchUrl(from, to, MAX_RESULT); + assertEquals(URL + "v1/getInfraActiveRequests?from=" + from + "&to=" + to + "&maxResult=" + MAX_RESULT, + actualUrl); + } +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/db/api/DatabaseServiceProviderTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/db/api/DatabaseServiceProviderTest.java new file mode 100644 index 0000000000..3bb7b289e4 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/db/api/DatabaseServiceProviderTest.java @@ -0,0 +1,108 @@ +/*- + * ============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.montoring.db.api; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.junit.Test; +import org.onap.so.montoring.camunda.model.SoActiveInfraRequests; +import org.onap.so.montoring.configuration.database.DatabaseUrlProvider; +import org.onap.so.montoring.db.service.DatabaseServiceProvider; +import org.onap.so.montoring.db.service.DatabaseServiceProviderImpl; +import org.onap.so.montoring.model.SoInfraRequest; +import org.onap.so.montoring.rest.service.HttpRestServiceProvider; + +import com.google.common.base.Optional; + + +/** + * @author waqas.ikram@ericsson.com + */ +public class DatabaseServiceProviderTest { + + private final static DatabaseUrlProvider URL_PROVIDER = + new DatabaseUrlProvider("http://localhost:8081/infraActiveRequests/"); + + @Test + public void test_GetSoInfraRequest_WithEmptyFilters_EmptyList() { + final HttpRestServiceProvider mockServiceProvider = mock(HttpRestServiceProvider.class); + final String searchUrl = URL_PROVIDER.getSearchUrl(0, 0, null); + final Optional<SoActiveInfraRequests[]> response = Optional.of(new SoActiveInfraRequests[] {}); + + when(mockServiceProvider.postHttpRequest(eq(Collections.emptyMap()), eq(searchUrl), + eq(SoActiveInfraRequests[].class))).thenReturn(response); + + final DatabaseServiceProvider objUnderTest = new DatabaseServiceProviderImpl(URL_PROVIDER, mockServiceProvider); + + assertTrue(objUnderTest.getSoInfraRequest(Collections.emptyMap(), 0, 0, null).isEmpty()); + } + + @Test + public void test_GetSoInfraRequest_OptionalAbsent_EmptyList() { + final HttpRestServiceProvider mockServiceProvider = mock(HttpRestServiceProvider.class); + final String searchUrl = URL_PROVIDER.getSearchUrl(0, 0, null); + final Optional<SoActiveInfraRequests[]> response = Optional.absent(); + + when(mockServiceProvider.postHttpRequest(eq(Collections.emptyMap()), eq(searchUrl), + eq(SoActiveInfraRequests[].class))).thenReturn(response); + + final DatabaseServiceProvider objUnderTest = new DatabaseServiceProviderImpl(URL_PROVIDER, mockServiceProvider); + + assertTrue(objUnderTest.getSoInfraRequest(Collections.emptyMap(), 0, 0, null).isEmpty()); + } + + + @Test + public void test_GetSoInfraRequest_WithFilters_InfraActiveRequestsList() { + final String searchUrl = URL_PROVIDER.getSearchUrl(0, 0, null); + final String requestID = UUID.randomUUID().toString(); + final Map<String, String[]> filters = new HashMap<>(); + filters.put("requestId", new String[] {"EQ", requestID}); + + SoActiveInfraRequests soActiveInfraRequests = new SoActiveInfraRequests(); + soActiveInfraRequests.setRequestId(requestID); + + final Optional<SoActiveInfraRequests[]> response = + Optional.of(new SoActiveInfraRequests[] {soActiveInfraRequests}); + + final HttpRestServiceProvider mockServiceProvider = mock(HttpRestServiceProvider.class); + + when(mockServiceProvider.postHttpRequest(eq(filters), eq(searchUrl), eq(SoActiveInfraRequests[].class))) + .thenReturn(response); + + final DatabaseServiceProvider objUnderTest = new DatabaseServiceProviderImpl(URL_PROVIDER, mockServiceProvider); + + final List<SoInfraRequest> actualList = objUnderTest.getSoInfraRequest(filters, 0, 0, null); + assertFalse(actualList.isEmpty()); + assertEquals(requestID, actualList.get(0).getRequestId()); + + } +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderTest.java new file mode 100644 index 0000000000..351c476ca1 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/rest/service/CamundaProcessDataServiceProviderTest.java @@ -0,0 +1,232 @@ +/*- + * ============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.montoring.rest.service; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.List; +import java.util.UUID; + +import org.junit.Test; +import org.onap.so.montoring.camunda.model.ActivityInstance; +import org.onap.so.montoring.camunda.model.ProcessDefinition; +import org.onap.so.montoring.camunda.model.ProcessInstance; +import org.onap.so.montoring.camunda.model.ProcessInstanceVariable; +import org.onap.so.montoring.configuration.camunda.CamundaRestUrlProvider; +import org.onap.so.montoring.model.ActivityInstanceDetail; +import org.onap.so.montoring.model.ProcessDefinitionDetail; +import org.onap.so.montoring.model.ProcessInstanceIdDetail; +import org.onap.so.montoring.model.ProcessInstanceVariableDetail; + +import com.google.common.base.Optional; + + +/** + * @author waqas.ikram@ericsson.com + */ +public class CamundaProcessDataServiceProviderTest { + private static final String DURATION = "1"; + private static final String FLOW_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; + private static final String NAME = "Test"; + private static final String DEFAULT = "default"; + private static final String CAMUNDA_REST_API_URL = "http://localhost:9080/engine-rest/engine/"; + + private static final String ID = UUID.randomUUID().toString(); + private static final String PROCESS_ID = UUID.randomUUID().toString(); + private static final String DEF_ID = UUID.randomUUID().toString(); + private static final String SUPER_PROCESS_ID = UUID.randomUUID().toString(); + private final HttpRestServiceProvider httpRestServiceProvider = mock(HttpRestServiceProvider.class); + private final CamundaRestUrlProvider camundaRestUrlProvider = + new CamundaRestUrlProvider(CAMUNDA_REST_API_URL, DEFAULT); + + + @Test + public void test_GetProcessInstanceDetail_EmptyResponse() { + final Optional<ProcessInstance[]> response = Optional.<ProcessInstance[]>absent(); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/history/process-instance?variables=requestId_eq_" + ID; + when(httpRestServiceProvider.getHttpResponse(url, ProcessInstance[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final Optional<ProcessInstanceIdDetail> actualResponse = objUnderTest.getProcessInstanceIdDetail(ID); + assertFalse(actualResponse.isPresent()); + } + + @Test + public void test_GetProcessInstanceDetail_NonEmptyResponseWithSuperProcessIdNull() { + final Optional<ProcessInstance[]> response = Optional.of(getProcessInstance()); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/history/process-instance?variables=requestId_eq_" + ID; + when(httpRestServiceProvider.getHttpResponse(url, ProcessInstance[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final Optional<ProcessInstanceIdDetail> actualResponse = objUnderTest.getProcessInstanceIdDetail(ID); + assertTrue(actualResponse.isPresent()); + + final ProcessInstanceIdDetail actualProcessInstanceDetail = actualResponse.get(); + assertEquals(PROCESS_ID, actualProcessInstanceDetail.getProcessInstanceId()); + } + + @Test + public void test_GetProcessInstanceDetail_NonEmptyResponseWithSuperProcessIdNotNull() { + final Optional<ProcessInstance[]> response = Optional.of(getProcessInstance(SUPER_PROCESS_ID)); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/history/process-instance?variables=requestId_eq_" + ID; + when(httpRestServiceProvider.getHttpResponse(url, ProcessInstance[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final Optional<ProcessInstanceIdDetail> actualResponse = objUnderTest.getProcessInstanceIdDetail(ID); + assertFalse(actualResponse.isPresent()); + + } + + @Test + public void test_GetProcessDefinition_EmptyResponse() { + final Optional<ProcessDefinition> response = Optional.<ProcessDefinition>absent(); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/process-definition/" + ID + "/xml"; + when(httpRestServiceProvider.getHttpResponse(url, ProcessDefinition.class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final Optional<ProcessDefinitionDetail> actualResponse = objUnderTest.getProcessDefinition(ID); + assertFalse(actualResponse.isPresent()); + } + + @Test + public void test_GetProcessDefinition_NonEmptyResponse() { + final Optional<ProcessDefinition> response = getProcessDefinition(); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/process-definition/" + PROCESS_ID + "/xml"; + when(httpRestServiceProvider.getHttpResponse(url, ProcessDefinition.class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final Optional<ProcessDefinitionDetail> actualResponse = objUnderTest.getProcessDefinition(PROCESS_ID); + assertTrue(actualResponse.isPresent()); + assertEquals(PROCESS_ID, actualResponse.get().getProcessDefinitionId()); + assertEquals(FLOW_XML, actualResponse.get().getProcessDefinitionXml()); + } + + @Test + public void test_GetActivityInstance_EmptyResponse() { + final Optional<ActivityInstance[]> response = Optional.<ActivityInstance[]>absent(); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/history/activity-instance?processInstanceId=" + PROCESS_ID + + "&sortBy=startTime&sortOrder=asc"; + when(httpRestServiceProvider.getHttpResponse(url, ActivityInstance[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final List<ActivityInstanceDetail> actualResponse = objUnderTest.getActivityInstance(PROCESS_ID); + assertTrue(actualResponse.isEmpty()); + + } + + @Test + public void test_GetActivityInstance_NonEmptyResponse() { + final Optional<ActivityInstance[]> response = getActivityInstance(); + final String url = CAMUNDA_REST_API_URL + DEFAULT + "/history/activity-instance?processInstanceId=" + PROCESS_ID + + "&sortBy=startTime&sortOrder=asc"; + when(httpRestServiceProvider.getHttpResponse(url, ActivityInstance[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final List<ActivityInstanceDetail> actualResponse = objUnderTest.getActivityInstance(PROCESS_ID); + assertFalse(actualResponse.isEmpty()); + final ActivityInstanceDetail actualActivityInstanceDetail = actualResponse.get(0); + assertEquals(ID, actualActivityInstanceDetail.getActivityId()); + assertEquals(NAME, actualActivityInstanceDetail.getActivityName()); + assertEquals(NAME, actualActivityInstanceDetail.getActivityType()); + + } + + @Test + public void test_GetProcessInstanceVariable_EmptyResponse() { + final Optional<ProcessInstanceVariable[]> response = Optional.<ProcessInstanceVariable[]>absent(); + final String url = + CAMUNDA_REST_API_URL + DEFAULT + "/history/variable-instance?processInstanceId=" + PROCESS_ID; + when(httpRestServiceProvider.getHttpResponse(url, ProcessInstanceVariable[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final List<ProcessInstanceVariableDetail> actualResponse = objUnderTest.getProcessInstanceVariable(PROCESS_ID); + assertTrue(actualResponse.isEmpty()); + + } + + @Test + public void test_GetProcessInstanceVariable_NonEmptyResponse() { + final Optional<ProcessInstanceVariable[]> response = getProcessInstanceVariable(); + final String url = + CAMUNDA_REST_API_URL + DEFAULT + "/history/variable-instance?processInstanceId=" + PROCESS_ID; + when(httpRestServiceProvider.getHttpResponse(url, ProcessInstanceVariable[].class)).thenReturn(response); + final CamundaProcessDataServiceProvider objUnderTest = + new CamundaProcessDataServiceProviderImpl(camundaRestUrlProvider, httpRestServiceProvider); + + final List<ProcessInstanceVariableDetail> actualResponse = objUnderTest.getProcessInstanceVariable(PROCESS_ID); + assertFalse(actualResponse.isEmpty()); + final ProcessInstanceVariableDetail variableDetail = actualResponse.get(0); + assertEquals(NAME, variableDetail.getName()); + assertEquals(NAME, variableDetail.getType()); + assertEquals(NAME, variableDetail.getValue()); + + } + + private Optional<ProcessInstanceVariable[]> getProcessInstanceVariable() { + final ProcessInstanceVariable instanceVariable = new ProcessInstanceVariable(); + instanceVariable.setName(NAME); + instanceVariable.setType(NAME); + instanceVariable.setValue(NAME); + return Optional.of(new ProcessInstanceVariable[] {instanceVariable}); + } + + private Optional<ActivityInstance[]> getActivityInstance() { + final ActivityInstance activityInstance = new ActivityInstance(); + activityInstance.setActivityId(ID); + activityInstance.setActivityName(NAME); + activityInstance.setActivityType(NAME); + activityInstance.setDurationInMillis(DURATION); + return Optional.of(new ActivityInstance[] {activityInstance}); + } + + private Optional<ProcessDefinition> getProcessDefinition() { + final ProcessDefinition processDefinition = new ProcessDefinition(); + processDefinition.setId(PROCESS_ID); + processDefinition.setBpmn20Xml(FLOW_XML); + return Optional.of(processDefinition); + } + + private ProcessInstance[] getProcessInstance() { + return getProcessInstance(null); + } + + private ProcessInstance[] getProcessInstance(final String superProcessInstanceId) { + final ProcessInstance instance = new ProcessInstance(); + instance.setId(PROCESS_ID); + instance.setProcessDefinitionId(DEF_ID); + instance.setProcessDefinitionName(NAME); + instance.setSuperProcessInstanceId(superProcessInstanceId); + return new ProcessInstance[] {instance}; + } + + +} diff --git a/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/utils/ObjectEqualsUtilsTest.java b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/utils/ObjectEqualsUtilsTest.java new file mode 100644 index 0000000000..b1ad4eae12 --- /dev/null +++ b/so-monitoring/so-monitoring-handler/src/test/java/org/onap/so/montoring/utils/ObjectEqualsUtilsTest.java @@ -0,0 +1,71 @@ +/*- + * ============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.montoring.utils; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.List; + +import org.junit.Test; + + +/** + * @author waqas.ikram@ericsson.com + * + */ +public class ObjectEqualsUtilsTest { + + private static final String VALUE = "Humpty Dumpty Sat On The Wall"; + + @Test + public void test_ObjectEqualsUtils_isEqual_NullValues() { + assertTrue(ObjectEqualsUtils.isEqual(null, null)); + } + + @Test + public void test_ObjectEqualsUtils_isEqual_FirstValueNullSecondNotNull() { + assertFalse(ObjectEqualsUtils.isEqual(null, VALUE)); + } + + @Test + public void test_ObjectEqualsUtils_isEqual_FirstValueNotNullSecondNull() { + assertFalse(ObjectEqualsUtils.isEqual(VALUE, null)); + } + + @Test + public void test_ObjectEqualsUtils_isEqual_NotNullValues() { + assertTrue(ObjectEqualsUtils.isEqual(VALUE, VALUE)); + } + + @Test + public void test_ObjectEqualsUtils_isEqual_CollectionValues() { + final List<Object> firstObject = Arrays.asList(VALUE); + final List<Object> secondObject = Arrays.asList(VALUE); + assertTrue(ObjectEqualsUtils.isEqual(firstObject, secondObject)); + } + + @Test + public void test_ObjectEqualsUtils_isEqual_CollectionAndStringValues() { + final List<Object> firstObject = Arrays.asList(VALUE); + assertFalse(ObjectEqualsUtils.isEqual(firstObject, VALUE)); + } +} diff --git a/so-monitoring/so-monitoring-service/pom.xml b/so-monitoring/so-monitoring-service/pom.xml new file mode 100644 index 0000000000..3aeed23291 --- /dev/null +++ b/so-monitoring/so-monitoring-service/pom.xml @@ -0,0 +1,93 @@ +<!-- + ============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========================================================= +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.so.monitoring</groupId> + <artifactId>so-monitoring</artifactId> + <version>1.3.0-SNAPSHOT</version> + </parent> + <artifactId>so-monitoring-service</artifactId> + <name>${project.artifactId}</name> + + <dependencies> + <dependency> + <groupId>org.onap.so.monitoring</groupId> + <artifactId>so-monitoring-handler</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jersey</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <scope>compile</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${springboot.version}</version> + <configuration> + <mainClass>org.onap.so.monitoring.rest.api.SoMonitoringApplication</mainClass> + </configuration> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project>
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/JerseyConfiguration.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/JerseyConfiguration.java new file mode 100644 index 0000000000..0f03f23898 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/JerseyConfiguration.java @@ -0,0 +1,40 @@ +/*- + * ============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.api; + +import javax.annotation.PostConstruct; +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; +import org.springframework.context.annotation.Configuration; + +/** + * @author waqas.ikram@ericsson.com + */ +@Configuration +@ApplicationPath("/so/monitoring") +public class JerseyConfiguration extends ResourceConfig { + + @PostConstruct + public void setUp() { + register(SoMonitoringController.class); + } + +} diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.java new file mode 100644 index 0000000000..7c5a8965b7 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringApplication.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.rest.api; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author waqas.ikram@ericsson.com + */ +@SpringBootApplication(scanBasePackages = {"org.onap"}) +public class SoMonitoringApplication { + + public static void main(String[] args) { + SpringApplication.run(SoMonitoringApplication.class, args); + + } + +} diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java new file mode 100644 index 0000000000..913fb3f934 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/SoMonitoringController.java @@ -0,0 +1,236 @@ +/*- + * ============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.api; + +import java.util.List; +import java.util.Map; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import org.onap.so.montoring.db.service.DatabaseServiceProvider; +import org.onap.so.montoring.exception.InvalidRestRequestException; +import org.onap.so.montoring.exception.RestProcessingException; +import org.onap.so.montoring.model.ActivityInstanceDetail; +import org.onap.so.montoring.model.ProcessDefinitionDetail; +import org.onap.so.montoring.model.ProcessInstanceDetail; +import org.onap.so.montoring.model.ProcessInstanceIdDetail; +import org.onap.so.montoring.model.ProcessInstanceVariableDetail; +import org.onap.so.montoring.model.SoInfraRequest; +import org.onap.so.montoring.rest.service.CamundaProcessDataServiceProvider; +import org.slf4j.ext.XLogger; +import org.slf4j.ext.XLoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.google.common.base.Optional; + +/** + * @author waqas.ikram@ericsson.com + */ +@Component +@Path("/") +public class SoMonitoringController { + + private static final String INVALID_PROCESS_INSTANCE_ERROR_MESSAGE = "Invalid process instance id: "; + + private static final XLogger LOGGER = XLoggerFactory.getXLogger(SoMonitoringController.class); + + private final DatabaseServiceProvider databaseServiceProvider; + + private final CamundaProcessDataServiceProvider camundaProcessDataServiceProvider; + + @Autowired + public SoMonitoringController(final DatabaseServiceProvider databaseServiceProvider, + final CamundaProcessDataServiceProvider camundaProcessDataServiceProvider) { + this.databaseServiceProvider = databaseServiceProvider; + this.camundaProcessDataServiceProvider = camundaProcessDataServiceProvider; + } + + @GET + @Path("/process-instance-id/{requestId}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response getProcessInstanceId(final @PathParam("requestId") String requestId) { + if (requestId == null || requestId.isEmpty()) { + return Response.status(Status.BAD_REQUEST).entity("Invalid Request id: " + requestId).build(); + } + try { + final Optional<ProcessInstanceIdDetail> processInstanceId = + camundaProcessDataServiceProvider.getProcessInstanceIdDetail(requestId); + if (processInstanceId.isPresent()) { + return Response.status(Status.OK).entity(processInstanceId.get()).build(); + } + + LOGGER.error("Unable to find process instance id for : {}", requestId); + return Response.status(Status.NO_CONTENT).build(); + + } catch (final InvalidRestRequestException extensions) { + final String message = "Unable to find process instance id for : " + requestId; + LOGGER.error(message); + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to process request for id: " + requestId; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + + @GET + @Path("/process-instance/{processInstanceId}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response getSingleProcessInstance(final @PathParam("processInstanceId") String processInstanceId) { + if (processInstanceId == null || processInstanceId.isEmpty()) { + return Response.status(Status.BAD_REQUEST) + .entity(INVALID_PROCESS_INSTANCE_ERROR_MESSAGE + processInstanceId).build(); + } + try { + final Optional<ProcessInstanceDetail> processInstanceDetail = + camundaProcessDataServiceProvider.getSingleProcessInstanceDetail(processInstanceId); + if (processInstanceDetail.isPresent()) { + return Response.status(Status.OK).entity(processInstanceDetail.get()).build(); + } + + LOGGER.error("Unable to find process instance id for : {}", processInstanceId); + return Response.status(Status.NO_CONTENT).build(); + + } catch (final InvalidRestRequestException extensions) { + final String message = "Unable to find process instance id for : " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to process request for id: " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + + @GET + @Path("/process-definition/{processDefinitionId}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response getProcessDefinitionXml(final @PathParam("processDefinitionId") String processDefinitionId) { + if (processDefinitionId == null || processDefinitionId.isEmpty()) { + return Response.status(Status.BAD_REQUEST).entity("Invalid process definition id: " + processDefinitionId) + .build(); + } + try { + final Optional<ProcessDefinitionDetail> response = + camundaProcessDataServiceProvider.getProcessDefinition(processDefinitionId); + if (response.isPresent()) { + final ProcessDefinitionDetail definitionDetail = response.get(); + return Response.status(Status.OK).entity(definitionDetail).build(); + } + LOGGER.error("Unable to find process definition xml for processDefinitionId: {}", processDefinitionId); + return Response.status(Status.NO_CONTENT).build(); + + } catch (final InvalidRestRequestException extensions) { + final String message = + "Unable to find process definition xml for processDefinitionId: {}" + processDefinitionId; + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to get process definition xml for id: " + processDefinitionId; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + + @GET + @Path("/activity-instance/{processInstanceId}") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response getActivityInstanceDetail(final @PathParam("processInstanceId") String processInstanceId) { + if (processInstanceId == null || processInstanceId.isEmpty()) { + return Response.status(Status.BAD_REQUEST) + .entity(INVALID_PROCESS_INSTANCE_ERROR_MESSAGE + processInstanceId).build(); + } + try { + final List<ActivityInstanceDetail> activityInstanceDetails = + camundaProcessDataServiceProvider.getActivityInstance(processInstanceId); + return Response.status(Status.OK).entity(activityInstanceDetails).build(); + } catch (final InvalidRestRequestException extensions) { + final String message = "Unable to find activity instance for processInstanceId: " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to get activity instance detail for id: " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + + @GET + @Path("/variable-instance/{processInstanceId}") + @Produces(MediaType.APPLICATION_JSON) + public Response getProcessInstanceVariables(final @PathParam("processInstanceId") String processInstanceId) { + if (processInstanceId == null || processInstanceId.isEmpty()) { + return Response.status(Status.BAD_REQUEST) + .entity(INVALID_PROCESS_INSTANCE_ERROR_MESSAGE + processInstanceId).build(); + } + try { + final List<ProcessInstanceVariableDetail> processInstanceVariable = + camundaProcessDataServiceProvider.getProcessInstanceVariable(processInstanceId); + return Response.status(Status.OK).entity(processInstanceVariable).build(); + } catch (final InvalidRestRequestException extensions) { + final String message = + "Unable to find process instance variables for processInstanceId: " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to get process instance variables for id: " + processInstanceId; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + + @POST + @Path("/v1/search") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Response getInfraActiveRequests(final Map<String, String[]> filters, + @QueryParam("from") final long startTime, @QueryParam("to") final long endTime, + @QueryParam("maxResult") final Integer maxResult) { + + if (filters == null) { + return Response.status(Status.BAD_REQUEST).entity("Invalid filters: " + filters).build(); + } + try { + final List<SoInfraRequest> requests = + databaseServiceProvider.getSoInfraRequest(filters, startTime, endTime, maxResult); + LOGGER.info("result size: {}", requests.size()); + return Response.status(Status.OK).entity(requests).build(); + + } catch (final InvalidRestRequestException extensions) { + final String message = "Unable to search request for filters: " + filters + ", from: " + startTime + + ", to: " + endTime + ", maxResult: " + maxResult; + LOGGER.error(message); + return Response.status(Status.BAD_REQUEST).entity(message).build(); + } catch (final RestProcessingException restProcessingException) { + final String message = "Unable to search request for filters: " + filters + ", from: " + startTime + + ", to: " + endTime + ", maxResult: " + maxResult; + LOGGER.error(message); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(message).build(); + } + } + +} diff --git a/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/WebApplicationConfig.java b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/WebApplicationConfig.java new file mode 100644 index 0000000000..cadd60b0d9 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/main/java/org/onap/so/monitoring/rest/api/WebApplicationConfig.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.rest.api; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +/** + * @author waqas.ikram@ericsson.com + */ +@Configuration +public class WebApplicationConfig extends WebMvcConfigurerAdapter { + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + registry.addViewController("/details/**").setViewName("forward:/"); + } +} diff --git a/so-monitoring/so-monitoring-service/src/main/resources/application.yaml b/so-monitoring/so-monitoring-service/src/main/resources/application.yaml new file mode 100644 index 0000000000..f21207474a --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/main/resources/application.yaml @@ -0,0 +1,17 @@ +server: + port: 9091 + tomcat: + max-threads: 50 +ssl-enable: false +camunda: + rest: + api: + url: http://bpmn-infra:8081/engine-rest/engine/ + engine: default + auth: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== +mso: + database: + rest: + api: + url: http://request-db-adapter:8083/infraActiveRequests/ + auth: Basic YnBlbDpwYXNzd29yZDEk
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringControllerTest.java b/so-monitoring/so-monitoring-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringControllerTest.java new file mode 100644 index 0000000000..13953b0331 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringControllerTest.java @@ -0,0 +1,400 @@ +/*- + * ============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.api; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.onap.so.montoring.configuration.rest.RestTemplateConfigration.CAMUNDA_REST_TEMPLATE; +import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; +import static org.springframework.test.web.client.response.MockRestResponseCreators.withBadRequest; +import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; +import static org.springframework.test.web.client.response.MockRestResponseCreators.withUnauthorizedRequest; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.UUID; + +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.so.montoring.configuration.camunda.CamundaRestUrlProvider; +import org.onap.so.montoring.model.ActivityInstanceDetail; +import org.onap.so.montoring.model.ProcessDefinitionDetail; +import org.onap.so.montoring.model.ProcessInstanceDetail; +import org.onap.so.montoring.model.ProcessInstanceIdDetail; +import org.onap.so.montoring.model.ProcessInstanceVariableDetail; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.web.client.MockRestServiceServer; +import org.springframework.web.client.RestTemplate; + + + +/** + * @author waqas.ikram@ericsson.com + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ActiveProfiles("test") +@SpringBootTest +public class SoMonitoringControllerTest { + + private static final String PROCRESS_DEF_ID = "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb"; + + private static final String EMPTY_ARRAY_RESPONSE = "[]"; + + private static final String PROCESS_INSTACE_ID = "5956a99d-9736-11e8-8caf-022ac9304eeb"; + + private static final String EMPTY_STRING = ""; + + private static final String SOURCE_TEST_FOLDER = "src/test/resources/camundaResponses/"; + + private static final Path PROCESS_DEF_RESPONSE_JSON_FILE = Paths.get(SOURCE_TEST_FOLDER + "processDefinition.json"); + + private static final Path ACTIVITY_INSTANCE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_TEST_FOLDER + "activityInstance.json"); + + private static final Path PROCESS_INSTANCE_VARIABLES_RESPONSE_JSON_FILE = + Paths.get(SOURCE_TEST_FOLDER + "processInstanceVariables.json"); + + private static final Path PROCCESS_INSTANCE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_TEST_FOLDER + "processInstance.json"); + + private static final Path SINGLE_PROCCESS_INSTANCE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_TEST_FOLDER + "singleprocessInstance.json"); + + private static final String ID = UUID.randomUUID().toString(); + + @Autowired + @Qualifier(CAMUNDA_REST_TEMPLATE) + private RestTemplate restTemplate; + + @Autowired + private CamundaRestUrlProvider urlProvider; + + private MockRestServiceServer camundaMockServer; + + @Autowired + private SoMonitoringController objUnderTest; + + @Before + public void setUp() throws Exception { + camundaMockServer = MockRestServiceServer.bindTo(restTemplate).build(); + } + + @Test + public void test_GetProcessInstance_SuccessResponseWithDataFromCamunda() throws Exception { + final String jsonString = getJsonResponse(PROCCESS_INSTANCE_RESPONSE_JSON_FILE); + this.camundaMockServer.expect(requestTo(urlProvider.getHistoryProcessInstanceUrl(ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getProcessInstanceId(ID); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + final ProcessInstanceIdDetail actualProcessInstance = (ProcessInstanceIdDetail) response.getEntity(); + assertEquals("dba707b6-8c02-11e8-a6ba-022a5dba5402", actualProcessInstance.getProcessInstanceId()); + } + + @Test + public void test_GetProcessInstance_SuccessResponseWithEmptyDataFromCamunda() throws Exception { + final String jsonString = EMPTY_ARRAY_RESPONSE; + this.camundaMockServer.expect(requestTo(urlProvider.getHistoryProcessInstanceUrl(ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getProcessInstanceId(ID); + assertEquals(Status.NO_CONTENT.getStatusCode(), response.getStatus()); + assertNull(response.getEntity()); + } + + @Test + public void test_GetProcessInstance_FailureResponseWithEmptyDataFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getHistoryProcessInstanceUrl(ID))) + .andRespond(withBadRequest()); + + final Response response = objUnderTest.getProcessInstanceId(ID); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + } + + @Test + public void test_GetProcessInstance_UnauthorizedRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getHistoryProcessInstanceUrl(ID))) + .andRespond(withUnauthorizedRequest()); + + final Response response = objUnderTest.getProcessInstanceId(ID); + assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetSinlgeProcessInstance_SuccessResponseWithDataFromCamunda() throws Exception { + final String jsonString = getJsonResponse(SINGLE_PROCCESS_INSTANCE_RESPONSE_JSON_FILE); + this.camundaMockServer.expect(requestTo(urlProvider.getSingleProcessInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getSingleProcessInstance(PROCESS_INSTACE_ID); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + final ProcessInstanceDetail actualProcessInstance = (ProcessInstanceDetail) response.getEntity(); + assertEquals(PROCESS_INSTACE_ID, actualProcessInstance.getProcessInstanceId()); + assertEquals("EricssonNetworkSliceV1:3:28f9e0fc-9b00-11e8-a57a-022ac90273ed", + actualProcessInstance.getProcessDefinitionId()); + assertEquals("EricssonNetworkSliceV1", actualProcessInstance.getProcessDefinitionName()); + assertNull(actualProcessInstance.getSuperProcessInstanceId()); + } + + @Test + public void test_GetSingleProcessInstance_WithBadRequestResponseFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getSingleProcessInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withBadRequest()); + + final Response response = objUnderTest.getSingleProcessInstance(PROCESS_INSTACE_ID); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetSingleProcessInstance_WithUnauthorizedRequestResponseFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getSingleProcessInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withUnauthorizedRequest()); + + final Response response = objUnderTest.getSingleProcessInstance(PROCESS_INSTACE_ID); + assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetSingleProcessInstance_NullAndEmptyProcessInstanceIdFromCamunda() throws Exception { + + Response response = objUnderTest.getSingleProcessInstance(null); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + + response = objUnderTest.getSingleProcessInstance(""); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + + @Test + public void test_GetProcessInstance_EmptyRequestID() throws Exception { + + Response response = objUnderTest.getProcessInstanceId(EMPTY_STRING); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + + response = objUnderTest.getProcessInstanceId(null); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + } + + + @Test + public void test_GetProcessDefinitionXml_SuccessResponseWithDataFromCamunda() throws Exception { + final String jsonString = getJsonResponse(PROCESS_DEF_RESPONSE_JSON_FILE); + this.camundaMockServer.expect(requestTo(urlProvider.getProcessDefinitionUrl(PROCRESS_DEF_ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getProcessDefinitionXml(PROCRESS_DEF_ID); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + + final ProcessDefinitionDetail actual = (ProcessDefinitionDetail) response.getEntity(); + assertEquals(PROCRESS_DEF_ID, actual.getProcessDefinitionId()); + } + + @Test + public void test_GetProcessDefinitionXml_BadRequestResponseFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getProcessDefinitionUrl(PROCRESS_DEF_ID))) + .andRespond(withBadRequest()); + + final Response response = objUnderTest.getProcessDefinitionXml(PROCRESS_DEF_ID); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessDefinitionXml_UnauthorizedRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getProcessDefinitionUrl(PROCRESS_DEF_ID))) + .andRespond(withUnauthorizedRequest()); + + final Response response = objUnderTest.getProcessDefinitionXml(PROCRESS_DEF_ID); + assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessDefinitionXml_NullValues() throws Exception { + Response response = objUnderTest.getProcessDefinitionXml(EMPTY_STRING); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + + response = objUnderTest.getProcessDefinitionXml(null); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetActivityInstanceDetail_SuccessResponseWithDataFromCamunda() throws Exception { + final String jsonString = getJsonResponse(ACTIVITY_INSTANCE_RESPONSE_JSON_FILE); + this.camundaMockServer.expect(requestTo(urlProvider.getActivityInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getActivityInstanceDetail(PROCESS_INSTACE_ID); + @SuppressWarnings("unchecked") + final List<ActivityInstanceDetail> actual = (List<ActivityInstanceDetail>) response.getEntity(); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + assertEquals(12, actual.size()); + final ActivityInstanceDetail activityInstanceDetail = actual.get(0); + assertEquals("createVCPE_startEvent", activityInstanceDetail.getActivityId()); + assertEquals("Start Flow", activityInstanceDetail.getActivityName()); + assertEquals("startEvent", activityInstanceDetail.getActivityType()); + assertEquals(PROCESS_INSTACE_ID, activityInstanceDetail.getProcessInstanceId()); + assertNull(activityInstanceDetail.getCalledProcessInstanceId()); + assertEquals("26", activityInstanceDetail.getDurationInMillis()); + assertEquals("2018-08-03T16:00:31.815+0000", activityInstanceDetail.getStartTime()); + assertEquals("2018-08-03T16:00:31.841+0000", activityInstanceDetail.getEndTime()); + + final ActivityInstanceDetail callActivityInstanceDetail = actual.get(4); + assertEquals("DecomposeService", callActivityInstanceDetail.getActivityId()); + assertEquals("Call Decompose Service", callActivityInstanceDetail.getActivityName()); + assertEquals("callActivity", callActivityInstanceDetail.getActivityType()); + assertEquals("59d99609-9736-11e8-8caf-022ac9304eeb", callActivityInstanceDetail.getCalledProcessInstanceId()); + } + + @Test + public void test_GetActivityInstanceDetail_SuccessResponseWithEmptyDataFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getActivityInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withSuccess(EMPTY_ARRAY_RESPONSE, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getActivityInstanceDetail(PROCESS_INSTACE_ID); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetActivityInstanceDetail_UnauthorizedRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getActivityInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withUnauthorizedRequest()); + + final Response response = objUnderTest.getActivityInstanceDetail(PROCESS_INSTACE_ID); + assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetActivityInstanceDetail_BadRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getActivityInstanceUrl(PROCESS_INSTACE_ID))) + .andRespond(withBadRequest()); + + final Response response = objUnderTest.getActivityInstanceDetail(PROCESS_INSTACE_ID); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetActivityInstanceDetail_NullValues() throws Exception { + Response response = objUnderTest.getActivityInstanceDetail(EMPTY_STRING); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + + response = objUnderTest.getActivityInstanceDetail(null); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessInstanceVariables_SuccessResponseWithDataFromCamunda() throws Exception { + final String jsonString = getJsonResponse(PROCESS_INSTANCE_VARIABLES_RESPONSE_JSON_FILE); + this.camundaMockServer.expect(requestTo(urlProvider.getProcessInstanceVariablesUrl(PROCESS_INSTACE_ID))) + .andRespond(withSuccess(jsonString, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getProcessInstanceVariables(PROCESS_INSTACE_ID); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + @SuppressWarnings("unchecked") + final List<ProcessInstanceVariableDetail> actual = (List<ProcessInstanceVariableDetail>) response.getEntity(); + assertEquals(230, actual.size()); + + ProcessInstanceVariableDetail variableDetail = actual.get(0); + assertEquals("serviceType", variableDetail.getName()); + assertEquals("String", variableDetail.getType()); + assertEquals("PNFSERVICE", variableDetail.getValue()); + } + + @Test + public void test_GetProcessInstanceVariables_SuccessResponseWithEmptyDataFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getProcessInstanceVariablesUrl(PROCESS_INSTACE_ID))) + .andRespond(withSuccess(EMPTY_ARRAY_RESPONSE, MediaType.APPLICATION_JSON)); + + final Response response = objUnderTest.getProcessInstanceVariables(PROCESS_INSTACE_ID); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessInstanceVariables_BadRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getProcessInstanceVariablesUrl(PROCESS_INSTACE_ID))) + .andRespond(withBadRequest()); + + final Response response = objUnderTest.getProcessInstanceVariables(PROCESS_INSTACE_ID); + + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessInstanceVariables_UnauthorizedRequestFromCamunda() throws Exception { + this.camundaMockServer.expect(requestTo(urlProvider.getProcessInstanceVariablesUrl(PROCESS_INSTACE_ID))) + .andRespond(withUnauthorizedRequest()); + + final Response response = objUnderTest.getProcessInstanceVariables(PROCESS_INSTACE_ID); + + assertEquals(Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + } + + @Test + public void test_GetProcessInstanceVariables_NullAndEmptyValues() throws Exception { + + Response response = objUnderTest.getProcessInstanceVariables(EMPTY_STRING); + + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + + response = objUnderTest.getProcessInstanceVariables(null); + + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertNotNull(response.getEntity()); + + } + + private String getJsonResponse(final Path path) throws IOException { + return new String(Files.readAllBytes(path)); + } + +} diff --git a/so-monitoring/so-monitoring-service/src/test/resources/application-test.yaml b/so-monitoring/so-monitoring-service/src/test/resources/application-test.yaml new file mode 100644 index 0000000000..be39294c66 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/application-test.yaml @@ -0,0 +1,11 @@ +server: + port: 8080 + tomcat: + max-threads: 50 +ssl-enable: false +camunda: + rest: + api: + url: http://localhost:8080/engine-rest/engine/ + engine: default + auth: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ== diff --git a/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/activityInstance.json b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/activityInstance.json new file mode 100644 index 0000000000..a4f9e5b8d4 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/activityInstance.json @@ -0,0 +1,254 @@ +[ + { + "id": "createVCPE_startEvent:595dae93-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "createVCPE_startEvent", + "activityName": "Start Flow", + "activityType": "startEvent", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:31.815+0000", + "endTime": "2018-08-03T16:00:31.841+0000", + "durationInMillis": 26, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "5961f4bb-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "preProcessRequest_ScriptTask", + "activityName": "PreProcess Incoming Request", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:31.842+0000", + "endTime": "2018-08-03T16:00:32.532+0000", + "durationInMillis": 690, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "59cb3e17-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "sendSyncAckResponse_ScriptTask", + "activityName": "Send Sync Ack Response", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:32.532+0000", + "endTime": "2018-08-03T16:00:32.588+0000", + "durationInMillis": 56, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "ScriptTask_0cdtchu:59d465e4-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "ScriptTask_0cdtchu", + "activityName": "Prepare\nDecompose\nService\n", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:32.592+0000", + "endTime": "2018-08-03T16:00:32.609+0000", + "durationInMillis": 17, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "DecomposeService:59d6fdf8-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "DecomposeService", + "activityName": "Call Decompose Service", + "activityType": "callActivity", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "59d6fdf7-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": "59d99609-9736-11e8-8caf-022ac9304eeb", + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:32.609+0000", + "endTime": "2018-08-03T16:00:34.418+0000", + "durationInMillis": 1809, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "ScriptTask_0lpv2da:5aeb53a2-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "ScriptTask_0lpv2da", + "activityName": "PostProcess\nDecompose\nService\n", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:34.420+0000", + "endTime": "2018-08-03T16:00:34.437+0000", + "durationInMillis": 17, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "5aee12d2-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "prepareCreateService_scriptTask", + "activityName": "Prepare\nCreate\nService\n", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:34.438+0000", + "endTime": "2018-08-03T16:00:34.454+0000", + "durationInMillis": 16, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "5af083d7-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "doCreateServiceInstance_CallActivity", + "activityName": "Call Create \nServiceInstance\n", + "activityType": "callActivity", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5af083d6-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": "5af12018-9736-11e8-8caf-022ac9304eeb", + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:34.454+0000", + "endTime": "2018-08-03T16:00:40.424+0000", + "durationInMillis": 5970, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "ScriptTask_1qd3uwb:5e7f9de7-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "ScriptTask_1qd3uwb", + "activityName": "Post Process\nCreate\nService\n", + "activityType": "scriptTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:40.425+0000", + "endTime": "2018-08-03T16:00:40.443+0000", + "durationInMillis": 18, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "updateInfraRequest:5e825d0a-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "updateInfraRequest", + "activityName": "Update DB status to SUCCESS", + "activityType": "serviceTask", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:40.443+0000", + "endTime": "2018-08-03T16:00:40.503+0000", + "durationInMillis": 60, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "5e8b84cc-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "IntermediateCatchEvent_1x88t9v", + "activityName": "Await AAI Distribution\n\n", + "activityType": "intermediateTimer", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5e8b84cb-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": null, + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:00:40.505+0000", + "endTime": "2018-08-03T16:01:14.309+0000", + "durationInMillis": 33804, + "canceled": false, + "completeScope": false, + "tenantId": null + }, + { + "id": "Task_14l19kv:72b2d216-9736-11e8-8caf-022ac9304eeb", + "parentActivityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityId": "Task_14l19kv", + "activityName": "Create And Activate Pnf Resource", + "activityType": "callActivity", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "72b2d215-9736-11e8-8caf-022ac9304eeb", + "taskId": null, + "calledProcessInstanceId": "72b4cde7-9736-11e8-8caf-022ac9304eeb", + "calledCaseInstanceId": null, + "assignee": null, + "startTime": "2018-08-03T16:01:14.315+0000", + "endTime": null, + "durationInMillis": null, + "canceled": false, + "completeScope": false, + "tenantId": null + } +]
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processDefinition.json b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processDefinition.json new file mode 100644 index 0000000000..c4d9c7dcfa --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processDefinition.json @@ -0,0 +1,4 @@ +{ + "id": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "bpmn20Xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<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=\"_MagIIMOUEeW8asg-vCEgWQ\" targetNamespace=\"http://camunda.org/schema/1.0/bpmn\" exporter=\"Camunda Modeler\" exporterVersion=\"1.6.0\" xsi:schemaLocation=\"http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd\"></bpmn2:definitions>" +}
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstance.json b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstance.json new file mode 100644 index 0000000000..d9e75e9b11 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstance.json @@ -0,0 +1,59 @@ +[ + { + "id": "dba707b6-8c02-11e8-a6ba-022a5dba5402", + "businessKey": "0a8b32d2-7281-423b-81a1-a44ebf8e489e", + "processDefinitionId": "b76aaeb6-8993-11e8-9f7c-022a5d7b2d2d", + "processDefinitionKey": "CreateGenericALaCarteServiceInstance", + "processDefinitionName": "CreateGenericALaCarteServiceInstance", + "processDefinitionVersion": 5, + "startTime": "2018-07-20T09:54:13.779+0000", + "endTime": "2018-07-20T09:54:15.344+0000", + "durationInMillis": 1565, + "startUserId": null, + "startActivityId": "createSI_startEvent", + "deleteReason": null, + "superProcessInstanceId": null, + "superCaseInstanceId": null, + "caseInstanceId": null, + "tenantId": null, + "state": "COMPLETED" + }, + { + "id": "dbbcd94a-8c02-11e8-a6ba-022a5dba5402", + "businessKey": null, + "processDefinitionId": "DecomposeService:1:78e994ec-7fa7-11e8-816b-022a5d533d2a", + "processDefinitionKey": "DecomposeService", + "processDefinitionName": "DecomposeService", + "processDefinitionVersion": 1, + "startTime": "2018-07-20T09:54:13.921+0000", + "endTime": "2018-07-20T09:54:14.124+0000", + "durationInMillis": 203, + "startUserId": null, + "startActivityId": "createSI_startEvent", + "deleteReason": null, + "superProcessInstanceId": "dba707b6-8c02-11e8-a6ba-022a5dba5402", + "superCaseInstanceId": null, + "caseInstanceId": null, + "tenantId": null, + "state": "COMPLETED" + }, + { + "id": "dbe0404f-8c02-11e8-a6ba-022a5dba5402", + "businessKey": null, + "processDefinitionId": "DoCreateServiceInstance:5:b7750f0d-8993-11e8-9f7c-022a5d7b2d2d", + "processDefinitionKey": "DoCreateServiceInstance", + "processDefinitionName": "DoCreateServiceInstance", + "processDefinitionVersion": 5, + "startTime": "2018-07-20T09:54:14.155+0000", + "endTime": "2018-07-20T09:54:15.169+0000", + "durationInMillis": 1014, + "startUserId": null, + "startActivityId": "createSI_startEvent", + "deleteReason": null, + "superProcessInstanceId": "dba707b6-8c02-11e8-a6ba-022a5dba5402", + "superCaseInstanceId": null, + "caseInstanceId": null, + "tenantId": null, + "state": "COMPLETED" + } +]
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstanceVariables.json b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstanceVariables.json new file mode 100644 index 0000000000..15c87ea1e9 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/processInstanceVariables.json @@ -0,0 +1,5062 @@ +[ + { + "type": "String", + "value": "PNFSERVICE", + "valueInfo": { + + }, + "id": "59571ece-9736-11e8-8caf-022ac9304eeb", + "name": "serviceType", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Boolean", + "value": false, + "valueInfo": { + + }, + "id": "595745df-9736-11e8-8caf-022ac9304eeb", + "name": "isBaseVfModule", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745e0-9736-11e8-8caf-022ac9304eeb", + "name": "vfModuleId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745e1-9736-11e8-8caf-022ac9304eeb", + "name": "vfModuleType", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Null", + "value": null, + "valueInfo": { + + }, + "id": "595745e2-9736-11e8-8caf-022ac9304eeb", + "name": "recipeParams", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "createInstance", + "valueInfo": { + + }, + "id": "595745e3-9736-11e8-8caf-022ac9304eeb", + "name": "requestAction", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "8383cec3-a39d-4037-aa23-e82891f178a7", + "valueInfo": { + + }, + "id": "595745e4-9736-11e8-8caf-022ac9304eeb", + "name": "mso-business-key", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "55b3f0ea-70c5-4965-9e00-df77ed1552a3", + "valueInfo": { + + }, + "id": "595745e5-9736-11e8-8caf-022ac9304eeb", + "name": "mso-request-id", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745e6-9736-11e8-8caf-022ac9304eeb", + "name": "volumeGroupId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "744fee42-8e20-4152-ad75-17fb1ebfc5b2", + "valueInfo": { + + }, + "id": "595745e7-9736-11e8-8caf-022ac9304eeb", + "name": "serviceInstanceId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745e8-9736-11e8-8caf-022ac9304eeb", + "name": "vnfType", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "55b3f0ea-70c5-4965-9e00-df77ed1552a3", + "valueInfo": { + + }, + "id": "595745e9-9736-11e8-8caf-022ac9304eeb", + "name": "requestId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "so", + "valueInfo": { + + }, + "id": "595745ea-9736-11e8-8caf-022ac9304eeb", + "name": "host", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"requestDetails\":{\"modelInfo\":{\"modelInvariantUuid\":\"8e2be9fa-fffb-4e23-89a5-65497709f507\",\"modelType\":\"service\",\"modelName\":\"PNFSERVICE\",\"modelVersion\":\"1.0\",\"modelUuid\":\"4f7afc34-e475-41ca-be73-40f9a0f7ffa4\"},\"requestInfo\":{\"productFamilyId\":\"c8d92bf2-2c2e-4802-94e0-3f9e0825cc08\",\"source\":\"UUI\",\"instanceName\":\"AFRPOSTMAN51\",\"suppressRollback\":false,\"requestorId\":\"demo\"},\"subscriberInfo\":{\"globalSubscriberId\":\"Demonstration\"},\"cloudConfiguration\":{\"tenantId\":\"3e001881bcb342418ab5f2788a73255d\",\"lcpCloudRegionId\":\"regionOne_aaa_bbb\"},\"requestParameters\":{\"alaCarte\":false,\"subscriptionServiceType\":\"vCPE\",\"userParams\":[{\"name\":\"Homing_Solution\",\"value\":\"dummy\"}],\"aLaCarte\":false},\"project\":{\"projectName\":\"Project-Demonstration\"},\"owningEntity\":{\"owningEntityId\":\"c77274d4-4881-493a-ad46-368ea0996eb3\",\"owningEntityName\":\"OE-Demonstration\"}},\"correlationId\":\"afr\"}", + "valueInfo": { + + }, + "id": "595745eb-9736-11e8-8caf-022ac9304eeb", + "name": "bpmnRequest", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "afr", + "valueInfo": { + + }, + "id": "595745ec-9736-11e8-8caf-022ac9304eeb", + "name": "correlationId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745ed-9736-11e8-8caf-022ac9304eeb", + "name": "networkId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745ee-9736-11e8-8caf-022ac9304eeb", + "name": "vnfId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745ef-9736-11e8-8caf-022ac9304eeb", + "name": "configurationId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595745f0-9736-11e8-8caf-022ac9304eeb", + "name": "networkType", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Integer", + "value": 180, + "valueInfo": { + + }, + "id": "595745f1-9736-11e8-8caf-022ac9304eeb", + "name": "recipeTimeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595745f2-9736-11e8-8caf-022ac9304eeb", + "name": "isAsyncProcess", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/mso/vnfAdapterNotify", + "valueInfo": { + + }, + "id": "595ee714-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_vnfadapter_create_callback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee715-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateResourcesV3", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee716-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoUpdateNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/networks/rest/v1/networks", + "valueInfo": { + + }, + "id": "595ee717-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_network_rest_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee718-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteViprAtmService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner", + "valueInfo": { + + }, + "id": "595ee719-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_cloud_region_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee71a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DisconnectLayer3Service", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee71b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_updateCinderVolumeV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://com/att/svc/mis/firewall-lite-gui", + "valueInfo": { + + }, + "id": "595ee71c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sdnc_firewall_yang_model", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "message-router:3904", + "valueInfo": { + + }, + "id": "595ee71d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_poolMembers", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee71e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateE2EServiceInstanceV3", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee71f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_Layer3ServiceActivateV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee720-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateNetworkInstanceInfra", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee721-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee722-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee723-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoScaleE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595ee724-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_OofAdapter", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "1533303618885", + "valueInfo": { + + }, + "id": "595ee725-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_properties_timestamp", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", + "valueInfo": { + + }, + "id": "595ee726-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_po_auth", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e37-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_vnfAdapterDeleteV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e38-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCompareModelVersions", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT30M", + "valueInfo": { + + }, + "id": "595f0e39-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_oof_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "595f0e3a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_default_cloud_owner_id", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e3b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DelServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e3c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteVFCNSResource", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e3d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_commonCompletion", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "VIlbtVl6YLhNUrtU", + "valueInfo": { + + }, + "id": "595f0e3e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_key", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/tenants/TenantAdapter", + "valueInfo": { + + }, + "id": "595f0e3f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_tenant_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/route-table-references/route-table-reference", + "valueInfo": { + + }, + "id": "595f0e40-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_route_table_reference_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e41-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e42-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_deleteVCEV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/ecomp/mso/catalog", + "valueInfo": { + + }, + "id": "595f0e43-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_catalog_db_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e44-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_ChangeFeatureActivateV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e45-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CustomE2EPutService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e46-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_l3ToHigherLayerAddBonding", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e47-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DHVActivateService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e48-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_deleteGenericVNFV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e49-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_RollbackServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "message-router.onap", + "valueInfo": { + + }, + "id": "595f0e4a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_dmaap_host", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e4b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateViprAtmService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e4c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_l3ToHigherLayerDeleteBonding", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f0e4d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CustomE2EGetService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f355e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_ChangeLayer3ServiceActivateV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "APPC-LCM-READ", + "valueInfo": { + + }, + "id": "595f355f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_topic_write", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://org.openecomp.mso", + "valueInfo": { + + }, + "id": "595f3560-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_namespace", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f3561-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateCustomerV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "SDNC-LCM-READ", + "valueInfo": { + + }, + "id": "595f3562-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_topic_sdnc_write", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f3563-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateCustomE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "360000", + "valueInfo": { + + }, + "id": "595f3564-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_response_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/dbadapters/RequestsDbAdapter", + "valueInfo": { + + }, + "id": "595f3565-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_openecomp_db_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/mso/vnfAdapterNotify", + "valueInfo": { + + }, + "id": "595f3566-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_vnfadapter_delete_callback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "20", + "valueInfo": { + + }, + "id": "595f3567-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sdnc_timeout_firewall_minutes", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "1000", + "valueInfo": { + + }, + "id": "595f3568-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_callbackRetrySleepTime", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "30", + "valueInfo": { + + }, + "id": "595f3569-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_callbackRetryAttempts", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f356a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CompleteMsoProcess", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/mso/SDNCAdapterCallbackService", + "valueInfo": { + + }, + "id": "595f356b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_sdncadapter_callback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://sniro-emulator:80/sniro/api/v2/placement", + "valueInfo": { + + }, + "id": "595f356c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sniro_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "2630606608347B7124C244AB0FE34F6F", + "valueInfo": { + + }, + "id": "595f356d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_aai_auth", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f356e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_createCinderVolumeV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f356f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_GenericPutService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f3570-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateVFCNSResource", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/adapters/rest/v1/sdnc", + "valueInfo": { + + }, + "id": "595f3571-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_sdnc_rest_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f3572-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_RemoveLayer3Service", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f3573-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_GenericDeleteService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "ueb", + "valueInfo": { + + }, + "id": "595f3574-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_service", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/networks/NetworkAdapter", + "valueInfo": { + + }, + "id": "595f3575-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_network_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "test:testpwd", + "valueInfo": { + + }, + "id": "595f3576-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_oof_auth", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c87-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_QueryTenantInfo", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "false", + "valueInfo": { + + }, + "id": "595f5c88-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_use_qualified_host", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c89-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_deleteCinderVolumeV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/search/nodes-query", + "valueInfo": { + + }, + "id": "595f5c8a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_nodes_query_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://org.openecomp.aai.inventory/", + "valueInfo": { + + }, + "id": "595f5c8b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_global_default_aai_namespace", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "SDNC-LCM-WRITE", + "valueInfo": { + + }, + "id": "595f5c8c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_topic_sdnc_read", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c8d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://sniro-emulator:80", + "valueInfo": { + + }, + "id": "595f5c8e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_service_agnostic_sniro_host", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c8f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_vnfAdapterQueryV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/vpn-bindings/vpn-binding", + "valueInfo": { + + }, + "id": "595f5c90-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_vpn_binding_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c91-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateVfModuleVolumeV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c92-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c93-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateVfModuleVolume", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c94-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateNetworkV2", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c95-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DecomposeService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c96-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteNetworkInstanceRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c97-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteVfModuleVolume", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c98-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DHVCreateService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "WAN Bonding", + "valueInfo": { + + }, + "id": "595f5c99-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_l3ToHigherLayerAddBonding_model_name", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/search/generic-query", + "valueInfo": { + + }, + "id": "595f5c9a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_generic_query_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c9b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoUpdateE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "21014aa2-526b-11e6-beb8-9e71128cae77", + "valueInfo": { + + }, + "id": "595f5c9c-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_infra_customer_id", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c9d-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteSDNCNetworkResource", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c9e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_sdncAdapter", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5c9f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_asyncQueryAAICustomer", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/sniro/api/v2/placement", + "valueInfo": { + + }, + "id": "595f5ca0-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_service_agnostic_sniro_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5ca1-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_sendAOTSTicket", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f5ca2-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteServiceInstanceInfra", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83b3-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteTenantV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "07a7159d3bf51a0e53be7a8f89699be7", + "valueInfo": { + + }, + "id": "595f83b4-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_msoKey", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83b5-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_GenericGetService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83b6-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteVfModuleVolumeInfraV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "360000", + "valueInfo": { + + }, + "id": "595f83b7-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_topic_read_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83b8-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoScaleVFCServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83b9-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateVfModuleVolumeRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/generic-vnfs/generic-vnf", + "valueInfo": { + + }, + "id": "595f83ba-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_generic_vnf_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT5S", + "valueInfo": { + + }, + "id": "595f83bb-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_sdnc_replication_delay", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/vnfs/VnfAdapterAsync", + "valueInfo": { + + }, + "id": "595f83bc-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_vnf_async_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83bd-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_rollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT30M", + "valueInfo": { + + }, + "id": "595f83be-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sniro_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PORT-MIRROR,PPROBE", + "valueInfo": { + + }, + "id": "595f83bf-9736-11e8-8caf-022ac9304eeb", + "name": "URN_sdnc_si_svc_types", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "2015-05-15", + "valueInfo": { + + }, + "id": "595f83c0-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sdnc_firewall_yang_model_version", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83c1-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteNetworkInstanceInfra", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83c2-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83c3-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_vnfAdapterCreateV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "11", + "valueInfo": { + + }, + "id": "595f83c4-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_global_default_aai_version", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://oof-has-api:8091/api/oof/v1/placement", + "valueInfo": { + + }, + "id": "595f83c5-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_oof_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83c6-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_VPECreateVfModule", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/DFW/tenants/tenant", + "valueInfo": { + + }, + "id": "595f83c7-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_tenant_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83c8-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateVfModuleVolumeInfraV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT5M", + "valueInfo": { + + }, + "id": "595f83c9-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_po_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83ca-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateServiceInstanceInfra", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83cb-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "52dbec20-47aa-42e4-936c-331d8e350d44", + "valueInfo": { + + }, + "id": "595f83cc-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_l3ToHigherLayerAddBonding_model_versionid", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "https://aai.onap:8443", + "valueInfo": { + + }, + "id": "595f83cd-9736-11e8-8caf-022ac9304eeb", + "name": "URN_aai_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595f83ce-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateTenantV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/workflows/messages/message", + "valueInfo": { + + }, + "id": "595faadf-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_workflow_message_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT30S", + "valueInfo": { + + }, + "id": "595faae0-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_aai_distribution_delay", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "2.0", + "valueInfo": { + + }, + "id": "595faae1-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_l3ToHigherLayerAddBonding_model_version", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faae2-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_ScaleCustomE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/business/customers/customer", + "valueInfo": { + + }, + "id": "595faae3-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_customer_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/vces/vce", + "valueInfo": { + + }, + "id": "595faae4-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_vce_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://oof-has-api:8091", + "valueInfo": { + + }, + "id": "595faae5-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_service_agnostic_oof_host", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/adapters/SDNCAdapter", + "valueInfo": { + + }, + "id": "595faae6-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_sdnc_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "test:testpwd", + "valueInfo": { + + }, + "id": "595faae7-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sniro_auth", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "APPC-LCM-WRITE", + "valueInfo": { + + }, + "id": "595faae8-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_topic_read", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faae9-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoUpdateNetworkInstanceRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaea-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteNetworkV2", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaeb-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCompareModelofE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "3904", + "valueInfo": { + + }, + "id": "595faaec-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_dmaap_port", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaed-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateNetworkInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/api/oof/v1/placement", + "valueInfo": { + + }, + "id": "595faaee-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_service_agnostic_oof_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaef-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_SNIROAdapter", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaf0-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteResourcesV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaf1-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DeleteCustomE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT5M", + "valueInfo": { + + }, + "id": "595faaf2-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sdnc_timeout", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "mso-docker", + "valueInfo": { + + }, + "id": "595faaf3-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_sitename", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/CompleteMsoProcess", + "valueInfo": { + + }, + "id": "595faaf4-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_completemsoprocess_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaf5-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateNetworkInstanceRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/network-policies/network-policy", + "valueInfo": { + + }, + "id": "595faaf6-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_network_policy_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaf7-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateCustomE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74", + "valueInfo": { + + }, + "id": "595faaf8-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_db_auth", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faaf9-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_Layer3TestAndTurnUpV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faafa-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_QueryAAICustomer", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faafb-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateNetworkV2", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faafc-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_getLayer3ServiceDetailsV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595faafd-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_UpdateVfModuleVolumeInfraV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd20e-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateNetworkInstanceInfra", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "/aai/v11/network/l3-networks/l3-network", + "valueInfo": { + + }, + "id": "595fd20f-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_default_aai_v11_l3_network_uri", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd210-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateSDNCNetworkResource", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/vnfs/rest/v1/vnfs", + "valueInfo": { + + }, + "id": "595fd211-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_vnf_rest_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "64AG2hF4pYeG2pq7CT6XwUOT", + "valueInfo": { + + }, + "id": "595fd212-9736-11e8-8caf-022ac9304eeb", + "name": "URN_appc_client_secret", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd213-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CompareModelofE2EServiceInstance", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd214-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteVfModuleVolumeV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd215-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoDeleteVfModuleVolumeRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/mso/WorkflowMessage", + "valueInfo": { + + }, + "id": "595fd216-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_message_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd217-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_CreateVfModuleVolume", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "50359538-066f-4a8d-807f-f2bc8eaa79dc", + "valueInfo": { + + }, + "id": "595fd218-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_workflow_l3ToHigherLayerAddBonding_model_invariantid", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd219-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_vnfAdapterRollbackV1", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "http://so:8080/dbadapters/MsoRequestsDbAdapter", + "valueInfo": { + + }, + "id": "595fd21a-9736-11e8-8caf-022ac9304eeb", + "name": "URN_mso_adapters_db_endpoint", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "595fd21b-9736-11e8-8caf-022ac9304eeb", + "name": "URN_log_debug_DoCreateServiceInstanceRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "false", + "valueInfo": { + + }, + "id": "595fd21c-9736-11e8-8caf-022ac9304eeb", + "name": "isDebugLogEnabled", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "CVRCS_", + "valueInfo": { + + }, + "id": "59bb113c-9736-11e8-8caf-022ac9304eeb", + "name": "prefix", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"requestDetails\":{\"modelInfo\":{\"modelInvariantUuid\":\"8e2be9fa-fffb-4e23-89a5-65497709f507\",\"modelType\":\"service\",\"modelName\":\"PNFSERVICE\",\"modelVersion\":\"1.0\",\"modelUuid\":\"4f7afc34-e475-41ca-be73-40f9a0f7ffa4\"},\"requestInfo\":{\"productFamilyId\":\"c8d92bf2-2c2e-4802-94e0-3f9e0825cc08\",\"source\":\"UUI\",\"instanceName\":\"AFRPOSTMAN51\",\"suppressRollback\":false,\"requestorId\":\"demo\"},\"subscriberInfo\":{\"globalSubscriberId\":\"Demonstration\"},\"cloudConfiguration\":{\"tenantId\":\"3e001881bcb342418ab5f2788a73255d\",\"lcpCloudRegionId\":\"regionOne_aaa_bbb\"},\"requestParameters\":{\"alaCarte\":false,\"subscriptionServiceType\":\"vCPE\",\"userParams\":[{\"name\":\"Homing_Solution\",\"value\":\"dummy\"}],\"aLaCarte\":false},\"project\":{\"projectName\":\"Project-Demonstration\"},\"owningEntity\":{\"owningEntityId\":\"c77274d4-4881-493a-ad46-368ea0996eb3\",\"owningEntityName\":\"OE-Demonstration\"}},\"correlationId\":\"afr\"}", + "valueInfo": { + + }, + "id": "59bbfb9e-9736-11e8-8caf-022ac9304eeb", + "name": "createVcpeServiceRequest", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "Demonstration", + "valueInfo": { + + }, + "id": "59bbfba0-9736-11e8-8caf-022ac9304eeb", + "name": "globalSubscriberId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "AFRPOSTMAN51", + "valueInfo": { + + }, + "id": "59bbfba2-9736-11e8-8caf-022ac9304eeb", + "name": "serviceInstanceName", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "55b3f0ea-70c5-4965-9e00-df77ed1552a3", + "valueInfo": { + + }, + "id": "59bbfba4-9736-11e8-8caf-022ac9304eeb", + "name": "msoRequestId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Integer", + "value": 0, + "valueInfo": { + + }, + "id": "59bcbef6-9736-11e8-8caf-022ac9304eeb", + "name": "CVRCS_VnfsCreatedCount", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "c8d92bf2-2c2e-4802-94e0-3f9e0825cc08", + "valueInfo": { + + }, + "id": "59bcbef8-9736-11e8-8caf-022ac9304eeb", + "name": "productFamilyId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "59bcbefa-9736-11e8-8caf-022ac9304eeb", + "name": "brgWanMacAddress", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "59bcbefc-9736-11e8-8caf-022ac9304eeb", + "name": "customerLocation", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "dummy", + "valueInfo": { + + }, + "id": "59bcbefe-9736-11e8-8caf-022ac9304eeb", + "name": "homingService", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "regionOne", + "valueInfo": { + + }, + "id": "59bcbf00-9736-11e8-8caf-022ac9304eeb", + "name": "cloudOwner", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "aaa", + "valueInfo": { + + }, + "id": "59bcbf02-9736-11e8-8caf-022ac9304eeb", + "name": "cloudRegionId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "59bcbf04-9736-11e8-8caf-022ac9304eeb", + "name": "homingModelIds", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "1707", + "valueInfo": { + + }, + "id": "59bcbf06-9736-11e8-8caf-022ac9304eeb", + "name": "sdncVersion", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "PT30S", + "valueInfo": { + + }, + "id": "59bdf788-9736-11e8-8caf-022ac9304eeb", + "name": "aaiDistDelay", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "Basic QlBFTENsaWVudDpwYXNzd29yZDEk", + "valueInfo": { + + }, + "id": "59c34ebf-9736-11e8-8caf-022ac9304eeb", + "name": "BasicAuthHeaderValueDB", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "UUI", + "valueInfo": { + + }, + "id": "59c375d1-9736-11e8-8caf-022ac9304eeb", + "name": "source", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "Demonstration", + "valueInfo": { + + }, + "id": "59c39ce4-9736-11e8-8caf-022ac9304eeb", + "name": "globalCustomerId", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "vCPE", + "valueInfo": { + + }, + "id": "59c39ce6-9736-11e8-8caf-022ac9304eeb", + "name": "subscriptionServiceType", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "false", + "valueInfo": { + + }, + "id": "59c3c3f8-9736-11e8-8caf-022ac9304eeb", + "name": "disableRollback", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"globalSubscriberId\":\"Demonstration\"}", + "valueInfo": { + + }, + "id": "59c3eb0b-9736-11e8-8caf-022ac9304eeb", + "name": "subscriberInfo", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Object", + "value": { + "Homing_Solution": "dummy" + }, + "valueInfo": { + "objectTypeName": "java.util.LinkedHashMap", + "serializationDataFormat": "application/x-java-serialized-object" + }, + "id": "59ca7ac1-9736-11e8-8caf-022ac9304eeb", + "name": "serviceInputParams", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "<request-info xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">\n <request-id>55b3f0ea-70c5-4965-9e00-df77ed1552a3</request-id>\n <action>CREATE</action>\n <source>UUI</source>\n </request-info>", + "valueInfo": { + + }, + "id": "59cb3e15-9736-11e8-8caf-022ac9304eeb", + "name": "CVRCS_requestInfo", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "202", + "valueInfo": { + + }, + "id": "59d1f4d8-9736-11e8-8caf-022ac9304eeb", + "name": "AFRFLOWResponseCode", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"requestReferences\":{\"instanceId\":\"744fee42-8e20-4152-ad75-17fb1ebfc5b2\",\"requestId\":\"55b3f0ea-70c5-4965-9e00-df77ed1552a3\"}}", + "valueInfo": { + + }, + "id": "59d1f4da-9736-11e8-8caf-022ac9304eeb", + "name": "AFRFLOWResponse", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "Success", + "valueInfo": { + + }, + "id": "59d1f4dc-9736-11e8-8caf-022ac9304eeb", + "name": "AFRFLOWStatus", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"requestReferences\":{\"instanceId\":\"744fee42-8e20-4152-ad75-17fb1ebfc5b2\",\"requestId\":\"55b3f0ea-70c5-4965-9e00-df77ed1552a3\"}}", + "valueInfo": { + + }, + "id": "59d1f4de-9736-11e8-8caf-022ac9304eeb", + "name": "WorkflowResponse", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "true", + "valueInfo": { + + }, + "id": "59d3c9a0-9736-11e8-8caf-022ac9304eeb", + "name": "AFRFLOWWorkflowResponseSent", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\"modelInvariantUuid\":\"8e2be9fa-fffb-4e23-89a5-65497709f507\",\"modelName\":\"PNFSERVICE\",\"modelVersion\":\"1.0\",\"modelType\":\"service\",\"modelUuid\":\"4f7afc34-e475-41ca-be73-40f9a0f7ffa4\"}", + "valueInfo": { + + }, + "id": "59d6d6e5-9736-11e8-8caf-022ac9304eeb", + "name": "serviceModelInfo", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Object", + "value": null, + "valueInfo": null, + "id": "5aea904b-9736-11e8-8caf-022ac9304eeb", + "name": "serviceDecomposition", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": "Cannot deserialize object in variable 'serviceDecomposition': ENGINE-09017 Cannot load class 'org.openecomp.mso.bpmn.core.domain.ServiceDecomposition': org.openecomp.mso.bpmn.core.domain.ServiceDecomposition from [Module \"deployment.camunda-rest-api-1.2.0-SNAPSHOT.war:main\" from Service Module Loader]", + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Null", + "value": null, + "valueInfo": { + + }, + "id": "5aea904f-9736-11e8-8caf-022ac9304eeb", + "name": "WorkflowException", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Object", + "value": [], + "valueInfo": { + "objectTypeName": "java.util.ArrayList", + "serializationDataFormat": "application/x-java-serialized-object" + }, + "id": "5aedc4a4-9736-11e8-8caf-022ac9304eeb", + "name": "vnfList", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "[]", + "valueInfo": { + + }, + "id": "5aedc4a8-9736-11e8-8caf-022ac9304eeb", + "name": "vnfListString", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Integer", + "value": 0, + "valueInfo": { + + }, + "id": "5aedebba-9736-11e8-8caf-022ac9304eeb", + "name": "CVRCS_VNFsCount", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "5aedebbc-9736-11e8-8caf-022ac9304eeb", + "name": "vnfModelInfo", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "", + "valueInfo": { + + }, + "id": "5aedebbe-9736-11e8-8caf-022ac9304eeb", + "name": "vnfModelInfoString", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "{\n \"serviceInstance\" : {\n \"instanceId\" : \"744fee42-8e20-4152-ad75-17fb1ebfc5b2\"\n },\n \"serviceNetworks\" : [ ],\n \"serviceVnfs\" : [ ],\n \"serviceAllottedResources\" : [ ],\n \"modelInfo\" : {\n \"modelName\" : \"PNFSERVIVE\",\n \"modelUuid\" : \"4f7afc34-e475-41ca-be73-40f9a0f7ffa4\",\n \"modelInvariantUuid\" : \"8e2be9fa-fffb-4e23-89a5-65497709f507\",\n \"modelVersion\" : \"1.0\",\n \"modelCustomizationUuid\" : \"\",\n \"modelCustomizationName\" : \"\",\n \"modelInstanceName\" : \"\",\n \"modelType\" : \"\"\n },\n \"serviceType\" : \"aaa\",\n \"serviceRole\" : \"aaa\",\n \"vnfResource\" : [ ],\n \"networkResource\" : [ ],\n \"allottedResource\" : [ ]\n}", + "valueInfo": { + + }, + "id": "5af083d4-9736-11e8-8caf-022ac9304eeb", + "name": "serviceDecompositionString", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Null", + "value": null, + "valueInfo": { + + }, + "id": "5e7eb37e-9736-11e8-8caf-022ac9304eeb", + "name": "rolledBack", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + }, + { + "type": "Object", + "value": null, + "valueInfo": null, + "id": "5e7eda91-9736-11e8-8caf-022ac9304eeb", + "name": "DCRESI_rollbackData", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": "Cannot deserialize object in variable 'DCRESI_rollbackData': ENGINE-09017 Cannot load class 'org.openecomp.mso.bpmn.core.RollbackData': org.openecomp.mso.bpmn.core.RollbackData from [Module \"deployment.camunda-rest-api-1.2.0-SNAPSHOT.war:main\" from Service Module Loader]", + "tenantId": null, + "state": "CREATED" + }, + { + "type": "String", + "value": "\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:req=\"http://org.openecomp.mso/requestsdb\">\n <soapenv:Header/>\n <soapenv:Body>\n <req:updateInfraRequest>\n <requestId>55b3f0ea-70c5-4965-9e00-df77ed1552a3</requestId>\n <lastModifiedBy>BPEL</lastModifiedBy>\n <serviceInstanceId>744fee42-8e20-4152-ad75-17fb1ebfc5b2</serviceInstanceId>\n <serviceInstanceName>AFRPOSTMAN51</serviceInstanceName>\n </req:updateInfraRequest>\n </soapenv:Body>\n </soapenv:Envelope>\n ", + "valueInfo": { + + }, + "id": "5e825d08-9736-11e8-8caf-022ac9304eeb", + "name": "CVRCS_setUpdateDbInstancePayload", + "processDefinitionKey": "AFRFLOW", + "processDefinitionId": "AFRFLOW:1:c6eea1b7-9722-11e8-8caf-022ac9304eeb", + "processInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "executionId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "activityInstanceId": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "caseDefinitionKey": null, + "caseDefinitionId": null, + "caseInstanceId": null, + "caseExecutionId": null, + "taskId": null, + "errorMessage": null, + "tenantId": null, + "state": "CREATED" + } +]
\ No newline at end of file diff --git a/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/singleprocessInstance.json b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/singleprocessInstance.json new file mode 100644 index 0000000000..d1e70e1957 --- /dev/null +++ b/so-monitoring/so-monitoring-service/src/test/resources/camundaResponses/singleprocessInstance.json @@ -0,0 +1,19 @@ +{ + "id": "5956a99d-9736-11e8-8caf-022ac9304eeb", + "businessKey": "203b9171-c113-435e-aaa6-f47cb836e3cb", + "processDefinitionId": "EricssonNetworkSliceV1:3:28f9e0fc-9b00-11e8-a57a-022ac90273ed", + "processDefinitionKey": "EricssonNetworkSliceV1", + "processDefinitionName": "EricssonNetworkSliceV1", + "processDefinitionVersion": 3, + "startTime": "2018-08-14T09:52:46.105+0000", + "endTime": "2018-08-14T09:53:50.499+0000", + "durationInMillis": 64394, + "startUserId": null, + "startActivityId": "createVCPE_startEvent", + "deleteReason": null, + "superProcessInstanceId": null, + "superCaseInstanceId": null, + "caseInstanceId": null, + "tenantId": null, + "state": "COMPLETED" +}
\ No newline at end of file |