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
25 import java.util.ArrayList;
\r
26 import java.util.List;
\r
28 import org.hibernate.Query;
\r
29 import org.hibernate.Session;
\r
30 import org.openecomp.mso.db.AbstractSessionFactoryManager;
\r
31 import org.openecomp.mso.requestsdb.RequestsDbSessionFactoryManager;
\r
32 import org.openecomp.mso.logger.MessageEnum;
\r
33 import org.openecomp.mso.logger.MsoLogger;
\r
35 public class WatchdogComponentDistributionStatusDb {
\r
37 protected final AbstractSessionFactoryManager sessionFactoryRequestDB;
\r
39 protected static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);
\r
42 protected static final String DISTRIBUTION_ID = "distributionId";
\r
43 protected static final String COMPONENT_NAME = "componentName";
\r
44 protected static final String COMPONENT_DISTRIBUTION_STATUS = "componentDistributionIdStatus";
\r
45 protected static final String CREATE_TIME = "startTime";
\r
46 protected static final String MODIFY_TIME = "modifyTime";
\r
49 public static WatchdogComponentDistributionStatusDb getInstance() {
\r
50 return new WatchdogComponentDistributionStatusDb(new RequestsDbSessionFactoryManager ());
\r
53 protected WatchdogComponentDistributionStatusDb (AbstractSessionFactoryManager sessionFactoryRequest) {
\r
54 sessionFactoryRequestDB = sessionFactoryRequest;
\r
59 * Insert into watchdog_per_component_distribution_status.
\r
61 * @param distributionId
\r
62 * @param componentName
\r
63 * @param componentDistributionStatus
\r
66 public void insertWatchdogComponentDistributionStatus(String distributionId, String componentName, String componentDistributionStatus ) {
\r
67 long startTime = System.currentTimeMillis ();
\r
68 Timestamp startTimeStamp = new Timestamp (System.currentTimeMillis());
\r
69 msoLogger.debug ("Insert into WatchdogPerComponentDistributionStatus for DistributionId: " + distributionId + " ComponentName: " + componentName + " and ComponentDistributionStatus: " + componentDistributionStatus);
\r
71 List<WatchdogComponentDistributionStatus> componentList = getWatchdogComponentDistributionStatus(distributionId, componentName);
\r
73 if((componentList == null) || componentList.isEmpty())
\r
76 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();
\r
77 WatchdogComponentDistributionStatus wdcds = new WatchdogComponentDistributionStatus ();
\r
80 session.beginTransaction ();
\r
82 wdcds.setDistributionId (distributionId);
\r
83 wdcds.setComponentName (componentName);
\r
84 wdcds.setComponentDistributionStatus (componentDistributionStatus);
\r
85 wdcds.setCreateTime (startTimeStamp);
\r
86 Timestamp modifyTimeStamp = new Timestamp (System.currentTimeMillis());
\r
87 wdcds.setModifyTime (modifyTimeStamp);
\r
89 msoLogger.debug ("About to insert a record into WatchdogPerComponentDistributionStatus");
\r
91 session.save (wdcds);
\r
92 session.getTransaction ().commit ();
\r
93 } catch (Exception e) {
\r
94 msoLogger.error (MessageEnum.APIH_DB_INSERT_EXC, "", "", MsoLogger.ErrorCode.SchemaError, "Exception in insertWatchdogComponentDistributionStatus", e);
\r
95 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, e.getMessage (), "WatchdogComponentDistributionStatusDB", "saveRequest", null);
\r
96 if (session != null) {
\r
99 // throw an Exception in the event of a DB insert failure so that the calling routine can exit
\r
102 if (session != null && session.isOpen ()) {
\r
105 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "WatchdogComponentDistributionStatusDB", "insertWatchdogComponentDistributionStatus", null);
\r
112 * Retrieve records from WatchdogComponentDistributionStatus.
\r
114 * @param distributionId
\r
115 * @return WatchdogComponentDistributionStatus
\r
117 @SuppressWarnings("unchecked")
\r
118 public List<WatchdogComponentDistributionStatus> getWatchdogComponentDistributionStatus(String distributionId) {
\r
119 Session session = sessionFactoryRequestDB.getSessionFactory().openSession();
\r
120 session.beginTransaction();
\r
122 List<WatchdogComponentDistributionStatus> results = new ArrayList<WatchdogComponentDistributionStatus>();
\r
123 msoLogger.debug("Request database - getWatchdogComponentDistributionStatus:" + distributionId);
\r
125 String hql = "FROM WatchdogComponentDistributionStatus WHERE distributionId = :distributionId";
\r
126 Query query = session.createQuery(hql);
\r
127 query.setParameter("distributionId", distributionId);
\r
128 results = query.list();
\r
130 if (session != null && session.isOpen ()) {
\r
133 msoLogger.debug ("getWatchdogComponentDistributionStatus - Successfully");
\r
139 * Retrieve records from WatchdogComponentDistributionStatus.
\r
141 * @param distributionId
\r
142 * @param componentName
\r
143 * @return WatchdogComponentDistributionStatus
\r
145 @SuppressWarnings("unchecked")
\r
146 public List<WatchdogComponentDistributionStatus> getWatchdogComponentDistributionStatus(String distributionId, String componentName) {
\r
147 Session session = sessionFactoryRequestDB.getSessionFactory().openSession();
\r
148 session.beginTransaction();
\r
150 List<WatchdogComponentDistributionStatus> results = new ArrayList<WatchdogComponentDistributionStatus>();
\r
151 msoLogger.debug("Request database - getWatchdogComponentDistributionStatus:" + distributionId + " and componentName:" + componentName);
\r
153 String hql = "FROM WatchdogComponentDistributionStatus WHERE distributionId = :distributionId AND componentName = :componentName";
\r
154 Query query = session.createQuery(hql);
\r
155 query.setParameter("distributionId", distributionId);
\r
156 query.setParameter("componentName", componentName);
\r
157 results = query.list();
\r
159 if (session != null && session.isOpen ()) {
\r
162 msoLogger.debug ("getWatchdogComponentDistributionStatus by ComponentName - Successfully");
\r
168 * Retrieve records from getWatchdogComponentNames.
\r
170 * @param distributionId
\r
173 @SuppressWarnings("unchecked")
\r
174 public List<String> getWatchdogComponentNames(String distributionId) {
\r
175 Session session = sessionFactoryRequestDB.getSessionFactory().openSession();
\r
176 session.beginTransaction();
\r
178 List<String> results = new ArrayList<String>();
\r
179 msoLogger.debug("Request database - getWatchdogComponentNames:" + distributionId);
\r
181 String hql = "Select componentName FROM WatchdogComponentDistributionStatus WHERE distributionId = :distributionId";
\r
182 Query query = session.createQuery(hql);
\r
183 query.setParameter("distributionId", distributionId);
\r
184 results = query.list();
\r
186 if (session != null && session.isOpen ()) {
\r
189 msoLogger.debug ("getWatchdogComponentNames - Successfully");
\r