2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * ================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
18 * ============LICENSE_END=========================================================
\r
21 package org.openecomp.mso.requestsdb;
\r
24 import java.sql.Timestamp;
\r
26 import org.hibernate.Query;
\r
27 import org.hibernate.Session;
\r
28 import org.openecomp.mso.db.AbstractSessionFactoryManager;
\r
29 import org.openecomp.mso.logger.MessageEnum;
\r
30 import org.openecomp.mso.logger.MsoLogger;
\r
32 public class OperationalEnvDistributionStatusDb {
\r
34 protected final AbstractSessionFactoryManager sessionFactoryRequestDB;
\r
36 protected static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
\r
39 protected static final String DISTRIBUTION_ID = "distributionId";
\r
40 protected static final String OPERATIONAL_ENV_ID = "operationalEnvId";
\r
41 protected static final String REQUEST_ID = "requestId";
\r
42 protected static final String SERVICE_MODEL_VERSION_ID = "serviceModelVersionId";
\r
43 protected static final String DISTRIBUTION_ID_STATUS = "distributionIdStatus";
\r
44 protected static final String CREATE_TIME = "startTime";
\r
45 protected static final String MODIFY_TIME = "modifyTime";
\r
48 public static OperationalEnvDistributionStatusDb getInstance() {
\r
49 return new OperationalEnvDistributionStatusDb(new RequestsDbSessionFactoryManager ());
\r
52 protected OperationalEnvDistributionStatusDb (AbstractSessionFactoryManager sessionFactoryRequest) {
\r
53 sessionFactoryRequestDB = sessionFactoryRequest;
\r
58 * Retrieve OperationalEnvDistributionStatus from getSecgiven distributionId
59 * @param distributionId
\r
62 public OperationalEnvDistributionStatus getOperationalEnvDistributionStatus(String distributionId) {
\r
63 long startTime = System.currentTimeMillis ();
\r
64 msoLogger.debug ("Retrieve Operational Environment Distribution Status with distributionId: " + distributionId);
\r
66 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
\r
67 OperationalEnvDistributionStatus request = null;
\r
69 session.beginTransaction ();
\r
70 Query query = session.createQuery ("from OperationalEnvDistributionStatus where distributionId = :distributionId");
\r
71 query.setParameter (DISTRIBUTION_ID, distributionId);
\r
72 request = (OperationalEnvDistributionStatus) query.uniqueResult ();
\r
74 if (session != null && session.isOpen ()) {
\r
77 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
\r
78 "Successfully", "OperationalEnvDistributionStatus", "getOperationalEnvDistributionStatus", null);
\r
84 * Retrieve OperationalEnvDistributionStatus from given distributionId and requestId
\r
85 * @param distributionId
\r
87 * @return OperationalEnvDistributionStatus
89 public OperationalEnvDistributionStatus getOperationalEnvDistributionStatusPerReqId(String distributionId, String requestId) {
\r
90 long startTime = System.currentTimeMillis ();
\r
91 msoLogger.debug ("Retrieve Operational Environment Distribution Status with distributionId: " + distributionId + ", requestId: " + requestId);
\r
93 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
\r
94 OperationalEnvDistributionStatus request = null;
\r
96 session.beginTransaction ();
\r
97 Query query = session.createQuery ("from OperationalEnvDistributionStatus where distributionId = :distributionId AND requestId = :requestId");
\r
98 query.setParameter (DISTRIBUTION_ID, distributionId);
\r
99 query.setParameter (REQUEST_ID, requestId);
\r
100 request = (OperationalEnvDistributionStatus) query.uniqueResult ();
\r
102 if (session != null && session.isOpen ()) {
\r
105 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
\r
106 "Successfully", "OperationalEnvDistributionStatus", "getOperationalEnvDistributionStatusPerReqId", null);
\r
112 * Update OperationalEnvDistributionStatus with distributionIdStatus for given distributionId, serviceModelVersionId, serviceModelVersionId
\r
113 * @param asdcStatus
\r
114 * @param distributionId
\r
115 * @param operationalEnvId
\r
116 * @param serviceModelVersionId
\r
118 public int updateOperationalEnvDistributionStatus(String asdcStatus, String distributionId,
\r
119 String operationalEnvId, String serviceModelVersionId) {
\r
120 long startTime = System.currentTimeMillis ();
\r
121 msoLogger.debug ("Update OperationalEnvDistributionStatus DISTRIBUTION_ID_STATUS with asdcStatus: " + asdcStatus);
\r
123 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
\r
126 session.beginTransaction ();
\r
127 Query query = session.createQuery ("update OperationalEnvDistributionStatus set distributionIdStatus = :distributionIdStatus, modifyTime = :modifyTime where distributionId = :distributionId and "
\r
128 + "operationalEnvId = :operationalEnvId and serviceModelVersionId = :serviceModelVersionId ");
\r
129 query.setParameter (DISTRIBUTION_ID_STATUS, asdcStatus);
\r
130 query.setParameter ("distributionId", distributionId);
\r
131 query.setParameter ("operationalEnvId", operationalEnvId);
\r
132 query.setParameter ("serviceModelVersionId", serviceModelVersionId);
\r
133 Timestamp modifyTimeStamp = new Timestamp (System.currentTimeMillis());
\r
134 query.setParameter ("modifyTime", modifyTimeStamp);
\r
135 result = query.executeUpdate ();
\r
136 session.getTransaction ().commit ();
\r
138 if (session != null && session.isOpen ()) {
\r
141 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "RequestDB", "updateOperationalEnvDistributionStatus", null);
\r
147 * Insert into OperationalEnvDistributionStatus with distributionId, operationalEnvId, serviceModelVersionId, distributionIdStatus
\r
148 * @param distributionId
\r
149 * @param operationalEnvId
\r
150 * @param serviceModelVersionId
\r
151 * @param distributionIdStatus
\r
153 public void insertOperationalEnvDistributionStatus(String distributionId, String operationalEnvId, String serviceModelVersionId,
\r
154 String distributionIdStatus, String requestId) {
\r
155 long startTime = System.currentTimeMillis ();
\r
156 Timestamp startTimeStamp = new Timestamp (System.currentTimeMillis());
\r
157 msoLogger.debug ("Insert into OperationalEnvDistributionStatus " );
\r
159 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
\r
160 OperationalEnvDistributionStatus oed = new OperationalEnvDistributionStatus ();
\r
163 session.beginTransaction ();
\r
165 oed.setDistributionId (distributionId);
\r
166 oed.setOperationalEnvId (operationalEnvId);
\r
167 oed.setServiceModelVersionId (serviceModelVersionId);
\r
168 oed.setDistributionIdStatus (distributionIdStatus);
\r
169 oed.setRequestId(requestId);
\r
170 oed.setCreateTime (startTimeStamp);
\r
171 Timestamp modifyTimeStamp = new Timestamp (System.currentTimeMillis());
\r
172 oed.setModifyTime (modifyTimeStamp);
\r
174 msoLogger.debug ("About to insert a record into OperationalEnvDistributionStatus");
\r
176 session.save (oed);
\r
177 session.getTransaction ().commit ();
\r
178 } catch (Exception e) {
\r
179 msoLogger.error (MessageEnum.APIH_DB_INSERT_EXC, "", "", MsoLogger.ErrorCode.SchemaError, "Exception in insertOperationalEnvDistributionStatus", e);
\r
180 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, e.getMessage (), "OperationalEnvDistributionStatusDB", "saveRequest", null);
\r
181 if (session != null) {
\r
184 // throw an Exception in the event of a DB insert failure so that the calling routine can exit
\r
188 if (session != null && session.isOpen ()) {
\r
191 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "OperationalEnvDistributionStatusDB", "insertOperationalEnvDistributionStatus", null);
\r