Repository: cloudstack Updated Branches: refs/heads/master 4d6c682f1 -> b2283d7a2
Fixed few resource leaks and added secstoragefirewallcfg command support to simulator Signed-off-by: Daan Hoogland <d...@onecht.net> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b2283d7a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b2283d7a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b2283d7a Branch: refs/heads/master Commit: b2283d7a28c7b46a5d67effab3cb39952d76dc51 Parents: 4d6c682 Author: Santhosh Edukulla <santhosh.eduku...@gmail.com> Authored: Mon Jun 23 17:09:21 2014 +0530 Committer: Daan Hoogland <d...@onecht.net> Committed: Tue Jun 24 23:19:47 2014 +0200 ---------------------------------------------------------------------- .../cloud/upgrade/dao/DatabaseAccessObject.java | 45 +++++------- .../utils/crypt/EncryptionSecretKeyChanger.java | 18 +++-- .../db/src/com/cloud/utils/db/ScriptRunner.java | 74 +++++++++----------- .../agent/manager/SimulatorManagerImpl.java | 6 +- 4 files changed, 60 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2283d7a/engine/schema/src/com/cloud/upgrade/dao/DatabaseAccessObject.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/DatabaseAccessObject.java b/engine/schema/src/com/cloud/upgrade/dao/DatabaseAccessObject.java index 836a537..1e620a5 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/DatabaseAccessObject.java +++ b/engine/schema/src/com/cloud/upgrade/dao/DatabaseAccessObject.java @@ -26,63 +26,50 @@ public class DatabaseAccessObject { private static Logger s_logger = Logger.getLogger(DatabaseAccessObject.class); - public void dropKey(Connection conn, String tableName, String key, boolean isForeignKey) { - PreparedStatement pstmt = null; - try { - if (isForeignKey) { - pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP FOREIGN KEY " + key); - } else { - pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP KEY " + key); - } + public void dropKey(Connection conn, String tableName, String key, boolean isForeignKey) + { + String alter_sql_str; + if (isForeignKey) { + alter_sql_str = "ALTER TABLE " + tableName + " DROP FOREIGN KEY " + key; + } else { + alter_sql_str = "ALTER TABLE " + tableName + " DROP KEY " + key; + } + try(PreparedStatement pstmt = conn.prepareStatement(alter_sql_str);) + { pstmt.executeUpdate(); s_logger.debug("Key " + key + " is dropped successfully from the table " + tableName); } catch (SQLException e) { - s_logger.warn("Ignored SQL Exception when trying to drop " + (isForeignKey ? "foreign " : "") + "key " + key + " on table " + tableName, e); - } finally { - closePreparedStatement(pstmt, "Ignored SQL Exception when trying to close PreparedStatement atfer dropping " + (isForeignKey ? "foreign " : "") + "key " + key - + " on table " + tableName); + s_logger.warn("Ignored SQL Exception when trying to drop " + (isForeignKey ? "foreign " : "") + "key " + key + " on table " + tableName, e); + } } public void dropPrimaryKey(Connection conn, String tableName) { - PreparedStatement pstmt = null; - try { - pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP PRIMARY KEY "); + try(PreparedStatement pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP PRIMARY KEY ");) { pstmt.executeUpdate(); s_logger.debug("Primary key is dropped successfully from the table " + tableName); } catch (SQLException e) { s_logger.warn("Ignored SQL Exception when trying to drop primary key on table " + tableName, e); - } finally { - closePreparedStatement(pstmt, "Ignored SQL Exception when trying to close PreparedStatement atfer dropping primary key on table " + tableName); } } public void dropColumn(Connection conn, String tableName, String columnName) { - PreparedStatement pstmt = null; - try { - pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP COLUMN " + columnName); + try (PreparedStatement pstmt = conn.prepareStatement("ALTER TABLE " + tableName + " DROP COLUMN " + columnName);){ pstmt.executeUpdate(); s_logger.debug("Column " + columnName + " is dropped successfully from the table " + tableName); } catch (SQLException e) { - s_logger.warn("Unable to drop columns using query " + pstmt + " due to exception", e); - } finally { - closePreparedStatement(pstmt, "Ignored SQL Exception when trying to close PreparedStatement after dropping column " + columnName + " on table " + tableName); + s_logger.warn("Unable to drop column " + columnName + " due to exception", e); } } public boolean columnExists(Connection conn, String tableName, String columnName) { boolean columnExists = false; - PreparedStatement pstmt = null; - try { - pstmt = conn.prepareStatement("SELECT " + columnName + " FROM " + tableName); + try (PreparedStatement pstmt = conn.prepareStatement("SELECT " + columnName + " FROM " + tableName);){ pstmt.executeQuery(); columnExists = true; } catch (SQLException e) { s_logger.warn("Field " + columnName + " doesn't exist in " + tableName, e); - } finally { - closePreparedStatement(pstmt, "Ignored SQL Exception when trying to close PreparedStatement atfer checking if column " + columnName + " existed on table " + tableName); } - return columnExists; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2283d7a/framework/db/src/com/cloud/utils/crypt/EncryptionSecretKeyChanger.java ---------------------------------------------------------------------- diff --git a/framework/db/src/com/cloud/utils/crypt/EncryptionSecretKeyChanger.java b/framework/db/src/com/cloud/utils/crypt/EncryptionSecretKeyChanger.java index 4cee081..ae103ff 100755 --- a/framework/db/src/com/cloud/utils/crypt/EncryptionSecretKeyChanger.java +++ b/framework/db/src/com/cloud/utils/crypt/EncryptionSecretKeyChanger.java @@ -105,8 +105,8 @@ public class EncryptionSecretKeyChanger { PropertiesConfiguration backupDBProps = null; System.out.println("Parsing db.properties file"); - try { - dbProps.load(new FileInputStream(dbPropsFile)); + try(FileInputStream db_prop_fstream = new FileInputStream(dbPropsFile);) { + dbProps.load(db_prop_fstream); backupDBProps = new PropertiesConfiguration(dbPropsFile); } catch (FileNotFoundException e) { System.out.println("db.properties file not found while reading DB secret key" + e.getMessage()); @@ -142,11 +142,10 @@ public class EncryptionSecretKeyChanger { //db.properties updated successfully if (encryptionType.equals("file")) { //update key file with new MS key - try { - FileWriter fwriter = new FileWriter(keyFile); - BufferedWriter bwriter = new BufferedWriter(fwriter); + try (FileWriter fwriter = new FileWriter(keyFile); + BufferedWriter bwriter = new BufferedWriter(fwriter);) + { bwriter.write(newMSKey); - bwriter.close(); } catch (IOException e) { System.out.println("Failed to write new secret to file. Please update the file manually"); } @@ -180,11 +179,10 @@ public class EncryptionSecretKeyChanger { } if (encryptionType.equals("file")) { //revert secret key in file - try { - FileWriter fwriter = new FileWriter(keyFile); - BufferedWriter bwriter = new BufferedWriter(fwriter); + try (FileWriter fwriter = new FileWriter(keyFile); + BufferedWriter bwriter = new BufferedWriter(fwriter);) + { bwriter.write(oldMSKey); - bwriter.close(); } catch (IOException e) { System.out.println("Failed to revert to old secret to file. Please update the file manually"); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2283d7a/framework/db/src/com/cloud/utils/db/ScriptRunner.java ---------------------------------------------------------------------- diff --git a/framework/db/src/com/cloud/utils/db/ScriptRunner.java b/framework/db/src/com/cloud/utils/db/ScriptRunner.java index 932b37b..45494b9 100644 --- a/framework/db/src/com/cloud/utils/db/ScriptRunner.java +++ b/framework/db/src/com/cloud/utils/db/ScriptRunner.java @@ -131,52 +131,44 @@ public class ScriptRunner { } else if (!fullLineDelimiter && trimmedLine.endsWith(getDelimiter()) || fullLineDelimiter && trimmedLine.equals(getDelimiter())) { command.append(line.substring(0, line.lastIndexOf(getDelimiter()))); command.append(" "); - Statement statement = conn.createStatement(); - - println(command); - - boolean hasResults = false; - if (stopOnError) { - hasResults = statement.execute(command.toString()); - } else { - try { - statement.execute(command.toString()); - } catch (SQLException e) { - e.fillInStackTrace(); - printlnError("Error executing: " + command); - printlnError(e); + try (Statement statement = conn.createStatement();) { + println(command); + boolean hasResults = false; + if (stopOnError) { + hasResults = statement.execute(command.toString()); + } else { + try { + statement.execute(command.toString()); + } catch (SQLException e) { + e.fillInStackTrace(); + printlnError("Error executing: " + command); + printlnError(e); + } } - } - - if (autoCommit && !conn.getAutoCommit()) { - conn.commit(); - } - - ResultSet rs = statement.getResultSet(); - if (hasResults && rs != null) { - ResultSetMetaData md = rs.getMetaData(); - int cols = md.getColumnCount(); - for (int i = 0; i < cols; i++) { - String name = md.getColumnLabel(i); - print(name + "\t"); + if (autoCommit && !conn.getAutoCommit()) { + conn.commit(); } - println(""); - while (rs.next()) { - for (int i = 1; i <= cols; i++) { - String value = rs.getString(i); - print(value + "\t"); + try(ResultSet rs = statement.getResultSet();) { + if (hasResults && rs != null) { + ResultSetMetaData md = rs.getMetaData(); + int cols = md.getColumnCount(); + for (int i = 0; i < cols; i++) { + String name = md.getColumnLabel(i); + print(name + "\t"); + } + println(""); + while (rs.next()) { + for (int i = 1; i <= cols; i++) { + String value = rs.getString(i); + print(value + "\t"); + } + println(""); + } } - println(""); + command = null; + Thread.yield(); } } - - command = null; - try { - statement.close(); - } catch (Exception e) { - // Ignore to workaround a bug in Jakarta DBCP - } - Thread.yield(); } else { int idx = line.indexOf("--"); if (idx != -1) http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b2283d7a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java index 321f06f..6c12ecb 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java @@ -111,6 +111,7 @@ import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand; import com.cloud.api.commands.CleanupSimulatorMockCmd; import com.cloud.api.commands.ConfigureSimulatorCmd; import com.cloud.api.commands.QuerySimulatorMockCmd; +import com.cloud.agent.api.SecStorageFirewallCfgCommand; import com.cloud.resource.SimulatorStorageProcessor; import com.cloud.simulator.MockConfigurationVO; import com.cloud.simulator.MockHost; @@ -410,9 +411,8 @@ public class SimulatorManagerImpl extends ManagerBase implements SimulatorManage answer = _mockNetworkMgr.setupPVLAN((PvlanSetupCommand)cmd); } else if (cmd instanceof StorageSubSystemCommand) { answer = this.storageHandler.handleStorageCommands((StorageSubSystemCommand)cmd); - } else if (cmd instanceof GetRouterAlertsCommand) { - answer = new Answer(cmd); - } else if (cmd instanceof VpnUsersCfgCommand || cmd instanceof RemoteAccessVpnCfgCommand || cmd instanceof SetMonitorServiceCommand || cmd instanceof AggregationControlCommand) { + } else if (cmd instanceof GetRouterAlertsCommand || cmd instanceof VpnUsersCfgCommand || cmd instanceof RemoteAccessVpnCfgCommand || cmd instanceof SetMonitorServiceCommand || cmd instanceof AggregationControlCommand || + cmd instanceof SecStorageFirewallCfgCommand) { answer = new Answer(cmd); } else { s_logger.error("Simulator does not implement command of type " + cmd.toString());