From 42c9fd6c58372b8d2a989fd17134abb44d8b5d9a Mon Sep 17 00:00:00 2001
From: Rafael Monnerat <rafael@nexedi.com>
Date: Wed, 17 Mar 2010 19:50:41 +0000
Subject: [PATCH] Use erp5.recipe.mysqldatabase to create the database.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33821 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../erp5.recipe.standaloneinstance/setup.py   |  1 +
 .../recipe/standaloneinstance/__init__.py     | 41 ++-----------------
 2 files changed, 5 insertions(+), 37 deletions(-)

diff --git a/buildout/local-eggs/erp5.recipe.standaloneinstance/setup.py b/buildout/local-eggs/erp5.recipe.standaloneinstance/setup.py
index c1c9dc6090..2b1601060d 100644
--- a/buildout/local-eggs/erp5.recipe.standaloneinstance/setup.py
+++ b/buildout/local-eggs/erp5.recipe.standaloneinstance/setup.py
@@ -32,6 +32,7 @@ setup(
     namespace_packages = ['erp5', 'erp5.recipe'],
     install_requires = [
         'plone.recipe.zope2instance',
+        'erp5.recipe.mysqldatabase',
     ],
     zip_safe=False,
     entry_points = {'zc.buildout': ['default = %s:Recipe' % name]},
diff --git a/buildout/local-eggs/erp5.recipe.standaloneinstance/src/erp5/recipe/standaloneinstance/__init__.py b/buildout/local-eggs/erp5.recipe.standaloneinstance/src/erp5/recipe/standaloneinstance/__init__.py
index bb6806cecd..29a25a76b0 100644
--- a/buildout/local-eggs/erp5.recipe.standaloneinstance/src/erp5/recipe/standaloneinstance/__init__.py
+++ b/buildout/local-eggs/erp5.recipe.standaloneinstance/src/erp5/recipe/standaloneinstance/__init__.py
@@ -17,6 +17,7 @@ import os, sys
 from string import Template
 import zc.buildout
 import plone.recipe.zope2instance
+from erp5.recipe.mysqldatabase import Recipe as mysqlrecipe
 
 class WithMinusTemplate(Template):
   idpattern = '[_a-z][-_a-z0-9]*'
@@ -58,43 +59,9 @@ class Recipe(plone.recipe.zope2instance.Recipe):
     ws_locations = [d.location for d in ws]
 
     if options.get('mysql_create_database', 'false').lower() == 'true':
-      try:
-        import MySQLdb
-      except ImportError:
-        raise ImportError('To be able to create database MySQLdb is required'
-            ' Install system wide or use software generated python')
-      mysql_database_name, mysql_user, mysql_password, mysql_port, mysql_host\
-            = \
-          options.get('mysql_database_name'), \
-          options.get('mysql_user'), \
-          options.get('mysql_password'), \
-          options.get('mysql_port'), \
-          options.get('mysql_host')
-
-      if not (mysql_database_name and mysql_user):
-        raise zc.buildout.UserError('mysql_database_name and mysql_user are '
-          'required to create database and grant privileges')
-      connection = MySQLdb.connect(
-        host = self.options.get('mysql_host'),
-        port = int(self.options.get('mysql_port')),
-        user = self.options.get('mysql_superuser'),
-        passwd = self.options.get('mysql_superpassword'),
-      )
-      connection.autocommit(0)
-      cursor = connection.cursor()
-      cursor.execute(
-        'CREATE DATABASE IF NOT EXISTS %s DEFAULT CHARACTER SET utf8 COLLATE '
-        'utf8_unicode_ci' % mysql_database_name)
-      privileges = ['GRANT ALL PRIVILEGES ON %s.* TO %s' % (
-          mysql_database_name, mysql_user)]
-
-      if mysql_host:
-        privileges.append('@%s' % mysql_host)
-      if mysql_password:
-        privileges.append(' IDENTIFIED BY "%s"' % mysql_password)
-      cursor.execute(''.join(privileges))
-      connection.commit()
-      connection.close()
+       # Use mysqldatabase recipe for Create the mysql database.
+       mysqlrecipe(self.buildout, self.name, self.options).install()
+
 
     # What follows is a bit of a hack because the instance-setup mechanism
     # is a bit monolithic. We'll run mkzopeinstance and then we'll
-- 
2.30.9