AT&T 1712 and 1802 release code
[so.git] / mso-api-handlers / mso-requests-db / src / main / java / org / openecomp / mso / requestsdb / WatchdogServiceModVerIdLookupDb.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\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
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \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
19  */\r
20 \r
21 package org.openecomp.mso.requestsdb;\r
22 \r
23 \r
24 import java.sql.Timestamp;\r
25 \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
31 \r
32 public class WatchdogServiceModVerIdLookupDb {\r
33 \r
34     protected final AbstractSessionFactoryManager sessionFactoryRequestDB;\r
35     \r
36     protected static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL);\r
37 \r
38     protected static final String         DISTRIBUTION_ID               = "distributionId";\r
39     protected static final String         SERVICE_MODEL_VERSION_ID      = "serviceModelVersionId";\r
40     protected static final String         CREATE_TIME                   = "startTime";\r
41     \r
42 \r
43     public static WatchdogServiceModVerIdLookupDb getInstance() {\r
44         return new WatchdogServiceModVerIdLookupDb(new RequestsDbSessionFactoryManager ());\r
45     }\r
46 \r
47     protected WatchdogServiceModVerIdLookupDb (AbstractSessionFactoryManager sessionFactoryRequest) {\r
48         sessionFactoryRequestDB = sessionFactoryRequest;\r
49     }\r
50 \r
51 \r
52     /**\r
53      * Insert into WATCHDOG_SERVICE_MOD_VER_ID_LOOKUP.\r
54      *\r
55      * @param distributionId\r
56      * @param serviceModelVersionId\r
57      * @return void\r
58      */\r
59         public void insertWatchdogServiceModVerIdLookup(String distributionId, String serviceModelVersionId ) {\r
60                 long startTime = System.currentTimeMillis ();\r
61                 Timestamp startTimeStamp = new Timestamp (System.currentTimeMillis());\r
62                 msoLogger.debug ("Insert into WatchdogServiceModVerIdLookup for DistributionId: " + distributionId + " and ServiceModelVersionId: " + serviceModelVersionId  );\r
63                 \r
64                 if(getWatchdogServiceModVerId(distributionId) == null){\r
65 \r
66                 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();\r
67                 WatchdogServiceModVerIdLookup wdsm = new WatchdogServiceModVerIdLookup ();\r
68         \r
69                 try {\r
70                         session.beginTransaction ();\r
71                 \r
72                         wdsm.setDistributionId (distributionId);\r
73                         wdsm.setServiceModelVersionId (serviceModelVersionId);\r
74                         wdsm.setCreateTime (startTimeStamp);\r
75                 \r
76                         msoLogger.debug ("About to insert a record into WatchdogServiceModVerIdLookup");\r
77                 \r
78                         session.save (wdsm);\r
79                         session.getTransaction ().commit ();\r
80                 } catch (Exception e) {\r
81                         msoLogger.error (MessageEnum.APIH_DB_INSERT_EXC, "", "", MsoLogger.ErrorCode.SchemaError, "Exception in insertWatchdogServiceModVerIdLookup", e);\r
82                         msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, e.getMessage (), "WatchdogServiceModVerIdLookupDB", "saveRequest", null);\r
83                         if (session != null) {\r
84                                 session.close ();\r
85                         }\r
86                         // throw an Exception in the event of a DB insert failure so that the calling routine can exit\r
87                         throw e;\r
88                 } finally {\r
89                         if (session != null && session.isOpen ()) {\r
90                                 session.close ();\r
91                 }\r
92                 msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successfully", "WatchdogServiceModVerIdLookupDB", "insertWatchdogServiceModVerIdLookup", null);\r
93                 }\r
94         }\r
95                 \r
96   }\r
97         \r
98     /**\r
99      * Retrieve from WATCHDOG_SERVICE_MOD_VER_ID_LOOKUP.\r
100      *\r
101      * @param distributionId\r
102      * @return WatchdogServiceModVerIdLookup\r
103      */\r
104         public String getWatchdogServiceModVerId(String distributionId) {\r
105                 long startTime = System.currentTimeMillis ();\r
106                 msoLogger.debug ("Retrieve WatchdogServiceModVerIdLookup with distributionId: " + distributionId );\r
107 \r
108                 Session session = sessionFactoryRequestDB.getSessionFactory ().openSession ();\r
109                 String serviceModelVersionId = null;\r
110                 try {\r
111                         session.beginTransaction ();\r
112                         Query query = session.createQuery ("Select serviceModelVersionId FROM WatchdogServiceModVerIdLookup WHERE distributionId = :distributionId ");\r
113                         query.setParameter ("distributionId", distributionId);\r
114                         serviceModelVersionId = (String) query.uniqueResult();\r
115                 } finally {\r
116                         if (session != null && session.isOpen ()) {\r
117                                 session.close ();\r
118                         }\r
119                         msoLogger.recordMetricEvent (startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, \r
120                                                                                 "Successfully", "WatchdogServiceModVerIdLookupDB", "getWatchdogServiceModVerId", null);\r
121                 }\r
122                 return serviceModelVersionId;\r
123         }\r
124 }\r