fc39af91c1b3bce1d68ec368cd9ee922d825edb2
[portal/sdk.git] /
1 /*-
2  * ================================================================================
3  * eCOMP Portal SDK
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20 package org.openecomp.portalsdk.analytics.util.upgrade;
21  
22 import java.io.*;
23 import java.sql.*;
24 import java.util.*;
25 import javax.servlet.http.*;
26
27 import org.openecomp.portalsdk.analytics.controller.*;
28 import org.openecomp.portalsdk.analytics.error.*;
29 import org.openecomp.portalsdk.analytics.model.*;
30 import org.openecomp.portalsdk.analytics.model.base.*;
31 import org.openecomp.portalsdk.analytics.model.definition.*;
32 import org.openecomp.portalsdk.analytics.model.runtime.*;
33 import org.openecomp.portalsdk.analytics.system.*;
34 import org.openecomp.portalsdk.analytics.util.*;
35 import org.openecomp.portalsdk.analytics.view.*;
36 import org.openecomp.portalsdk.analytics.xmlobj.*;
37
38 public class SystemUpgrade extends org.openecomp.portalsdk.analytics.RaptorObject {
39         private static final String upgradeFromVersion = "1.x";
40         private static final String upgradeToVersion   = "2.0";
41
42 /*  This script upgrades the Raptor database to a newer version
43         Make sure you execute the "upgrade_v0_to_v1_0_before_java.sql" before running this
44         and "upgrade_v0_to_v1_0_after_java.sql" afterwards 
45         
46         URL example: http://localhost:8082/databank/dispatcher?action=raptor&r_action=system_upgrade
47 */
48         public static String upgradeDB(HttpServletRequest request) {
49                 request.setAttribute("system_message", "System upgrade disabled");
50                 return "raptor/blank.jsp";
51                 
52 /*              try {
53                         if(upgradeFromVersion.equals("1.x")&&upgradeToVersion.equals("2.0"))
54                                 upgrateFromV1ToV2_0(request);
55                         else
56                                 throw new RuntimeException("Invalid version");
57                                 
58                         return "raptor/blank.jsp";
59                 } catch(Exception e) {
60                         return (new ErrorHandler()).processFatalError(request, e);
61                 }*/
62         }   // upgradeDB
63
64         private static void upgrateFromV1ToV2_0(HttpServletRequest request) throws Exception {
65                 StringBuffer log = new StringBuffer();
66                 log.append("Starting upgrade...<br>\n");
67                 
68                 DataSet ds = DbUtils.executeQuery("SELECT cr.rep_id, cr.sched_mailto_user_ids FROM cr_report cr");
69                 for(int i=0; i<ds.getRowCount(); i++) {
70                         String repId = ds.getString(i, 0);
71                         log.append("<li>Processing report ["+repId+"]: ");
72                         
73                         Connection connection = DbUtils.startTransaction();
74                         String emailIds = nvls(ds.getString(i, 1));
75                         if(emailIds.length()>0)
76                                 try {
77                                         log.append("Converting emails ");
78                                         StringTokenizer st = new StringTokenizer(emailIds, ",");
79                                         while(st.hasMoreTokens()) {
80                                                 String userId = nvls(st.nextToken());
81                                                 log.append(userId);
82                                                 if(userId.length()>0)
83                                                         DbUtils.executeUpdate(connection, "INSERT INTO cr_report_schedule_users (rep_id, user_id) VALUES ("+repId+", "+userId+")");
84                                                 log.append("-success, ");
85                                         }   // while
86                                         log.append(" <font color=green>COMPLETED</font>; ");
87                                 } catch(Exception e) {
88                                         log.append("-<font color=red>FAILED</font>; ");
89                                 }
90                         
91                         String reportXML = ReportLoader.loadCustomReportXML(repId);
92                         ReportDefinition rdef = ReportDefinition.unmarshal(reportXML, repId, request);
93                         ReportWrapper rw = new ReportWrapper(rdef.cloneCustomReport(), repId, null, null, null, null, null, null, false);
94                         
95                         for(Iterator iter=rw.getAllColumns().iterator(); iter.hasNext(); ) {
96                                 DataColumnType col = (DataColumnType) iter.next();
97                                 String drillDownURL = nvls(col.getDrillDownURL());
98                                 if(drillDownURL.startsWith("dispatcher?action=custrep.run&c_master=")) {
99                                         drillDownURL = AppUtils.getReportExecuteActionURL()+drillDownURL.substring("dispatcher?action=custrep.run&c_master=".length());
100                                         log.append("Drill-down processed; ");
101                                         col.setDrillDownURL(drillDownURL);
102                                 }
103                         }   // for
104                         
105                         reportXML = rw.marshal();
106
107                         /*PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(AppUtils.getTempFolderPath()+AppUtils.getUserID(request)))));
108                         xmlOut.println(reportXML);
109                         xmlOut.close();*/
110
111                         try {
112                                 ReportLoader.updateCustomReportRec(connection, rw, reportXML);
113                                 DbUtils.commitTransaction(connection);
114                                 log.append("<font color=green>REPORT UPDATED</font></li>\n");
115                         } catch(Exception e) {
116                                 log.append("<font color=red>REPORT UPDATE FAILED</font></li>\n");
117                                 DbUtils.rollbackTransaction(connection);
118                         } finally {
119                 DbUtils.clearConnection(connection);         
120             }
121                 }   // for
122                 
123                 log.append("<br>\nSystem upgrade successfully completed...<br>\n");
124                 request.setAttribute("system_message", log.toString());
125         }   // upgrateFromV1ToV2_0
126
127 }       // SystemUpgrade