Containerization feature of SO
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18
Issue-ID: SO-670
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ArchiveInfraRequestsScheduler.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ArchiveInfraRequestsScheduler.java
new file mode 100644
index 0000000..9a7382f
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ArchiveInfraRequestsScheduler.java
@@ -0,0 +1,156 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.adapters.requestsdb;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.onap.so.db.request.beans.ArchivedInfraRequests;
+import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.data.repository.ArchivedInfraRequestsRepository;
+import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository;
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import net.javacrumbs.shedlock.core.SchedulerLock;
+
+@Component
+public class ArchiveInfraRequestsScheduler {
+
+ private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, ArchiveInfraRequestsScheduler.class);
+
+ @Autowired
+ private InfraActiveRequestsRepository infraActiveRepo;
+ @Autowired
+ private ArchivedInfraRequestsRepository archivedInfraRepo;
+
+ @Value("${mso.infra-requests.archived.period}")
+ private int archivedPeriod;
+
+ /**
+ * Runs the scheduler nightly
+ * [Seconds] [Minutes] [Hours] [Day of month] [Month] [Day of week] [Year]
+ */
+ @Scheduled(cron="0 0 1 * * ?")
+ @SchedulerLock(name = "archiveInfraRequestsScheduler")
+ public void infraRequestsScheduledTask() {
+ logger.debug("Start of archiveInfraRequestsScheduler");
+
+ Date currentDate= new Date();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(currentDate);
+ calendar.add(Calendar.DATE, -archivedPeriod);
+ Date archivingDate = calendar.getTime();
+
+ logger.debug("Date before 6 months: "+ (calendar.get(Calendar.MONTH) + 1) + "-"
+ + calendar.get(Calendar.DATE) + "-" + calendar.get(Calendar.YEAR));
+
+ List<InfraActiveRequests> requestsByEndTime = new ArrayList<>();
+ PageRequest pageRequest = new PageRequest(0, 100);
+ do {
+ requestsByEndTime = infraActiveRepo.findByEndTimeLessThan(archivingDate, pageRequest);
+ logger.debug(requestsByEndTime.size() + " requests to be archived based on End Time" );
+ archiveInfraRequests(requestsByEndTime);
+ } while(requestsByEndTime.size() > 0);
+
+ List<InfraActiveRequests> requestsByStartTime = new ArrayList<>();
+ do {
+ requestsByStartTime = infraActiveRepo.findByStartTimeLessThanAndEndTime(archivingDate, null, pageRequest);
+ logger.debug(requestsByEndTime.size() + " requests to be archived based on Start Time" );
+ archiveInfraRequests(requestsByStartTime);
+ } while(requestsByStartTime.size() > 0);
+
+ logger.debug("End of archiveInfraRequestsScheduler");
+ }
+
+ protected void archiveInfraRequests(List<InfraActiveRequests> requests) {
+ List<ArchivedInfraRequests> newArchivedReqs = new ArrayList<>();
+ List<InfraActiveRequests> oldInfraReqs = new ArrayList<>();
+
+ for(InfraActiveRequests iar: requests) {
+ ArchivedInfraRequests archivedInfra = new ArchivedInfraRequests();
+ try {
+ archivedInfra.setAaiServiceId(iar.getAaiServiceId());
+ archivedInfra.setAction(iar.getAction());
+ archivedInfra.setAicCloudRegion(iar.getAicCloudRegion());
+ archivedInfra.setAicNodeClli(iar.getAicNodeClli());
+ archivedInfra.setCallBackUrl(iar.getCallBackUrl());
+ archivedInfra.setClientRequestId(iar.getClientRequestId());
+ archivedInfra.setConfigurationId(iar.getConfigurationId());
+ archivedInfra.setConfigurationName(iar.getConfigurationName());
+ archivedInfra.setCorrelator(iar.getCorrelator());
+ archivedInfra.setEndTime(iar.getEndTime());
+ archivedInfra.setLastModifiedBy(iar.getLastModifiedBy());
+ archivedInfra.setNetworkId(iar.getNetworkId());
+ archivedInfra.setNetworkName(iar.getNetworkName());
+ archivedInfra.setNetworkType(iar.getNetworkType());
+ archivedInfra.setOperationalEnvId(iar.getOperationalEnvId());
+ archivedInfra.setOperationalEnvName(iar.getOperationalEnvName());
+ archivedInfra.setProgress(iar.getProgress());
+ archivedInfra.setProvStatus(iar.getProvStatus());
+ archivedInfra.setRequestAction(iar.getRequestAction());
+ archivedInfra.setRequestBody(iar.getRequestBody());
+ archivedInfra.setRequestId(iar.getRequestId());
+ archivedInfra.setRequestorId(iar.getRequestorId());
+ archivedInfra.setRequestScope(iar.getRequestScope());
+ archivedInfra.setRequestStatus(iar.getRequestStatus());
+ archivedInfra.setRequestType(iar.getRequestType());
+ archivedInfra.setResponseBody(iar.getResponseBody());
+ archivedInfra.setServiceInstanceId(iar.getServiceInstanceId());
+ archivedInfra.setServiceInstanceName(iar.getServiceInstanceName());
+ archivedInfra.setServiceType(iar.getServiceType());
+ archivedInfra.setSource(iar.getSource());
+ archivedInfra.setStartTime(iar.getStartTime());
+ archivedInfra.setStatusMessage(iar.getStatusMessage());
+ archivedInfra.setTenantId(iar.getTenantId());
+ archivedInfra.setVfModuleId(iar.getVfModuleId());
+ archivedInfra.setVfModuleModelName(iar.getVfModuleModelName());
+ archivedInfra.setVfModuleName(iar.getVfModuleName());
+ archivedInfra.setVnfId(iar.getVnfId());
+ archivedInfra.setVnfName(iar.getVnfName());
+ archivedInfra.setVnfOutputs(iar.getVnfOutputs());
+ archivedInfra.setVnfParams(iar.getVnfParams());
+ archivedInfra.setVnfType(iar.getVnfType());
+ archivedInfra.setVolumeGroupId(iar.getVolumeGroupId());
+ archivedInfra.setVolumeGroupName(iar.getVolumeGroupName());
+
+ newArchivedReqs.add(archivedInfra);
+ oldInfraReqs.add(iar);
+ } catch(Exception e) {
+ logger.error(e);
+ logger.error(MessageEnum.RA_GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.UnknownError, e.getMessage());
+ }
+ }
+
+ logger.info("Creating archivedInfraRequest records: " + newArchivedReqs.size());
+ archivedInfraRepo.save(newArchivedReqs);
+
+ logger.info("Deleting InfraActiveRequest records: "+ oldInfraReqs.size());
+ infraActiveRepo.delete(oldInfraReqs);
+ }
+}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapter.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapter.java
new file mode 100644
index 0000000..e28bdb2
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapter.java
@@ -0,0 +1,102 @@
+/*-
+ * ============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.adapters.requestsdb;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlElement;
+
+import org.onap.so.adapters.requestsdb.exceptions.MsoRequestsDbException;
+import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+
+/**
+ * MSO Request DB Adapter Web Service
+ */
+@WebService(name = "RequestsDbAdapter", targetNamespace = "http://org.onap.so/requestsdb")
+public interface MsoRequestsDbAdapter {
+
+ @WebMethod
+ public void updateInfraRequest(@WebParam(name = "requestId") @XmlElement(required = true) String requestId,
+ @WebParam(name = "lastModifiedBy") @XmlElement(required = true) String lastModifiedBy,
+ @WebParam(name = "statusMessage") @XmlElement(required = false) String statusMessage,
+ @WebParam(name = "responseBody") @XmlElement(required = false) String responseBody,
+ @WebParam(name = "requestStatus") @XmlElement(required = false) RequestStatusType requestStatus,
+ @WebParam(name = "progress") @XmlElement(required = false) String progress,
+ @WebParam(name = "vnfOutputs") @XmlElement(required = false) String vnfOutputs,
+ @WebParam(name = "serviceInstanceId") @XmlElement(required = false) String serviceInstanceId,
+ @WebParam(name = "networkId") @XmlElement(required = false) String networkId,
+ @WebParam(name = "vnfId") @XmlElement(required = false) String vnfId,
+ @WebParam(name = "vfModuleId") @XmlElement(required = false) String vfModuleId,
+ @WebParam(name = "volumeGroupId") @XmlElement(required = false) String volumeGroupId,
+ @WebParam(name = "serviceInstanceName") @XmlElement(required = false) String serviceInstanceName,
+ @WebParam(name = "configurationId") @XmlElement(required = false) String configurationId,
+ @WebParam(name = "configurationName") @XmlElement(required = false) String configurationName,
+ @WebParam(name = "vfModuleName") @XmlElement(required = false) String vfModuleName)
+ throws MsoRequestsDbException;
+
+ @WebMethod
+ public InfraActiveRequests getInfraRequest(
+ @WebParam(name = "requestId") @XmlElement(required = true) String requestId) throws MsoRequestsDbException;
+
+ @WebMethod
+ public boolean getSiteStatus(@WebParam(name = "siteName") @XmlElement(required = true) String siteName);
+
+ @WebMethod
+ public void updateServiceOperationStatus(
+ @WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
+ @WebParam(name = "operationId") @XmlElement(required = false) String operationId,
+ @WebParam(name = "operationType") @XmlElement(required = false) String operationType,
+ @WebParam(name = "userId") @XmlElement(required = false) String userId,
+ @WebParam(name = "result") @XmlElement(required = false) String result,
+ @WebParam(name = "operationContent") @XmlElement(required = false) String operationContent,
+ @WebParam(name = "progress") @XmlElement(required = false) String progress,
+ @WebParam(name = "reason") @XmlElement(required = false) String reason) throws MsoRequestsDbException;
+
+ @WebMethod
+ public void initResourceOperationStatus(@WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
+ @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
+ @WebParam(name = "operationType") @XmlElement(required = true) String operationType,
+ @WebParam(name = "resourceTemplateUUIDs") @XmlElement(required = true) String resourceTemplateUUIDs)
+ throws MsoRequestsDbException;
+
+ @WebMethod
+ public ResourceOperationStatus getResourceOperationStatus(
+ @WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
+ @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
+ @WebParam(name = "resourceTemplateUUID") @XmlElement(required = true) String resourceTemplateUUID)
+ throws MsoRequestsDbException;
+
+ @WebMethod
+ public void updateResourceOperationStatus(
+ @WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
+ @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
+ @WebParam(name = "resourceTemplateUUID") @XmlElement(required = true) String resourceTemplateUUID,
+ @WebParam(name = "operType") @XmlElement(required = false) String operType,
+ @WebParam(name = "resourceInstanceID") @XmlElement(required = false) String resourceInstanceID,
+ @WebParam(name = "jobId") @XmlElement(required = false) String jobId,
+ @WebParam(name = "status") @XmlElement(required = false) String status,
+ @WebParam(name = "progress") @XmlElement(required = false) String progress,
+ @WebParam(name = "errorCode") @XmlElement(required = false) String errorCode,
+ @WebParam(name = "statusDescription") @XmlElement(required = false) String statusDescription)
+ throws MsoRequestsDbException;
+}
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapterImpl.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
new file mode 100644
index 0000000..2f6a583
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
@@ -0,0 +1,326 @@
+/*-
+ * ============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.adapters.requestsdb;
+
+import java.sql.Timestamp;
+
+import javax.jws.WebService;
+import javax.transaction.Transactional;
+
+import org.onap.so.adapters.requestsdb.exceptions.MsoRequestsDbException;
+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.db.request.beans.ResourceOperationStatusId;
+import org.onap.so.db.request.beans.SiteStatus;
+import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository;
+import org.onap.so.db.request.data.repository.OperationStatusRepository;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.onap.so.db.request.data.repository.SiteStatusRepository;
+import org.onap.so.logger.MessageEnum;
+import org.onap.so.logger.MsoLogger;
+import org.onap.so.requestsdb.RequestsDbConstant;
+import org.onap.so.utils.UUIDChecker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+
+@WebService(serviceName = "RequestsDbAdapter", endpointInterface = "org.onap.so.adapters.requestsdb.MsoRequestsDbAdapter", targetNamespace = "http://org.onap.so/requestsdb")
+@Component
+@Primary
+public class MsoRequestsDbAdapterImpl implements MsoRequestsDbAdapter {
+
+ private static final String SUCCESSFUL = "Successful";
+
+ private static final String GET_INFRA_REQUEST = "Get Infra request";
+
+ private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA, MsoRequestsDbAdapterImpl.class);
+
+ @Autowired
+ private InfraActiveRequestsRepository infraActive;
+
+ @Autowired
+ private SiteStatusRepository siteRepo;
+
+ @Autowired
+ private OperationStatusRepository operationStatusRepository;
+
+ @Autowired
+ private ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Transactional
+ @Override
+ public void updateInfraRequest(String requestId, String lastModifiedBy, String statusMessage, String responseBody,
+ RequestStatusType requestStatus, String progress, String vnfOutputs, String serviceInstanceId,
+ String networkId, String vnfId, String vfModuleId, String volumeGroupId, String serviceInstanceName,
+ String configurationId, String configurationName, String vfModuleName) throws MsoRequestsDbException {
+ MsoLogger.setLogContext(requestId, serviceInstanceId);
+ long startTime = System.currentTimeMillis();
+ try {
+ InfraActiveRequests request = infraActive.findOneByRequestIdOrClientRequestId(requestId, requestId);
+ if (request == null) {
+ String error = "Entity not found. Unable to retrieve MSO Infra Requests DB for Request ID " + requestId;
+ throw new MsoRequestsDbException(error);
+ }
+ if (statusMessage != null) {
+ request.setStatusMessage(statusMessage);
+ }
+ if (responseBody != null) {
+ request.setResponseBody(responseBody);
+ }
+ if (requestStatus != null) {
+ request.setRequestStatus(requestStatus.toString());
+ }
+ if (progress != null) {
+ setProgress(progress, request);
+ }
+ if (vnfOutputs != null) {
+ request.setVnfOutputs(vnfOutputs);
+ }
+ if (serviceInstanceId != null) {
+ request.setServiceInstanceId(serviceInstanceId);
+ }
+ if (networkId != null) {
+ request.setNetworkId(networkId);
+ }
+ if (vnfId != null) {
+ request.setVnfId(vnfId);
+ }
+ if (vfModuleId != null) {
+ request.setVfModuleId(vfModuleId);
+ }
+ if (volumeGroupId != null) {
+ request.setVolumeGroupId(volumeGroupId);
+ }
+ if (serviceInstanceName != null) {
+ request.setServiceInstanceName(serviceInstanceName);
+ }
+ if (vfModuleName != null) {
+ request.setVfModuleName(vfModuleName);
+ }
+ if (configurationId != null) {
+ request.setConfigurationId(configurationId);
+ }
+ if (configurationName != null) {
+ request.setConfigurationName(configurationName);
+ }
+ if (requestStatus == RequestStatusType.COMPLETE || requestStatus == RequestStatusType.FAILED) {
+ Timestamp nowTimeStamp = new Timestamp(System.currentTimeMillis());
+ request.setEndTime(nowTimeStamp);
+ }
+ request.setLastModifiedBy(lastModifiedBy);
+ infraActive.save(request);
+
+ } catch (Exception e) {
+ String error = "Error retrieving MSO Infra Requests DB for Request ID " + requestId;
+ logger.error("Error " + MsoLogger.ErrorCode.BusinessProcesssError + " for " + GET_INFRA_REQUEST + " - " + MessageEnum.RA_DB_REQUEST_NOT_EXIST + " - " + error, e);
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, error);
+ throw new MsoRequestsDbException(error, e);
+ }
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, SUCCESSFUL);
+
+ }
+
+ private void setProgress(String progress, InfraActiveRequests request) {
+ try {
+ request.setProgress(Long.parseLong(progress));
+ } catch (NumberFormatException e) {
+ logger.warnSimple("UpdateInfraRequest", "Invalid value sent for progress");
+ }
+ }
+
+ @Override
+ @Transactional
+ public InfraActiveRequests getInfraRequest(String requestId) throws MsoRequestsDbException {
+ long startTime = System.currentTimeMillis();
+ MsoLogger.setLogContext(requestId, null);
+
+ logger.debug("Call to MSO Infra RequestsDb adapter get method with request Id: " + requestId);
+
+ InfraActiveRequests request = null;
+ try {
+
+ request = infraActive.findOneByRequestIdOrClientRequestId(requestId, requestId);
+ if (request == null) {
+ String error = "Entity not found. Unable to retrieve MSO Infra Requests DB for Request ID " + requestId;
+ throw new MsoRequestsDbException(error);
+ }
+ } catch (Exception e) {
+ String error = "Error retrieving MSO Infra Requests DB for Request ID " + requestId;
+ logger.error("Error " + MsoLogger.ErrorCode.BusinessProcesssError + " for " + GET_INFRA_REQUEST + " - " + MessageEnum.RA_DB_REQUEST_NOT_EXIST + " - " + error, e);
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, error);
+ throw new MsoRequestsDbException(error, e);
+ }
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, SUCCESSFUL);
+ return request;
+ }
+
+ /**
+ * Get SiteStatus by SiteName.
+ *
+ * @param siteName
+ * The unique name of the site
+ * @return Status of that site
+ */
+ @Override
+ @Transactional
+ public boolean getSiteStatus(String siteName) {
+ UUIDChecker.generateUUID(logger);
+ long startTime = System.currentTimeMillis();
+ SiteStatus siteStatus;
+ logger.debug("Request database - get Site Status with Site name:" + siteName);
+
+ siteStatus = siteRepo.findOneBySiteName(siteName);
+ if (siteStatus == null) {
+ // if not exist in DB, it means the site is not disabled, thus
+ // return true
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, SUCCESSFUL);
+ return true;
+ } else {
+ logger.recordAuditEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, SUCCESSFUL);
+ return siteStatus.getStatus();
+ }
+ }
+
+ /**
+ * update operation status <br>
+ *
+ * @param serviceId
+ * @param operationId
+ * @param operationType
+ * @param userId
+ * @param result
+ * @param operationContent
+ * @param progress
+ * @param reason
+ * @throws MsoRequestsDbException
+ * @since ONAP Amsterdam Release
+ */
+ @Override
+ @Transactional
+ public void updateServiceOperationStatus(String serviceId, String operationId, String operationType, String userId,
+ String result, String operationContent, String progress, String reason) throws MsoRequestsDbException {
+ OperationStatus operStatus = operationStatusRepository.findOneByServiceIdAndOperationId(serviceId, operationId);
+ if (operStatus == null) {
+ String error = "Entity not found. Unable to retrieve OperationStatus Object ServiceId: " + serviceId + " operationId: "
+ + operationId;
+ MsoRequestsDbException e = new MsoRequestsDbException(error);
+ logger.error("Error "+ MsoLogger.ErrorCode.BusinessProcesssError + " - " + MessageEnum.RA_DB_REQUEST_NOT_EXIST + " - " + error, e);
+ throw e;
+ }
+
+ operStatus.setUserId(userId);
+ operStatus.setOperation(operationType);
+ operStatus.setReason(reason);
+ operStatus.setProgress(progress);
+ operStatus.setResult(result);
+ operStatus.setOperationContent(operationContent);
+ operStatus.setResult(result);
+ operationStatusRepository.save(operStatus);
+ }
+
+ /**
+ * init the operation status of all the resources <br>
+ *
+ * @param serviceId
+ * the service Id
+ * @param operationId
+ * the operation Id
+ * @param operationType
+ * the operationType
+ * @param resourceTemplateUUIDs
+ * the resources, the UUID is split by ":"
+ * @throws MsoRequestsDbException
+ * @since ONAP Amsterdam Release
+ */
+ @Override
+ @Transactional
+ public void initResourceOperationStatus(String serviceId, String operationId, String operationType,
+ String resourceTemplateUUIDs) throws MsoRequestsDbException {
+ String[] resourceLst = resourceTemplateUUIDs.split(":");
+ for (String resource : resourceLst) {
+ if ("".equals(resource)) {
+ continue;
+ }
+ ResourceOperationStatus resourceStatus = new ResourceOperationStatus();
+ resourceStatus.setOperationId(operationId);
+ resourceStatus.setServiceId(serviceId);
+ resourceStatus.setResourceTemplateUUID(resource);
+ resourceStatus.setOperType(operationType);
+ resourceStatus.setStatus(RequestsDbConstant.Status.PROCESSING);
+ resourceStatus.setStatusDescription("Waiting for start");
+ resourceOperationStatusRepository.save(resourceStatus);
+
+ }
+ }
+
+ /**
+ * get resource operation status <br>
+ *
+ * @param serviceId
+ * @param operationId
+ * @param resourceTemplateUUID
+ * @return
+ * @throws MsoRequestsDbException
+ * @since ONAP Amsterdam Release
+ */
+ @Override
+ public ResourceOperationStatus getResourceOperationStatus(String serviceId, String operationId,
+ String resourceTemplateUUID) throws MsoRequestsDbException {
+
+ return resourceOperationStatusRepository
+ .findOne(new ResourceOperationStatusId(serviceId, operationId, resourceTemplateUUID));
+ }
+
+ /**
+ * update resource operation status <br>
+ *
+ * @param serviceId
+ * @param operationId
+ * @param resourceTemplateUUID
+ * @param operationType
+ * @param resourceInstanceID
+ * @param jobId
+ * @param status
+ * @param progress
+ * @param errorCode
+ * @param statusDescription
+ * @throws MsoRequestsDbException
+ * @since ONAP Amsterdam Release
+ */
+ @Override
+ public void updateResourceOperationStatus(String serviceId, String operationId, String resourceTemplateUUID,
+ String operationType, String resourceInstanceID, String jobId, String status, String progress,
+ String errorCode, String statusDescription) throws MsoRequestsDbException {
+ ResourceOperationStatus resStatus = new ResourceOperationStatus();
+ resStatus.setServiceId(serviceId);
+ resStatus.setOperationId(operationId);
+ resStatus.setResourceTemplateUUID(resourceTemplateUUID);
+ resStatus.setOperType(operationType);
+ resStatus.setResourceInstanceID(resourceInstanceID);
+ resStatus.setJobId(jobId);
+ resStatus.setStatus(status);
+ resStatus.setProgress(progress);
+ resStatus.setErrorCode(errorCode);
+ resStatus.setStatusDescription(statusDescription);
+ resourceOperationStatusRepository.save(resStatus);
+ }
+}
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/RequestStatusType.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/RequestStatusType.java
similarity index 97%
rename from adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/RequestStatusType.java
rename to adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/RequestStatusType.java
index cebde1a..1d5b892 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/RequestStatusType.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/RequestStatusType.java
@@ -26,7 +26,7 @@
//
-package org.openecomp.mso.adapters.requestsdb;
+package org.onap.so.adapters.requestsdb;
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/ResponseStatus.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ResponseStatus.java
similarity index 91%
rename from adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/ResponseStatus.java
rename to adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ResponseStatus.java
index 152eb5c..5ee7119 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/ResponseStatus.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/ResponseStatus.java
@@ -18,16 +18,11 @@
* ============LICENSE_END=========================================================
*/
-package org.openecomp.mso.adapters.requestsdb;
-
-
+package org.onap.so.adapters.requestsdb;
/*
* Enum for Status values returned by API Handler to Tail-F
*/
public enum ResponseStatus {
- SENDING_FINAL_NOTIFY,
- SUCCESS,
- FAILED,
- TIMEOUT
-}
+ SENDING_FINAL_NOTIFY, SUCCESS, FAILED, TIMEOUT
+}
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java
new file mode 100644
index 0000000..9f52160
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/WebSecurityConfigImpl.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.adapters.requestsdb;
+
+import org.onap.so.security.MSOSpringFirewall;
+import org.onap.so.security.WebSecurityConfig;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.web.firewall.StrictHttpFirewall;
+import org.springframework.util.StringUtils;
+
+@EnableWebSecurity
+public class WebSecurityConfigImpl extends WebSecurityConfig {
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ http.csrf().disable()
+ .authorizeRequests()
+ .antMatchers("/manage/health","/manage/info").permitAll()
+ .antMatchers("/**").hasAnyRole(StringUtils.collectionToDelimitedString(getRoles(),",").toString())
+ .and()
+ .httpBasic();
+ }
+
+ @Override
+ public void configure(WebSecurity web) throws Exception {
+ super.configure(web);
+ StrictHttpFirewall firewall = new MSOSpringFirewall();
+ web.httpFirewall(firewall);
+ }
+
+}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java
new file mode 100644
index 0000000..a7e9cab
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java
@@ -0,0 +1,78 @@
+/*-
+ * ============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.adapters.requestsdb.application;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.feature.LoggingFeature;
+import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
+import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.transport.servlet.CXFServlet;
+import org.onap.so.adapters.requestsdb.MsoRequestsDbAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+@Configuration
+public class CXFConfiguration {
+
+ @Autowired
+ private Bus bus;
+
+ @Autowired
+ private MsoRequestsDbAdapter requestDbAdapterImpl;
+
+
+
+ @Bean
+ public ServletRegistrationBean cxfServlet() {
+
+ return new ServletRegistrationBean(new CXFServlet(), "/services/*");
+ }
+
+ @Bean
+ public Endpoint requestEndpointk() {
+ EndpointImpl endpoint = new EndpointImpl(bus, requestDbAdapterImpl);
+ endpoint.publish("/RequestsDbAdapter");
+ LoggingFeature logFeature = new LoggingFeature();
+ logFeature.setPrettyLogging(true);
+ logFeature.initialize(bus);
+ endpoint.getFeatures().add(logFeature);
+ return endpoint;
+ }
+
+ @Bean
+ public Swagger2Feature createSwaggerFeature() {
+ Swagger2Feature swagger2Feature = new Swagger2Feature();
+ swagger2Feature.setPrettyPrint(true);
+ swagger2Feature.setTitle("SO Request Adapter");
+ swagger2Feature.setContact("The ONAP SO team");
+ swagger2Feature.setDescription("This project is the SO Orchestration Engine");
+ swagger2Feature.setVersion("1.0.0");
+ swagger2Feature.setResourcePackage("org.onap.so.adapters.requestdb");
+ swagger2Feature.setScan(true);
+ return swagger2Feature;
+ }
+
+}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java
new file mode 100644
index 0000000..21582a1
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/MSORequestDBApplication.java
@@ -0,0 +1,70 @@
+/*-
+ * ============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.adapters.requestsdb.application;
+
+import java.time.Duration;
+
+import javax.sql.DataSource;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+
+import net.javacrumbs.shedlock.core.LockProvider;
+import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
+import net.javacrumbs.shedlock.spring.ScheduledLockConfiguration;
+import net.javacrumbs.shedlock.spring.ScheduledLockConfigurationBuilder;
+
+/**
+ * @since Version 1.0
+ *
+ */
+
+@SpringBootApplication(scanBasePackages = { "org.onap.so"})
+public class MSORequestDBApplication {
+
+ private static final String LOGS_DIR = "logs_dir";
+
+ private static void setLogsDir() {
+ if (System.getProperty(LOGS_DIR) == null) {
+ System.getProperties().setProperty(LOGS_DIR, "./logs/reqdb/");
+ }
+ }
+
+ public static void main(String... args) {
+ SpringApplication.run(MSORequestDBApplication.class, args);
+ setLogsDir();
+ }
+
+ @Bean
+ public LockProvider lockProvider(DataSource dataSource) {
+ return new JdbcTemplateLockProvider(dataSource);
+ }
+
+ @Bean
+ public ScheduledLockConfiguration taskScheduler(LockProvider lockProvider) {
+ return ScheduledLockConfigurationBuilder
+ .withLockProvider(lockProvider)
+ .withPoolSize(10)
+ .withDefaultLockAtMostFor(Duration.ofMinutes(10))
+ .build();
+ }
+}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/RequestDBConfig.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/RequestDBConfig.java
new file mode 100644
index 0000000..bc1e17b
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/RequestDBConfig.java
@@ -0,0 +1,80 @@
+/*-
+ * ============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.adapters.requestsdb.application;
+
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@Profile({"!test"})
+@Configuration
+@EnableTransactionManagement
+@EnableJpaRepositories(
+ entityManagerFactoryRef = "requestEntityManagerFactory",transactionManagerRef = "requestTransactionManager",
+ basePackages = { "org.onap.so.db.request.data.repository" }
+ )
+public class RequestDBConfig {
+
+ @Primary
+ @Bean(name = "requestDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource")
+ public DataSource dataSource() {
+ return DataSourceBuilder.create().build();
+ }
+
+ @Primary
+ @Bean(name = "requestEntityManagerFactory")
+ public LocalContainerEntityManagerFactoryBean
+ entityManagerFactory(
+ EntityManagerFactoryBuilder builder,
+ @Qualifier("requestDataSource") DataSource dataSource
+ ) {
+ return builder
+ .dataSource(dataSource)
+ .packages("org.onap.so.db.request.beans")
+ .persistenceUnit("requestDB")
+ .build();
+ }
+
+ @Primary
+ @Bean(name = "requestTransactionManager")
+ public PlatformTransactionManager transactionManager(
+ @Qualifier("requestEntityManagerFactory") EntityManagerFactory
+ entityManagerFactory
+ ) {
+ return new JpaTransactionManager(entityManagerFactory);
+ }
+
+}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbException.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbException.java
similarity index 88%
rename from adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbException.java
rename to adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbException.java
index 3d90978..6607611 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbException.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbException.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.openecomp.mso.adapters.requestsdb.exceptions;
+package org.onap.so.adapters.requestsdb.exceptions;
@@ -30,7 +30,7 @@
*
*
*/
-@WebFault (name="MsoRequestsDbException", faultBean="org.openecomp.mso.adapters.requestsdb.exceptions.MsoRequestsDbExceptionBean", targetNamespace="http://org.openecomp.mso/requestsdb")
+@WebFault (name="MsoRequestsDbException", faultBean="org.onap.so.adapters.requestsdb.exceptions.MsoRequestsDbExceptionBean", targetNamespace="http://org.onap.so/requestsdb")
public class MsoRequestsDbException extends Exception {
private static final long serialVersionUID = 1L;
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java
similarity index 96%
rename from adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java
rename to adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java
index dce1cf9..c836a6b 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/exceptions/MsoRequestsDbExceptionBean.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.openecomp.mso.adapters.requestsdb.exceptions;
+package org.onap.so.adapters.requestsdb.exceptions;
import java.io.Serializable;
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java
deleted file mode 100644
index 2a74d79..0000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/HealthCheckHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ============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.openecomp.mso.adapters.requestsdb;
-
-
-import javax.ws.rs.GET;
-import javax.ws.rs.HEAD;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Response;
-import org.openecomp.mso.logger.MsoLogger;
-import org.openecomp.mso.HealthCheckUtils;
-import org.openecomp.mso.utils.UUIDChecker;
-
-
-@Path("/")
- public class HealthCheckHandler {
-
- private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
-
- @HEAD
- @GET
- @Path("/healthcheck")
- @Produces("text/html")
- public Response healthcheck (@QueryParam("requestId") String requestId) {
- long startTime = System.currentTimeMillis ();
- MsoLogger.setServiceName ("Healthcheck");
- UUIDChecker.verifyOldUUID(requestId, msoLogger);
- HealthCheckUtils healthCheck = new HealthCheckUtils ();
- if (!healthCheck.siteStatusCheck(msoLogger)) {
- return HealthCheckUtils.HEALTH_CHECK_NOK_RESPONSE;
- }
-
- if (!healthCheck.requestDBCheck (msoLogger, startTime)) {
- return HealthCheckUtils.NOT_STARTED_RESPONSE;
- }
- msoLogger.debug("healthcheck - Successful");
- return HealthCheckUtils.HEALTH_CHECK_RESPONSE;
- }
-
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapter.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapter.java
deleted file mode 100644
index fa9016c..0000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapter.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*-
- * ============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.openecomp.mso.adapters.requestsdb;
-
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.xml.bind.annotation.XmlElement;
-
-import org.openecomp.mso.adapters.requestsdb.exceptions.MsoRequestsDbException;
-import org.openecomp.mso.requestsdb.InfraActiveRequests;
-import org.openecomp.mso.requestsdb.ResourceOperationStatus;
-
-/**
- * MSO Request DB Adapter Web Service
- */
-@WebService(name = "RequestsDbAdapter", targetNamespace = "http://org.openecomp.mso/requestsdb")
-public interface MsoRequestsDbAdapter {
-
- @WebMethod
- public void updateInfraRequest (@WebParam(name = "requestId") @XmlElement(required = true) String requestId,
- @WebParam(name = "lastModifiedBy") @XmlElement(required = true) String lastModifiedBy,
- @WebParam(name = "statusMessage") @XmlElement(required = false) String statusMessage,
- @WebParam(name = "responseBody") @XmlElement(required = false) String responseBody,
- @WebParam(name = "requestStatus") @XmlElement(required = false) RequestStatusType requestStatus,
- @WebParam(name = "progress") @XmlElement(required = false) String progress,
- @WebParam(name = "vnfOutputs") @XmlElement(required = false) String vnfOutputs,
- @WebParam(name = "serviceInstanceId") @XmlElement(required = false) String serviceInstanceId,
- @WebParam(name = "networkId") @XmlElement(required = false) String networkId,
- @WebParam(name = "vnfId") @XmlElement(required = false) String vnfId,
- @WebParam(name = "vfModuleId") @XmlElement(required = false) String vfModuleId,
- @WebParam(name = "volumeGroupId") @XmlElement(required = false) String volumeGroupId,
- @WebParam(name = "serviceInstanceName") @XmlElement(required = false) String serviceInstanceName,
- @WebParam(name = "configurationId") @XmlElement(required = false) String configurationId,
- @WebParam(name = "configurationName") @XmlElement(required = false) String configurationName,
- @WebParam(name = "vfModuleName") @XmlElement(required = false) String vfModuleName) throws MsoRequestsDbException;
-
- @WebMethod
- public InfraActiveRequests getInfraRequest (@WebParam(name="requestId") @XmlElement(required = true) String requestId) throws MsoRequestsDbException;
-
- @WebMethod
- public boolean getSiteStatus (@WebParam(name="siteName") @XmlElement(required = true) String siteName);
-
- @WebMethod
- public void updateServiceOperationStatus (@WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
- @WebParam(name = "operationId") @XmlElement(required = false) String operationId,
- @WebParam(name = "operationType") @XmlElement(required = false) String operationType,
- @WebParam(name = "userId") @XmlElement(required = false) String userId,
- @WebParam(name = "result") @XmlElement(required = false) String result,
- @WebParam(name = "operationContent") @XmlElement(required = false) String operationContent,
- @WebParam(name = "progress") @XmlElement(required = false) String progress,
- @WebParam(name = "reason") @XmlElement(required = false) String reason) throws MsoRequestsDbException;
-
- @WebMethod
- public void initResourceOperationStatus (@WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
- @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
- @WebParam(name = "operationType") @XmlElement(required = true) String operationType,
- @WebParam(name = "resourceTemplateUUIDs") @XmlElement(required = true) String resourceTemplateUUIDs) throws MsoRequestsDbException;
-
- @WebMethod
- public ResourceOperationStatus getResourceOperationStatus (@WebParam(name="serviceId") @XmlElement(required = true) String serviceId,
- @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
- @WebParam(name = "resourceTemplateUUID") @XmlElement(required = true) String resourceTemplateUUID) throws MsoRequestsDbException;
-
- @WebMethod
- public void updateResourceOperationStatus (@WebParam(name = "serviceId") @XmlElement(required = true) String serviceId,
- @WebParam(name = "operationId") @XmlElement(required = true) String operationId,
- @WebParam(name = "resourceTemplateUUID") @XmlElement(required = true) String resourceTemplateUUID,
- @WebParam(name = "operType") @XmlElement(required = false) String operType,
- @WebParam(name = "resourceInstanceID") @XmlElement(required = false) String resourceInstanceID,
- @WebParam(name = "jobId") @XmlElement(required = false) String jobId,
- @WebParam(name = "status") @XmlElement(required = false) String status,
- @WebParam(name = "progress") @XmlElement(required = false) String progress,
- @WebParam(name = "errorCode") @XmlElement(required = false) String errorCode,
- @WebParam(name = "statusDescription") @XmlElement(required = false) String statusDescription) throws MsoRequestsDbException;
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
deleted file mode 100644
index 3dcf69c..0000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*-
- * ============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.openecomp.mso.adapters.requestsdb;
-
-import java.sql.Timestamp;
-
-import javax.jws.WebService;
-
-import org.hibernate.HibernateException;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.openecomp.mso.adapters.requestsdb.exceptions.MsoRequestsDbException;
-import org.openecomp.mso.db.AbstractSessionFactoryManager;
-import org.openecomp.mso.logger.MessageEnum;
-import org.openecomp.mso.logger.MsoLogger;
-import org.openecomp.mso.requestsdb.InfraActiveRequests;
-import org.openecomp.mso.requestsdb.OperationStatus;
-import org.openecomp.mso.requestsdb.RequestsDatabase;
-import org.openecomp.mso.requestsdb.RequestsDbConstant;
-import org.openecomp.mso.requestsdb.RequestsDbSessionFactoryManager;
-import org.openecomp.mso.requestsdb.ResourceOperationStatus;
-import org.openecomp.mso.requestsdb.SiteStatus;
-import org.openecomp.mso.utils.UUIDChecker;
-
-@WebService(serviceName = "RequestsDbAdapter", endpointInterface = "org.openecomp.mso.adapters.requestsdb.MsoRequestsDbAdapter", targetNamespace = "http://org.openecomp.mso/requestsdb")
-public class MsoRequestsDbAdapterImpl implements MsoRequestsDbAdapter {
-
- protected AbstractSessionFactoryManager requestsDbSessionFactoryManager = new RequestsDbSessionFactoryManager ();
-
- private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA);
-
- @Override
- public void updateInfraRequest (String requestId,
- String lastModifiedBy,
- String statusMessage,
- String responseBody,
- RequestStatusType requestStatus,
- String progress,
- String vnfOutputs,
- String serviceInstanceId,
- String networkId,
- String vnfId,
- String vfModuleId,
- String volumeGroupId,
- String serviceInstanceName,
- String configurationId,
- String configurationName,
- String vfModuleName) throws MsoRequestsDbException {
- MsoLogger.setLogContext (requestId, null);
- Session session = requestsDbSessionFactoryManager.getSessionFactory ().openSession ();
- int result = 0;
- long startTime = System.currentTimeMillis ();
- try {
- session.beginTransaction ();
- StringBuilder queryString = new StringBuilder("update InfraActiveRequests set ");
- if (statusMessage != null) {
- queryString.append("statusMessage = :statusMessage, ");
- }
- if (responseBody != null) {
- queryString.append("responseBody = :responseBody, ");
- }
- if (requestStatus != null) {
- queryString.append("requestStatus = :requestStatus, ");
- }
- if (progress != null) {
- queryString.append("progress = :progress, ");
- }
- if (vnfOutputs != null) {
- queryString.append("vnfOutputs = :vnfOutputs, ");
- }
- if (serviceInstanceId != null) {
- queryString.append("serviceInstanceId = :serviceInstanceId, ");
- }
- if (networkId != null) {
- queryString.append("networkId = :networkId, ");
- }
- if (vnfId != null) {
- queryString.append("vnfId = :vnfId, ");
- }
- if (vfModuleId != null) {
- queryString.append("vfModuleId = :vfModuleId, ");
- }
- if (volumeGroupId != null) {
- queryString.append("volumeGroupId = :volumeGroupId, ");
- }
- if (serviceInstanceName != null) {
- queryString.append("serviceInstanceName = :serviceInstanceName, ");
- }
- if (vfModuleName != null) {
- queryString.append("vfModuleName = :vfModuleName, ");
- }
- if (configurationId != null) {
- queryString.append("configurationId = :configurationId, ");
- }
- if (configurationName != null) {
- queryString.append("configurationName = :configurationName, ");
- }
- if (requestStatus == RequestStatusType.COMPLETE || requestStatus == RequestStatusType.FAILED) {
- queryString.append("endTime = :endTime, ");
- } else {
- queryString.append("modifyTime = :modifyTime, ");
- }
- queryString.append("lastModifiedBy = :lastModifiedBy where requestId = :requestId OR clientRequestId = :requestId");
-
- logger.debug("Executing update: " + queryString.toString());
-
- Query query = session.createQuery (queryString.toString());
- query.setParameter ("requestId", requestId);
- if (statusMessage != null) {
- query.setParameter ("statusMessage", statusMessage);
- logger.debug ("StatusMessage in updateInfraRequest is set to: " + statusMessage);
- }
- if (responseBody != null) {
- query.setParameter ("responseBody", responseBody);
- logger.debug ("ResponseBody in updateInfraRequest is set to: " + responseBody);
- }
- if (requestStatus != null) {
- query.setParameter ("requestStatus", requestStatus.toString ());
- logger.debug ("RequestStatus in updateInfraRequest is set to: " + requestStatus.toString());
- }
-
- if (progress != null) {
- query.setParameter ("progress", Long.parseLong (progress));
- logger.debug ("Progress in updateInfraRequest is set to: " + progress);
- }
- if (vnfOutputs != null) {
- query.setParameter ("vnfOutputs", vnfOutputs);
- logger.debug ("VnfOutputs in updateInfraRequest is set to: " + vnfOutputs);
- }
- if (serviceInstanceId != null) {
- query.setParameter ("serviceInstanceId", serviceInstanceId);
- logger.debug ("ServiceInstanceId in updateInfraRequest is set to: " + serviceInstanceId);
- }
- if (networkId != null) {
- query.setParameter ("networkId", networkId);
- logger.debug ("NetworkId in updateInfraRequest is set to: " + networkId);
- }
- if (vnfId != null) {
- query.setParameter ("vnfId", vnfId);
- logger.debug ("VnfId in updateInfraRequest is set to: " + vnfId);
- }
- if (vfModuleId != null) {
- query.setParameter ("vfModuleId", vfModuleId);
- logger.debug ("vfModuleId in updateInfraRequest is set to: " + vfModuleId);
- }
- if (volumeGroupId != null) {
- query.setParameter ("volumeGroupId", volumeGroupId);
- logger.debug ("VolumeGroupId in updateInfraRequest is set to: " + volumeGroupId);
- }
- if (serviceInstanceName != null) {
- query.setParameter ("serviceInstanceName", serviceInstanceName);
- logger.debug ("ServiceInstanceName in updateInfraRequest is set to: " + serviceInstanceName);
- }
- if (vfModuleName != null) {
- query.setParameter ("vfModuleName", vfModuleName);
- logger.debug ("vfModuleName in updateInfraRequest is set to: " + vfModuleName);
- }
- if (configurationId != null) {
- query.setParameter ("configurationId", configurationId);
- logger.debug ("configurationId in updateInfraRequest is set to: " + configurationId);
- }
- if (configurationName != null) {
- query.setParameter ("configurationName", configurationName);
- logger.debug ("configurationName in updateInfraRequest is set to: " + configurationName);
- }
- if (vfModuleName != null) {
- query.setParameter ("vfModuleName", vfModuleName);
- logger.debug ("vfModuleName in updateInfraRequest is set to: " + vfModuleName);
- }
- Timestamp nowTimeStamp = new Timestamp (System.currentTimeMillis ());
- if (requestStatus == RequestStatusType.COMPLETE || requestStatus == RequestStatusType.FAILED) {
- query.setParameter ("endTime", nowTimeStamp);
- logger.debug ("EndTime in updateInfraRequest is set to: " + nowTimeStamp);
- } else {
- query.setParameter ("modifyTime", nowTimeStamp);
- logger.debug ("ModifyTime in updateInfraRequest is set to: " + nowTimeStamp);
- }
- query.setParameter ("lastModifiedBy", lastModifiedBy);
- logger.debug ("LastModifiedBy in updateInfraRequest is set to: " + lastModifiedBy);
- result = query.executeUpdate ();
- checkIfExists (result, requestId);
- session.getTransaction ().commit ();
- } catch (HibernateException e) {
- String error = "Unable to update MSO Requests DB: " + e.getMessage ();
- logger.error (MessageEnum.RA_CANT_UPDATE_REQUEST, "infra request parameters", requestId, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "HibernateException - " + error, e);
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, error);
- throw new MsoRequestsDbException (error, e);
- } finally {
- if (session != null && session.isOpen ()) {
- session.close ();
- }
- }
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");
- }
-
-
- private void checkIfExists (int result, String requestId) throws MsoRequestsDbException {
- if (result == 0) {
- String error = "Request ID does not exist in MSO Requests DB: " + requestId;
- logger.error (MessageEnum.RA_DB_REQUEST_NOT_EXIST, requestId, "", "", MsoLogger.ErrorCode.DataError, error);
- throw new MsoRequestsDbException (error);
- }
- }
-
-
- @Override
- public InfraActiveRequests getInfraRequest (String requestId) throws MsoRequestsDbException {
- long startTime = System.currentTimeMillis ();
- MsoLogger.setLogContext (requestId, null);
- Session session = requestsDbSessionFactoryManager.getSessionFactory ().openSession ();
-
- logger.debug ("Call to MSO Infra RequestsDb adapter get method with request Id: " + requestId);
-
- InfraActiveRequests request = null;
- try {
- session.beginTransaction ();
- Query query = session.createQuery ("FROM InfraActiveRequests where requestId = :requestId OR clientRequestId = :requestId");
- query.setParameter ("requestId", requestId);
- request = (InfraActiveRequests) query.uniqueResult();
- } catch (HibernateException e) {
- String error = "Unable to retrieve MSO Infra Requests DB for Request ID "
- + requestId;
- logger.error (MessageEnum.RA_DB_REQUEST_NOT_EXIST, "Get Infra request", requestId, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "HibernateException - " + error, e);
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, error);
- throw new MsoRequestsDbException (error, e);
- } finally {
- if (session != null && session.isOpen ()) {
- session.close ();
- }
- }
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");
- return request;
- }
-
-
- /**
- * Get SiteStatus by SiteName.
- *
- * @param siteName The unique name of the site
- * @return Status of that site
- */
- @Override
- public boolean getSiteStatus (String siteName) {
- UUIDChecker.generateUUID (logger);
- Session session = requestsDbSessionFactoryManager.getSessionFactory ().openSession ();
-
- long startTime = System.currentTimeMillis ();
- SiteStatus siteStatus = null;
- logger.debug ("Request database - get Site Status with Site name:" + siteName);
- try {
- String hql = "FROM SiteStatus WHERE siteName = :site_name";
- Query query = session.createQuery (hql);
- query.setParameter ("site_name", siteName);
-
- siteStatus = (SiteStatus) query.uniqueResult ();
- } finally {
- if (session != null && session.isOpen ()) {
- session.close ();
- }
- }
- if (siteStatus == null) {
- // if not exist in DB, it means the site is not disabled, thus return true
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");
- return true;
- } else {
- logger.recordAuditEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful");
- return siteStatus.getStatus();
- }
- }
-
- /**
- * update operation status
- * <br>
- *
- * @param serviceId
- * @param operationId
- * @param operationType
- * @param userId
- * @param result
- * @param operationContent
- * @param progress
- * @param reason
- * @throws MsoRequestsDbException
- * @since ONAP Amsterdam Release
- */
- @Override
- public void updateServiceOperationStatus(String serviceId, String operationId, String operationType, String userId,
- String result, String operationContent, String progress, String reason) throws MsoRequestsDbException {
- OperationStatus operStatus = new OperationStatus();
- operStatus.setServiceId(serviceId);
- operStatus.setOperationId(operationId);
- operStatus.setUserId(userId);
- operStatus.setOperation(operationType);
- operStatus.setReason(reason);
- operStatus.setProgress(progress);
- operStatus.setResult(result);
- operStatus.setOperationContent(operationContent);
- RequestsDatabase.getInstance().updateOperationStatus(operStatus);
- }
-
- /**
- * init the operation status of all the resources
- * <br>
- *
- * @param serviceId the service Id
- * @param operationId the operation Id
- * @param operationType the operationType
- * @param resourceTemplateUUIDs the resources, the UUID is split by ":"
- * @throws MsoRequestsDbException
- * @since ONAP Amsterdam Release
- */
- @Override
- public void initResourceOperationStatus(String serviceId, String operationId, String operationType,
- String resourceTemplateUUIDs) throws MsoRequestsDbException{
- String[] resourceLst = resourceTemplateUUIDs.split(":");
- for(String resource: resourceLst){
- if("".equals(resource)){
- continue;
- }
- ResourceOperationStatus resourceStatus = new ResourceOperationStatus();
- resourceStatus.setOperationId(operationId);
- resourceStatus.setServiceId(serviceId);
- resourceStatus.setResourceTemplateUUID(resource);
- resourceStatus.setOperType(operationType);
- resourceStatus.setStatus(RequestsDbConstant.Status.PROCESSING);
- resourceStatus.setStatusDescription("Waiting for start");
- RequestsDatabase.getInstance().updateResOperStatus(resourceStatus);
- }
- }
-
- /**
- * get resource operation status
- * <br>
- *
- * @param serviceId
- * @param operationId
- * @param resourceTemplateUUID
- * @return
- * @throws MsoRequestsDbException
- * @since ONAP Amsterdam Release
- */
- @Override
- public ResourceOperationStatus getResourceOperationStatus(String serviceId, String operationId, String resourceTemplateUUID)
- throws MsoRequestsDbException {
- return RequestsDatabase.getInstance().getResourceOperationStatus(serviceId, operationId, resourceTemplateUUID);
- }
-
- /**
- * update resource operation status
- * <br>
- *
- * @param serviceId
- * @param operationId
- * @param resourceTemplateUUID
- * @param operationType
- * @param resourceInstanceID
- * @param jobId
- * @param status
- * @param progress
- * @param errorCode
- * @param statusDescription
- * @throws MsoRequestsDbException
- * @since ONAP Amsterdam Release
- */
- @Override
- public void updateResourceOperationStatus(String serviceId, String operationId, String resourceTemplateUUID,
- String operationType, String resourceInstanceID, String jobId, String status, String progress,
- String errorCode, String statusDescription) throws MsoRequestsDbException {
- ResourceOperationStatus resStatus = new ResourceOperationStatus();
- resStatus.setServiceId(serviceId);
- resStatus.setOperationId(operationId);
- resStatus.setResourceTemplateUUID(resourceTemplateUUID);
- resStatus.setOperType(operationType);
- resStatus.setResourceInstanceID(resourceInstanceID);
- resStatus.setJobId(jobId);
- resStatus.setStatus(status);
- resStatus.setProgress(progress);
- resStatus.setErrorCode(errorCode);
- resStatus.setStatusDescription(statusDescription);
- RequestsDatabase.getInstance().updateResOperStatus(resStatus);
- }
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/Status.java b/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/Status.java
deleted file mode 100644
index 3c6f922..0000000
--- a/adapters/mso-requests-db-adapter/src/main/java/org/openecomp/mso/adapters/requestsdb/Status.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============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.openecomp.mso.adapters.requestsdb;
-
-
-/*
- * Enum for Status values returned by API Handler to Tail-F
-*/
-public enum Status {
- PENDING, INPROGRESS, COMPLETED, FAILED, TIMEOUT;
-
- public boolean isFinished () {
- switch (this) {
- case COMPLETED:
- case FAILED:
- case TIMEOUT:
- return true;
- default:
- return false;
- }
- }
-}
diff --git a/adapters/mso-requests-db-adapter/src/main/java/resources/application.properties b/adapters/mso-requests-db-adapter/src/main/java/resources/application.properties
deleted file mode 100644
index c934538..0000000
--- a/adapters/mso-requests-db-adapter/src/main/java/resources/application.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ECOMP MSO
-# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-###
-
-
-# -- welcome --
-welcomeTitle=JSF Blank Application
-
-welcomeHeading=Welcome!
-
-welcomeMessage=This is a JSF blank application. \
- You can find the application.properties file with this message in the src/resources folder.
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/application-local.yaml b/adapters/mso-requests-db-adapter/src/main/resources/application-local.yaml
new file mode 100644
index 0000000..2b4e780
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/application-local.yaml
@@ -0,0 +1,47 @@
+# will be used as entry in DB to say SITE OFF/ON for healthcheck
+
+server:
+ port: 8090
+ tomcat:
+ max-threads: 50
+ssl-enable: false
+mso:
+ logPath: logs
+ site-name: localSite
+spring:
+ datasource:
+ url: jdbc:mariadb://localhost:3306/requestdb
+ username: mso
+ password: mso123
+ driver-class-name: org.mariadb.jdbc.Driver
+ initialize: true
+ initialization-mode: never
+ jpa:
+ generate-ddl: false
+ show-sql: false
+ hibernate:
+ ddl-auto: validate
+ naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ enable-lazy-load-no-trans: true
+ database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+ security:
+ usercredentials:
+ -
+ username: bpel
+ password: '$2a$12$1xyutEZNfjGewIZRfKaE8eZE99f5sYFUmmM80BobI65KNjmcK0JuO'
+ role: BPEL-Client
+ -
+ username: mso_admin
+ password: '$2a$12$tidKuu.h88E2nuL95pTVY.ZOYMN/1dp29A9b1o.0GFDsVVSYlMkHa'
+ role: ACTUATOR
+
+#Actuator
+management:
+ context-path: /manage
+
+flyway:
+ baseline-on-migrate: false
+ url: jdbc:mariadb://localhost:3306/requestdb
+ user: mso
+ password: mso123
+
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/application.yaml b/adapters/mso-requests-db-adapter/src/main/resources/application.yaml
new file mode 100644
index 0000000..4f423ca
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/application.yaml
@@ -0,0 +1,47 @@
+# will be used as entry in DB to say SITE OFF/ON for healthcheck
+
+server:
+ port: 8080
+ tomcat:
+ max-threads: 50
+
+mso:
+ site-name: unknown
+ logPath: ./logs/reqdb/
+ infra-requests:
+ archived:
+ period: 180
+# H2
+spring:
+ datasource:
+ url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+ username: ${DB_USERNAME}
+ password: ${DB_PASSWORD}
+ driver-class-name: org.mariadb.jdbc.Driver
+ dbcp2:
+ initial-size: 5
+ max-total: 20
+ validation-query: select 1
+ test-on-borrow: true
+ jpa:
+ show-sql: false
+ hibernate:
+ dialect: org.hibernate.dialect.MySQL5Dialect
+ ddl-auto: validate
+ naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ enable-lazy-load-no-trans: true
+flyway:
+ baseline-on-migrate: false
+ url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+ user: ${DB_ADMIN_USERNAME}
+ password: ${DB_ADMIN_PASSWORD}
+
+#Actuator
+management:
+ context-path: /manage
+ metrics:
+ se-global-registry: false
+ export:
+ prometheus:
+ enabled: true # Whether exporting of metrics to Prometheus is enabled.
+ step: 1m # Step size (i.e. reporting frequency) to use.
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V1__Base_version.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V1__Base_version.sql
new file mode 100644
index 0000000..94f7d2b
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V1__Base_version.sql
@@ -0,0 +1,155 @@
+use requestdb;
+
+CREATE TABLE `activate_operational_env_service_model_distribution_status` (
+ `OPERATIONAL_ENV_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `SERVICE_MOD_VER_FINAL_DISTR_STATUS` varchar(45) DEFAULT NULL,
+ `RECOVERY_ACTION` varchar(30) DEFAULT NULL,
+ `RETRY_COUNT_LEFT` int(11) DEFAULT NULL,
+ `WORKLOAD_CONTEXT` varchar(80) NOT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`OPERATIONAL_ENV_ID`,`SERVICE_MODEL_VERSION_ID`,`REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+
+CREATE TABLE `activate_operational_env_per_distributionid_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `DISTRIBUTION_ID_STATUS` varchar(45) DEFAULT NULL,
+ `DISTRIBUTION_ID_ERROR_REASON` varchar(250) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ `OPERATIONAL_ENV_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `REQUEST_ID` varchar(45) NOT NULL,
+ PRIMARY KEY (`DISTRIBUTION_ID`),
+ KEY `fk_activate_op_env_per_distributionid_status__aoesmds1_idx` (`OPERATIONAL_ENV_ID`,`SERVICE_MODEL_VERSION_ID`,`REQUEST_ID`),
+ CONSTRAINT `fk_activate_op_env_per_distributionid_status__aoesmds1` FOREIGN KEY (`OPERATIONAL_ENV_ID`, `SERVICE_MODEL_VERSION_ID`, `REQUEST_ID`) REFERENCES `activate_operational_env_service_model_distribution_status` (`OPERATIONAL_ENV_ID`, `SERVICE_MODEL_VERSION_ID`, `REQUEST_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+
+CREATE TABLE `active_requests` (
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `CLIENT_REQUEST_ID` varchar(45) DEFAULT NULL,
+ `SERVICE_INSTANCE_ID` varchar(50) NOT NULL,
+ `SUBSCRIBER_NAME` varchar(200) DEFAULT NULL,
+ `REQUEST_URI` varchar(255) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(65) NOT NULL,
+ `REQUEST_ACTION` varchar(45) NOT NULL,
+ `NOTIFICATION_URL` varchar(255) DEFAULT NULL,
+ `REQUEST_ID_IN_PROGRESS` varchar(45) DEFAULT NULL,
+ `START_TIME` datetime DEFAULT NULL,
+ `MODIFY_TIME` datetime DEFAULT NULL,
+ `COMPLETION_TIME` datetime DEFAULT NULL,
+ `RESPONSE_CODE` varchar(20) DEFAULT NULL,
+ `RESPONSE_BODY` longtext,
+ `STATUS` varchar(25) DEFAULT NULL,
+ `SERVICE_REQUEST_TIMEOUT` datetime DEFAULT NULL,
+ `FINAL_ERROR_CODE` varchar(20) DEFAULT NULL,
+ `FINAL_ERROR_MESSAGE` varchar(2000) DEFAULT NULL,
+ `ORDER_NUMBER` varchar(45) DEFAULT NULL,
+ `SOURCE` varchar(20) DEFAULT NULL,
+ `RESPONSE_STATUS` varchar(25) DEFAULT NULL,
+ `ORDER_VERSION` varchar(20) DEFAULT NULL,
+ `LAST_MODIFIED_BY` varchar(20) DEFAULT NULL,
+ `MOCARS_TICKET_NUM` varchar(200) DEFAULT NULL,
+ `REQUEST_BODY` longtext,
+ `REQUEST_SUB_ACTION` varchar(45) DEFAULT NULL,
+ `SDNC_CALLBACK_BPEL_URL` varchar(255) DEFAULT NULL,
+ `FEATURE_TYPE` varchar(255) DEFAULT NULL,
+ `FEATURE_INSTANCE_ID` varchar(255) DEFAULT NULL,
+ `REQUEST_TYPE` varchar(255) DEFAULT NULL,
+ `INTERIM_COMPLETION_TIME` datetime DEFAULT NULL,
+ `INTERIM_STAGE_COMPLETION` int(11) DEFAULT NULL,
+ `SERVICE_NAME_VERSION_ID` varchar(50) DEFAULT NULL,
+ `GLOBAL_SUBSCRIBER_ID` varchar(255) DEFAULT NULL,
+ `SERVICE_ID` varchar(50) DEFAULT NULL,
+ `SERVICE_VERSION` varchar(10) DEFAULT NULL,
+ `CORRELATOR` varchar(50) DEFAULT NULL,
+ PRIMARY KEY (`REQUEST_ID`),
+ UNIQUE KEY `UK_f0hdk7xbw5mb2trnxx0fvlh3x` (`CLIENT_REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `infra_active_requests` (
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `CLIENT_REQUEST_ID` varchar(45) DEFAULT NULL,
+ `ACTION` varchar(45) DEFAULT NULL,
+ `REQUEST_STATUS` varchar(20) DEFAULT NULL,
+ `STATUS_MESSAGE` longtext,
+ `PROGRESS` bigint(20) DEFAULT NULL,
+ `START_TIME` datetime DEFAULT NULL,
+ `END_TIME` datetime DEFAULT NULL,
+ `SOURCE` varchar(45) DEFAULT NULL,
+ `VNF_ID` varchar(45) DEFAULT NULL,
+ `VNF_NAME` varchar(80) DEFAULT NULL,
+ `VNF_TYPE` varchar(200) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `AIC_NODE_CLLI` varchar(11) DEFAULT NULL,
+ `TENANT_ID` varchar(45) DEFAULT NULL,
+ `PROV_STATUS` varchar(20) DEFAULT NULL,
+ `VNF_PARAMS` longtext,
+ `VNF_OUTPUTS` longtext,
+ `REQUEST_BODY` longtext,
+ `RESPONSE_BODY` longtext,
+ `LAST_MODIFIED_BY` varchar(100) DEFAULT NULL,
+ `MODIFY_TIME` datetime DEFAULT NULL,
+ `REQUEST_TYPE` varchar(20) DEFAULT NULL,
+ `VOLUME_GROUP_ID` varchar(45) DEFAULT NULL,
+ `VOLUME_GROUP_NAME` varchar(45) DEFAULT NULL,
+ `VF_MODULE_ID` varchar(45) DEFAULT NULL,
+ `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
+ `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
+ `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
+ `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+ `CALLBACK_URL` varchar(200) DEFAULT NULL,
+ `CORRELATOR` varchar(80) DEFAULT NULL,
+ `NETWORK_ID` varchar(45) DEFAULT NULL,
+ `NETWORK_NAME` varchar(80) DEFAULT NULL,
+ `NETWORK_TYPE` varchar(80) DEFAULT NULL,
+ `REQUEST_SCOPE` varchar(50) NOT NULL,
+ `REQUEST_ACTION` varchar(45) NOT NULL DEFAULT 'unknown',
+ `SERVICE_INSTANCE_ID` varchar(45) DEFAULT NULL,
+ `SERVICE_INSTANCE_NAME` varchar(80) DEFAULT NULL,
+ `REQUESTOR_ID` varchar(50) DEFAULT NULL,
+ `CONFIGURATION_ID` varchar(45) DEFAULT NULL,
+ `CONFIGURATION_NAME` varchar(200) DEFAULT NULL,
+ `OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
+ `OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`REQUEST_ID`),
+ UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d5ak` (`CLIENT_REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+
+CREATE TABLE `site_status` (
+ `SITE_NAME` varchar(255) NOT NULL,
+ `STATUS` bit(1) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`SITE_NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_distributionid_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `DISTRIBUTION_ID_STATUS` varchar(45) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`DISTRIBUTION_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_per_component_distribution_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `COMPONENT_NAME` varchar(45) NOT NULL,
+ `COMPONENT_DISTRIBUTION_STATUS` varchar(45) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`DISTRIBUTION_ID`,`COMPONENT_NAME`),
+ CONSTRAINT `fk_watchdog_component_distribution_status_watchdog_distributi1` FOREIGN KEY (`DISTRIBUTION_ID`) REFERENCES `watchdog_distributionid_status` (`DISTRIBUTION_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_service_mod_ver_id_lookup` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` timestamp NULL DEFAULT NULL,
+ PRIMARY KEY (`DISTRIBUTION_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.1__Add_Identifiers_Active_Requests.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.1__Add_Identifiers_Active_Requests.sql
new file mode 100644
index 0000000..8e6a767
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.1__Add_Identifiers_Active_Requests.sql
@@ -0,0 +1,9 @@
+use requestdb;
+
+ALTER TABLE active_requests
+ADD VPN_ID varchar(200),
+ADD PROGRESS BIGINT(20),
+ADD STATUS_MESSAGE LONGTEXT,
+ADD REQUESTED_SERVICE_NAME varchar(200),
+ADD PRODUCT_FLAVOR varchar(200),
+ADD SERVICE_INSTANCE_NAME varchar(80);
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.2__Add_Operation_Status.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.2__Add_Operation_Status.sql
new file mode 100644
index 0000000..1e96f61
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.2__Add_Operation_Status.sql
@@ -0,0 +1,30 @@
+use requestdb;
+
+create table if not exists operation_status (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ SERVICE_NAME varchar(255),
+ OPERATION_TYPE varchar(255),
+ USER_ID varchar(255),
+ RESULT varchar(255),
+ OPERATION_CONTENT varchar(255),
+ PROGRESS varchar(255),
+ REASON varchar(255),
+ OPERATE_AT datetime,
+ FINISHED_AT datetime,
+ primary key (SERVICE_ID,OPERATION_ID)
+);
+
+create table resource_operation_status (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ RESOURCE_TEMPLATE_UUID varchar(255) not null,
+ OPER_TYPE varchar(255),
+ RESOURCE_INSTANCE_ID varchar(255),
+ JOB_ID varchar(255),
+ STATUS varchar(255),
+ PROGRESS varchar(255),
+ ERROR_CODE varchar(255) ,
+ STATUS_DESCRIPOTION varchar(255) ,
+ primary key (SERVICE_ID,OPERATION_ID,RESOURCE_TEMPLATE_UUID)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.3__Remove_Invalid_requestdb_data.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.3__Remove_Invalid_requestdb_data.sql
new file mode 100644
index 0000000..d361bce
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.3__Remove_Invalid_requestdb_data.sql
@@ -0,0 +1,5 @@
+USE requestdb;
+
+delete from infra_active_requests where source != 'VID' and source != 'POLO';
+
+delete from infra_active_requests where request_body like '<%';
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.4__Activate_Requests_Nullable_Coulmns.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.4__Activate_Requests_Nullable_Coulmns.sql
new file mode 100644
index 0000000..32a9d61
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.4__Activate_Requests_Nullable_Coulmns.sql
@@ -0,0 +1,6 @@
+USE requestdb;
+
+ALTER TABLE active_requests
+ MODIFY IF EXISTS SERVICE_INSTANCE_ID varchar(50) NULL,
+ MODIFY IF EXISTS REQUEST_ACTION varchar(45) NULL,
+ MODIFY IF EXISTS SERVICE_TYPE varchar(65) NULL;
\ No newline at end of file
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.5__Archived_Infra_Requests.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.5__Archived_Infra_Requests.sql
new file mode 100644
index 0000000..b256862
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.5__Archived_Infra_Requests.sql
@@ -0,0 +1,51 @@
+use requestdb;
+
+CREATE TABLE IF NOT EXISTS `archived_infra_requests` (
+`REQUEST_ID` VARCHAR(45) NOT NULL,
+`CLIENT_REQUEST_ID` VARCHAR(45) NULL DEFAULT NULL,
+`ACTION` VARCHAR(45) NULL,
+`REQUEST_STATUS` VARCHAR(20) NULL DEFAULT NULL,
+`STATUS_MESSAGE` LONGTEXT NULL DEFAULT NULL,
+`PROGRESS` BIGINT(20) NULL DEFAULT NULL,
+`START_TIME` DATETIME NULL DEFAULT NULL,
+`END_TIME` DATETIME NULL DEFAULT NULL,
+`SOURCE` VARCHAR(45) NULL DEFAULT NULL,
+`VNF_ID` VARCHAR(45) NULL DEFAULT NULL,
+`VNF_NAME` VARCHAR(80) NULL DEFAULT NULL,
+`VNF_TYPE` VARCHAR(200) NULL DEFAULT NULL,
+`SERVICE_TYPE` VARCHAR(45) NULL DEFAULT NULL,
+`AIC_NODE_CLLI` VARCHAR(11) NULL DEFAULT NULL,
+`TENANT_ID` VARCHAR(45) NULL DEFAULT NULL,
+`PROV_STATUS` VARCHAR(20) NULL DEFAULT NULL,
+`VNF_PARAMS` LONGTEXT NULL DEFAULT NULL,
+`VNF_OUTPUTS` LONGTEXT NULL DEFAULT NULL,
+`REQUEST_BODY` LONGTEXT NULL DEFAULT NULL,
+`RESPONSE_BODY` LONGTEXT NULL DEFAULT NULL,
+`LAST_MODIFIED_BY` VARCHAR(100) NULL DEFAULT NULL,
+`MODIFY_TIME` DATETIME NULL DEFAULT NULL,
+`REQUEST_TYPE` VARCHAR(20) NULL DEFAULT NULL,
+`VOLUME_GROUP_ID` VARCHAR(45) NULL DEFAULT NULL,
+`VOLUME_GROUP_NAME` VARCHAR(45) NULL DEFAULT NULL,
+`VF_MODULE_ID` VARCHAR(45) NULL DEFAULT NULL,
+`VF_MODULE_NAME` VARCHAR(200) NULL DEFAULT NULL,
+`VF_MODULE_MODEL_NAME` VARCHAR(200) NULL DEFAULT NULL,
+`AAI_SERVICE_ID` VARCHAR(50) NULL DEFAULT NULL,
+`AIC_CLOUD_REGION` VARCHAR(11) NULL DEFAULT NULL,
+`CALLBACK_URL` VARCHAR(200) NULL DEFAULT NULL,
+`CORRELATOR` VARCHAR(80) NULL DEFAULT NULL,
+`NETWORK_ID` VARCHAR(45) NULL DEFAULT NULL,
+`NETWORK_NAME` VARCHAR(80) NULL DEFAULT NULL,
+`NETWORK_TYPE` VARCHAR(80) NULL DEFAULT NULL,
+`REQUEST_SCOPE` VARCHAR(45) NOT NULL DEFAULT 'unknown',
+`REQUEST_ACTION` VARCHAR(45) NOT NULL DEFAULT 'unknown',
+`SERVICE_INSTANCE_ID` VARCHAR(45) NULL DEFAULT NULL,
+`SERVICE_INSTANCE_NAME` VARCHAR(80) NULL DEFAULT NULL,
+`REQUESTOR_ID` VARCHAR(50) NULL DEFAULT NULL,
+`CONFIGURATION_ID` VARCHAR(45) NULL,
+`CONFIGURATION_NAME` VARCHAR(200) NULL,
+`OPERATIONAL_ENV_ID` VARCHAR(45) NULL,
+`OPERATIONAL_ENV_NAME` VARCHAR(200) NULL,
+PRIMARY KEY (`REQUEST_ID`),
+UNIQUE INDEX `UK_client_request_id` (`CLIENT_REQUEST_ID` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = latin1;
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.6__shedlock.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.6__shedlock.sql
new file mode 100644
index 0000000..76faf07
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.6__shedlock.sql
@@ -0,0 +1,9 @@
+use requestdb;
+
+CREATE TABLE SHEDLOCK(
+NAME VARCHAR(64),
+LOCK_UNTIL TIMESTAMP(3) NULL,
+LOCKED_AT TIMESTAMP(3) NULL,
+LOCKED_BY VARCHAR(255),
+PRIMARY KEY (NAME)
+);
diff --git a/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.7__Update_Status_Message_ColumnTypes.sql b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.7__Update_Status_Message_ColumnTypes.sql
new file mode 100644
index 0000000..5433e39
--- /dev/null
+++ b/adapters/mso-requests-db-adapter/src/main/resources/db/migration/V2.7__Update_Status_Message_ColumnTypes.sql
@@ -0,0 +1,8 @@
+use requestdb;
+
+ALTER TABLE active_requests
+MODIFY STATUS_MESSAGE LONGTEXT;
+
+
+ALTER TABLE infra_active_requests
+MODIFY STATUS_MESSAGE LONGTEXT;