aboutsummaryrefslogtreecommitdiffstats
path: root/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java
diff options
context:
space:
mode:
Diffstat (limited to 'mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java')
-rw-r--r--mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java110
1 files changed, 103 insertions, 7 deletions
diff --git a/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java b/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java
index d6b0b6b419..f69378ec65 100644
--- a/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java
+++ b/mso-api-handlers/mso-requests-db/src/main/java/org/openecomp/mso/requestsdb/RequestsDatabase.java
@@ -21,10 +21,10 @@
package org.openecomp.mso.requestsdb;
-import java.util.Date;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -60,13 +60,18 @@ public class RequestsDatabase {
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 MockRequestsDatabase mockDB = null;
public static RequestsDatabase getInstance() {
@@ -237,6 +242,10 @@ public class RequestsDatabase {
criteria.add (Restrictions.eq (VFMODULE_INSTANCE_NAME, instanceName));
} else if("network".equals(requestScope)){
criteria.add (Restrictions.eq (NETWORK_INSTANCE_NAME, instanceName));
+ } else if(requestScope.equals("configuration")) {
+ criteria.add (Restrictions.eq (CONFIGURATION_INSTANCE_NAME, instanceName));
+ } else if(requestScope.equals("operationalEnvironment")) {
+ criteria.add (Restrictions.eq (OPERATIONAL_ENV_NAME, instanceName));
}
} else {
@@ -260,10 +269,18 @@ public class RequestsDatabase {
if("network".equals(requestScope) && instanceIdMap.get("networkInstanceId") != null){
criteria.add (Restrictions.eq (NETWORK_INSTANCE_ID, instanceIdMap.get("networkInstanceId")));
}
+
+ if(requestScope.equals("configuration") && instanceIdMap.get("configurationInstanceId") != null){
+ criteria.add (Restrictions.eq (CONFIGURATION_INSTANCE_ID, instanceIdMap.get("configurationInstanceId")));
+ }
+
+ if(requestScope.equals("operationalEnvironment") && instanceIdMap.get("operationalEnvironmentId") != null) {
+ criteria.add (Restrictions.eq (OPERATIONAL_ENV_ID, instanceIdMap.get("operationalEnvironmentId")));
+ }
}
}
- criteria.add (Restrictions.in ("requestStatus", new String[] { "PENDING", "IN_PROGRESS", "TIMEOUT" }));
+ criteria.add (Restrictions.in ("requestStatus", new String[] { "PENDING", "IN_PROGRESS", "TIMEOUT", "PENDING_MANUAL_TASK" }));
Order order = Order.desc (START_TIME);
@@ -305,6 +322,10 @@ public class RequestsDatabase {
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)) {
@@ -350,6 +371,54 @@ public class RequestsDatabase {
return executeInfraQuery (criteria, order);
}
+ // 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) {
+ List <Criterion> criteria = new LinkedList <> ();
+
+ // 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) {
+ criteria.add(Restrictions.eq("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));
+
+ criteria.add(Restrictions.between(mapKey, minTime, maxTime));
+ }
+ catch (Exception e){
+ msoLogger.debug("Exception in getCloudOrchestrationFiltersFromInfraActive(): + " + e.getMessage());
+ return null;
+ }
+ } else {
+ criteria.add(Restrictions.eq(mapKey, propertyValue));
+ }
+ }
+
+ Order order = Order.asc (START_TIME);
+ return executeInfraQuery (criteria, order);
+ }
public List <InfraActiveRequests> getRequestListFromInfraActive (String queryAttributeName,
String queryValue,
@@ -412,7 +481,7 @@ public class RequestsDatabase {
try {
session.beginTransaction ();
- Query query = session.createQuery ("from InfraActiveRequests where vnfName = :vnfName and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT') and requestType = :requestType ORDER BY startTime DESC");
+ Query query = session.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);
@@ -441,7 +510,7 @@ public class RequestsDatabase {
try {
session.beginTransaction ();
- Query query = session.createQuery ("from InfraActiveRequests where vnfId = :vnfId and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT') and requestType = :requestType ORDER BY startTime DESC");
+ Query query = session.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);
@@ -686,8 +755,8 @@ public class RequestsDatabase {
operStatus = (ResourceOperationStatus)query.uniqueResult();
} finally {
- if(session != null && session.isOpen()) {
- session.close();
+ if (session != null && session.isOpen ()) {
+ session.close ();
}
msoLogger.recordMetricEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
"Successfully", "RequestDB", "getOperationStatus", null);
@@ -785,4 +854,31 @@ public class RequestsDatabase {
"Successfully", "RequestDB", "updateResOperStatus", null);
}
}
+
+ public InfraActiveRequests checkVnfIdStatus(String operationalEnvironmentId) {
+ long startTime = System.currentTimeMillis ();
+ msoLogger.debug ("Get Infra request from DB for OperationalEnvironmentId " + operationalEnvironmentId);
+
+ InfraActiveRequests ar = null;
+ Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
+
+ try {
+ session.beginTransaction ();
+ Query query = session.createQuery ("FROM InfraActiveRequests WHERE operationalEnvId = :operationalEnvId AND requestStatus != 'COMPLETE' AND action = 'create' ORDER BY startTime DESC");
+ query.setParameter ("operationalEnvId", operationalEnvironmentId);
+
+ @SuppressWarnings("unchecked")
+ List <InfraActiveRequests> results = query.list ();
+ if (!results.isEmpty ()) {
+ ar = results.get (0);
+ }
+ } finally {
+ if (session != null && session.isOpen ()) {
+ session.close ();
+ }
+ msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "checkDuplicateByVnfName", null);
+ }
+
+ return ar;
+ }
}