From 016a50633c143211e50a8a5a1f242b729e09b0a0 Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 19 May 2011 11:22:17 -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 Conflicts: server/src/com/cloud/server/ConfigurationServerImpl.java --- .../cloud/server/ConfigurationServerImpl.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java index d11649661e3..92dbeac6c3a 100644 --- a/server/src/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/com/cloud/server/ConfigurationServerImpl.java @@ -33,6 +33,7 @@ import java.net.UnknownHostException; 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; @@ -366,16 +367,29 @@ public class ConfigurationServerImpl implements ConfigurationServer { } catch (SQLException ex) { } - //save default security group - insertSql = "INSERT INTO `cloud`.`security_group` (name, description, account_id, domain_id) " + - "VALUES ('default', 'Default Security Group', 2, 1)"; - - 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) " + + "VALUES ('default', 'Default Security Group', 2, 1)"; + + + 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); } }