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); } }