From 0be5965a902c76b10dd318ce072bd5475f02729c Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 19 May 2011 11:18:48 -0700 Subject: [PATCH] bug 9939: create 'default' security group for default "admin" user only after ensuring that it doesn't exist already status 9939: resolved fixed --- .../cloud/server/ConfigurationServerImpl.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java index da98df61b4e..0aa9f60348f 100644 --- a/server/src/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/com/cloud/server/ConfigurationServerImpl.java @@ -31,6 +31,7 @@ import java.net.SocketException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.List; @@ -376,16 +377,28 @@ public class ConfigurationServerImpl implements ConfigurationServer { } catch (SQLException ex) { } - //save default security group - insertSql = "INSERT INTO `cloud`.`security_group` (name, description, account_id, domain_id, account_name) " + - "VALUES ('default', 'Default Security Group', 2, 1, 'admin')"; - - txn = Transaction.currentTxn(); try { + insertSql = "SELECT * FROM `cloud`.`security_group` where account_id=2 and name='default'"; PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql); - stmt.executeUpdate(); - } catch (SQLException ex) { + ResultSet rs = stmt.executeQuery(); + if (!rs.next()) { + //save default security group + insertSql = "INSERT INTO `cloud`.`security_group` (name, description, account_id, domain_id, account_name) " + + "VALUES ('default', 'Default Security Group', 2, 1, 'admin')"; + + + txn = Transaction.currentTxn(); + try { + stmt = txn.prepareAutoCloseStatement(insertSql); + stmt.executeUpdate(); + } catch (SQLException ex) { + s_logger.warn("Failed to create default security group for default admin account due to ", ex); + } + } + rs.close(); + } catch (Exception ex) { + s_logger.warn("Failed to create default security group for default admin account due to ", ex); } }