[Erp5-report] r33817 rafael - in /erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase:...
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 17 20:00:20 CET 2010
Author: rafael
Date: Wed Mar 17 20:00:18 2010
New Revision: 33817
URL: http://svn.erp5.org?rev=33817&view=rev
Log:
Initial import of recipe used to create one mysql database.
Added:
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt (with props)
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt (with props)
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/setup.py
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/__init__.py
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/__init__.py
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/
erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/__init__.py
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,9 @@
+Changelog
+=========
+
+1.0 (2010-03-17)
+----------------
+
+- Initial version
+ [Rafael Monnerat]
+
Propchange: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/CHANGES.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,46 @@
+Introduction
+============
+
+This recipe generates a new database on a mysql server.
+
+Example
+=======
+
+You can use it with a part like this::
+
+ [default-database]
+ recipe = erp5.recipe.mysqldatabase
+ mysql_database_name = somename
+ mysql_user = root
+ mysql_password =
+ mysql_superuser = root
+ mysql_superpassword =
+
+
+Options
+=======
+
+mysql_database_name
+ Mysql Database name.
+
+mysql_host
+ Hostname which is running your mysql server. By Default uses localhost.
+ (Optional).
+
+mysql_port
+ Port Number which is running your mysql server. By Default uses 3306.
+ (Optional).
+
+mysql_user
+ User of new database, used to grant privilegies on the new database.
+
+mysql_password
+ User's Password of new database, used to grant privilegies on the new
+ database.
+
+mysql_superuser
+ User of mysql used to connect to mysql server to create the database.
+
+mysql_superpassword
+ Password of user defined at mysql_superuser.
+
Propchange: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/setup.py
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/setup.py?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/setup.py (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/setup.py [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,34 @@
+from setuptools import setup, find_packages
+
+name = "erp5.recipe.mysqldatabase"
+version = '1.0'
+
+def read(name):
+ return open(name).read()
+
+long_description=( read('README.txt')
+ + '\n' +
+ read('CHANGES.txt')
+ )
+
+setup(
+ name = name,
+ version = version,
+ author = "Nexedi",
+ author_email = "info at nexedi.com",
+ description = "ZC Buildout recipe for create a mysql database",
+ long_description=long_description,
+ license = "ZPL 2.1",
+ keywords = "zope2 buildout",
+ url='http://www.erp5.org/HowToUseBuildout',
+ classifiers=[
+ "License :: OSI Approved :: Zope Public License",
+ "Framework :: Buildout",
+ "Framework :: Zope2",
+ ],
+ packages = find_packages('src'),
+ package_dir = {'': 'src'},
+ install_requires = ['zc.recipe.egg', ],
+ namespace_packages = ['erp5', 'erp5.recipe'],
+ entry_points = {'zc.buildout': ['default = %s:Recipe' % name]},
+ )
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/__init__.py
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/__init__.py?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/__init__.py (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/__init__.py [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/__init__.py
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/__init__.py?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/__init__.py (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/__init__.py [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/__init__.py
URL: http://svn.erp5.org/erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/__init__.py?rev=33817&view=auto
==============================================================================
--- erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/__init__.py (added)
+++ erp5/trunk/buildout/local-eggs/erp5.recipe.mysqldatabase/src/erp5/recipe/mysqldatabase/__init__.py [utf8] Wed Mar 17 20:00:18 2010
@@ -1,0 +1,83 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+# Copyright (c) 2006-2008 Zope Corporation and Contributors.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+
+import os
+import logging
+
+import zc.buildout
+
+class Recipe(object):
+
+ def __init__(self, buildout, name, options):
+ self.buildout, self.options, self.name = buildout, options, name
+ self.logger=logging.getLogger(self.name)
+
+ options['location'] = os.path.join(
+ buildout['buildout']['parts-directory'],
+ self.name,
+ )
+
+ options.setdefault('mysql_host', 'localhost')
+
+ options.setdefault('mysql_port', '3306')
+
+ def install(self):
+ options = self.options
+ location = options['location']
+
+ try:
+ import MySQLdb
+ except ImportError:
+ raise ImportError('To be able to create database MySQLdb is required'
+ ' Install system wide or use software generated python')
+ database_name, user, password, port, host\
+ = \
+ options.get('mysql_database_name'), \
+ options.get('mysql_user'), \
+ options.get('mysql_password'), \
+ options.get('mysql_port'), \
+ options.get('mysql_host')
+
+ if not (database_name and user):
+ raise zc.buildout.UserError('database_name and 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' % database_name)
+ privileges = ['GRANT ALL PRIVILEGES ON %s.* TO %s' % (
+ database_name, user)]
+
+ if host:
+ privileges.append('@%s' % host)
+ if password:
+ privileges.append(' IDENTIFIED BY "%s"' % password)
+ cursor.execute(''.join(privileges))
+ connection.commit()
+ connection.close()
+
+ return location
+
+ update = install
+
+
More information about the Erp5-report
mailing list