CLOUDSTACK-5790: decrypted ldap hostname and port during upgrade as they are not encrypted now.

Conflicts:
	engine/schema/src/com/cloud/upgrade/dao/Upgrade421to430.java

Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
This commit is contained in:
Rajani Karuturi 2014-01-08 18:12:55 +05:30 committed by Abhinandan Prateek
parent 001e67ab02
commit f741d99c80
2 changed files with 36 additions and 3 deletions

View File

@ -21,8 +21,11 @@ import java.io.File;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Types;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.crypt.DBEncryptionUtil;
@ -88,6 +91,39 @@ public class Upgrade421to430 implements DbUpgrade {
pstmt.setString(3, desc); pstmt.setString(3, desc);
pstmt.executeUpdate(); pstmt.executeUpdate();
} }
/**
* if encrypted, decrypt the ldap hostname and port and then update as they are not encrypted now.
*/
pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.hostname'");
ResultSet resultSet = pstmt.executeQuery();
String hostname = null;
String port;
int portNumber = 0;
if (resultSet.next()) {
hostname = DBEncryptionUtil.decrypt(resultSet.getString(1));
}
pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.port'");
resultSet = pstmt.executeQuery();
if (resultSet.next()) {
port = DBEncryptionUtil.decrypt(resultSet.getString(1));
if (StringUtils.isNotBlank(port)) {
portNumber = Integer.valueOf(port);
}
}
if (StringUtils.isNotBlank(hostname)) {
pstmt = conn.prepareStatement("INSERT INTO `cloud`.`ldap_configuration`(hostname, port) VALUES(?,?)");
pstmt.setString(1, hostname);
if (portNumber != 0) {
pstmt.setInt(2, portNumber);
} else {
pstmt.setNull(2, Types.INTEGER);
}
pstmt.executeUpdate();
}
} catch (SQLException e) { } catch (SQLException e) {
throw new CloudRuntimeException("Unable to insert ldap configuration values ", e); throw new CloudRuntimeException("Unable to insert ldap configuration values ", e);
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {

View File

@ -616,9 +616,6 @@ CREATE TABLE `cloud`.`ldap_configuration` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `cloud`.`ldap_configuration`(hostname) SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.hostname' ;
UPDATE `cloud`.`ldap_configuration` SET port=(SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.port') WHERE hostname = (SELECT conf.value FROM `cloud` .`configuration` conf WHERE conf.name='ldap.hostname');
UPDATE `cloud`.`volumes` SET display_volume=1 where id>0; UPDATE `cloud`.`volumes` SET display_volume=1 where id>0;
create table `cloud`.`monitoring_services` ( create table `cloud`.`monitoring_services` (