Package: rod.recipe.mongodb
Buildout recipe for downloading and installing mongoDB. Visithttp://www.mongodb.orgfor further details on mongoDB.Copyright and licenseCopyright 2009, 2010, 2011 Tobias RodaebelThis software is released under the GNU Lesser General Public License,
Version 3.CreditsThanks to Andreas Jung for provinding a patch to symlink all mongoDB binaries.Thanks to Stephan Hofmockel who contributed a patch for creating a start script
with custom command line parameters specified as buildout options.A brief documentationThis recipe takes a number of options:darwin-32bit-urlThe URL to download the 32 bit binary package for the darwin platform.darwin-64bit-urlThe URL to download the 64 bit binary package for the darwin platform.linux2-32bit-urlThe URL to download the 32 bit binary package for the linux platform.linux2-64bit-urlThe URL to download the 64 bit binary package for the linux platform.(And all options of mongod version v1.6.0 as described below.)TestsWe will define a buildout template used by the recipe:>>> buildout_cfg = """
... [buildout]
... parts = mongodb
...
... [mongodb]
... recipe = rod.recipe.mongodb
... darwin-32bit-url = http://downloads.mongodb.org/osx/mongodb-osx-i386-1.6.5.tgz
... darwin-64bit-url = http://downloads.mongodb.org/osx/mongodb-osx-x86_64-1.6.5.tgz
... linux2-32bit-url = http://downloads.mongodb.org/linux/mongodb-linux-i686-1.6.5.tgz
... linux2-64bit-url = http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.6.5.tgz
... """We’ll start by creating a buildout:>>> import os.path
>>> write('buildout.cfg', buildout_cfg)Running the buildout gives us:>>> output = system(buildout)
>>> 'rod.recipe.mongodb: downloading mongoDB distribution...' in output
TrueCheck whether the binaries are copied:>>> set(os.listdir('bin')).issuperset(['mongo', 'mongod', 'mongodump', 'mongoexport', 'mongofiles', 'mongoimport', 'mongorestore', 'mongos', 'mongosniff', 'mongostat'])
TrueA start script with the format ‘start_PART-NAME_mongod.sh’ should be generated.>>> 'start_mongodb_mongod.sh' in os.listdir('bin')
TrueIt is possible to change the name of this start script with the ‘script_name’
option. Furthermore all options of mongod (version v1.6.0) are supported via
buildout options. A more comprehensive recipe could be for example:>>> buildout_cfg = """
... [buildout]
... parts = mongodb
... [mongodb]
... recipe = rod.recipe.mongodb
... darwin-32bit-url = http://downloads.mongodb.org/osx/mongodb-osx-i386-1.6.5.tgz
... darwin-64bit-url = http://downloads.mongodb.org/osx/mongodb-osx-x86_64-1.6.5.tgz
... linux2-32bit-url = http://downloads.mongodb.org/linux/mongodb-linux-i686-1.6.5.tgz
... linux2-64bit-url = http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.6.5.tgz
... script_name = start_master.sh
... quiet=true
... fork=true
... logpath=${buildout:parts-directory}/mongodb/log
... dbpath=${buildout:parts-directory}/mongodb/data
... directoryperdb=true
... master=true
... update=true
... """>>> write('buildout.cfg', buildout_cfg)Re-running the buildout:>>> output = system(buildout)Changes1.2.2 2011-01-21Added buildout option ‘update=true/false’ to force or prevent updating
the part.1.2.1 2010-08-11Added missing command line parameters for Replica Sets (MongoDB 1.6.0).1.2.0 2010-05-16Creating start script with command line parameters specified as buildout
options.1.1.4 2010-04-18Symlinking rather than copying binaries.1.1.0 2010-04-15Copying all MongoDB binaries into the ‘bin’ folder of the buildout
environment (ajung).1.0.1 2009-08-21Removing part before updating.1.0.0 2009-08-14Initial release.