2 * ================================================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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 * ================================================================================
20 package org.openecomp.portalsdk.analytics.util.upgrade;
25 import javax.servlet.http.*;
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.*;
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";
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
46 URL example: http://localhost:8082/databank/dispatcher?action=raptor&r_action=system_upgrade
48 public static String upgradeDB(HttpServletRequest request) {
49 request.setAttribute("system_message", "System upgrade disabled");
50 return "raptor/blank.jsp";
53 if(upgradeFromVersion.equals("1.x")&&upgradeToVersion.equals("2.0"))
54 upgrateFromV1ToV2_0(request);
56 throw new RuntimeException("Invalid version");
58 return "raptor/blank.jsp";
59 } catch(Exception e) {
60 return (new ErrorHandler()).processFatalError(request, e);
64 private static void upgrateFromV1ToV2_0(HttpServletRequest request) throws Exception {
65 StringBuffer log = new StringBuffer();
66 log.append("Starting upgrade...<br>\n");
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+"]: ");
73 Connection connection = DbUtils.startTransaction();
74 String emailIds = nvls(ds.getString(i, 1));
75 if(emailIds.length()>0)
77 log.append("Converting emails ");
78 StringTokenizer st = new StringTokenizer(emailIds, ",");
79 while(st.hasMoreTokens()) {
80 String userId = nvls(st.nextToken());
83 DbUtils.executeUpdate(connection, "INSERT INTO cr_report_schedule_users (rep_id, user_id) VALUES ("+repId+", "+userId+")");
84 log.append("-success, ");
86 log.append(" <font color=green>COMPLETED</font>; ");
87 } catch(Exception e) {
88 log.append("-<font color=red>FAILED</font>; ");
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);
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);
105 reportXML = rw.marshal();
107 /*PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(AppUtils.getTempFolderPath()+AppUtils.getUserID(request)))));
108 xmlOut.println(reportXML);
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);
119 DbUtils.clearConnection(connection);
123 log.append("<br>\nSystem upgrade successfully completed...<br>\n");
124 request.setAttribute("system_message", log.toString());
125 } // upgrateFromV1ToV2_0