{ "info": { "author": "Ingeniweb", "author_email": "support@ingeniweb.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Supported options\n=================\n\nThe recipe supports the following options:\n\nconf\n Filesystem path for the configuration file. Need the complete path to the\n file.\n\nzope-instances\n List of filesystem paths for standalone zope instances or ZEO client\n instances. One path by line.\n\nstorages\n List of FSS configurations for your buildout.\n The first line is for the global configuration. Following lines are by zope\n path specific configurations.\n\n Each line is build on the below model:\n name zope_path fss_strategy storage_filesystem_path\n backup_filesystem_path\n\n The two first parameters are required. Others are needed sequentially: if\n you need to define storage_filesystem_path you have to define fss_strategy.\n It's a space based configuration: don't use spaces in parameters.\n\n name\n a name for these part of the configuration\n\n zope_path\n an absolute path in the ZODB\n\n fss_strategy (optional)\n a strategy between directory (default), flat, site1 and site2\n\n storage_filesystem_path (optional)\n filesystem path where active files are stored. Default path is\n $buildout_path/var/fss_storage_$name\n\n backup_filesystem_path (optional)\n filesystem path where files backup are stored. Default path is\n $buildout_path/var/fss_backup_$name\n\nExample::\n\n [fss]\n recipe = iw.recipe.fss\n ## Deprecated\n #conf = ${zopeinstance:location}/etc/plone-filesystemstorage.conf\n # Replacement for 'conf' option\n zope-instances =\n ${zeoclient1:location}\n ${zeoclient2:location}\n storages =\n # The first is always generic\n global /\n # Others are always specific\n pone_flat /site flat /somewhere/files /somewhere/files_backup\n\n\n\nExample usage\n=============\n\nThe recipe is called by buildout, let's create an instance of it, with\na buildout simulated context::\n\n >>> from zc.buildout.testing import *\n >>> import os; join = os.path.join\n >>> data_dir = join(test_dir, 'data')\n >>> data2_dir = join(test_dir, 'data2')\n >>> bin_dir = join(data_dir, 'bin')\n >>> var_dir = join(data_dir, 'var2')\n >>> conf_dir = join(data_dir, 'etc')\n >>> conf2_dir = join(data2_dir, 'etc')\n >>> buildout = {'zeoclient1': {'location': data_dir},\n ... 'zeoclient2': {'location': data2_dir},\n ... 'buildout': {'bin-directory': bin_dir}}\n >>> name = 'fss'\n >>> options = {'zope-instances': '''\n ... %(zeoclient1_location)s\n ... %(zeoclient2_location)s\n ... ''' % {'zeoclient1_location': data_dir, 'zeoclient2_location': data2_dir},\n ... 'storages': \"\"\"\n ... global /\n ... storage2 /site/storage2 flat\n ... storage3 /site/storage3 flat %(var)s/storage\n ... storage4 /site/storage4 flat %(var)s/sub/storage %(var)s/sub/backup\n ... \"\"\" % {'var': var_dir}}\n\nCreating the recipe::\n\n >>> from iw.recipe.fss import Recipe\n >>> recipe = Recipe(buildout, name, options)\n\nRunning it::\n\n >>> paths = list(recipe.install())\n\nChecking files created. We don't want this recipe to list the created dir, so \nin case of uninstallation, they are never removed::\n\n >>> paths.sort()\n >>> paths\n ['...data/etc/plone-filesystemstorage.conf', '...data2/etc/plone-filesystemstorage.conf']\n\nChecking the conf file::\n\n >>> conf = open(join(conf_dir,\n ... 'plone-filesystemstorage.conf'))\n >>> print conf.read()\n # FSS conf file generated by iw.recipe.fss\n \n # main storage global for /\n storage-path /.../data/var/fss_storage_global\n backup-path /.../data/var/fss_backup_global\n storage-strategy directory\n \n # storage storage2\n \n storage-path /.../data/var/fss_storage_storage2\n backup-path /.../data/var/fss_backup_storage2\n storage-strategy flat\n \n \n # storage storage3\n \n storage-path /.../data/var2/storage\n backup-path /.../data/var/fss_backup_storage3\n storage-strategy flat\n \n \n # storage storage4\n \n storage-path /.../sub/storage\n backup-path /.../sub/backup\n storage-strategy flat\n \n \n \n\nChecking the conf file::\n\n >>> conf = open(join(conf2_dir,\n ... 'plone-filesystemstorage.conf'))\n >>> print conf.read()\n # FSS conf file generated by iw.recipe.fss\n \n # main storage global for /\n storage-path /.../data/var/fss_storage_global\n backup-path /.../data/var/fss_backup_global\n storage-strategy directory\n \n # storage storage2\n \n storage-path /.../data/var/fss_storage_storage2\n backup-path /.../data/var/fss_backup_storage2\n storage-strategy flat\n \n \n # storage storage3\n \n storage-path /.../data/var2/storage\n backup-path /.../data/var/fss_backup_storage3\n storage-strategy flat\n \n \n # storage storage4\n \n storage-path /.../sub/storage\n backup-path /.../sub/backup\n storage-strategy flat\n \n \n \n\nExisting data\n=============\n\nLet's fill the data folder with data::\n\n >>> storage_dir = join(var_dir, 'storage')\n >>> data = 'xxxx'\n >>> f = open(join(storage_dir, 'data'), 'w')\n >>> f.write(data)\n >>> f.close()\n\n >>> ls(storage_dir)\n - data\n\nLet's re-run the recipe::\n\n >>> paths = list(recipe.install())\n\nLet's make sure that no existing path was returned by the\nrecipe, otherwise zc.buildout might treat them as new files.\nThe only new file we should get is the conf file because\nit's the only one that is re-written everytime::\n\n >>> paths\n ['...plone-filesystemstorage.conf']\n\nWe shouldn't loose the data::\n\n >>> ls(storage_dir)\n - data\n\n >>> for path in paths:\n ... try:\n ... os.rmdir(path)\n ... except:\n ... os.remove(path)\n\nAlternate configurations\n========================\n\nTry with conf option::\n\n >>> buildout = {'instance': {'location': data_dir},\n ... 'buildout': {'bin-directory': bin_dir}}\n >>> name = 'fss'\n >>> options = {'conf': join(conf_dir,\n ... 'plone-filesystemstorage.conf'),\n ... 'storages': \"\"\"\n ... global /\n ... storage2 /site/storage2 flat\n ... \"\"\" % {'var': var_dir}}\n >>> recipe = Recipe(buildout, name, options)\n >>> paths = list(recipe.install())\n\nChecking the conf file::\n\n >>> conf = open(join(conf_dir,\n ... 'plone-filesystemstorage.conf'))\n >>> print conf.read()\n # FSS conf file generated by iw.recipe.fss\n \n # main storage global for /\n storage-path /.../data/var/fss_storage_global\n backup-path /.../data/var/fss_backup_global\n storage-strategy directory\n \n # storage storage2\n \n storage-path /.../data/var/fss_storage_storage2\n backup-path /.../data/var/fss_backup_storage2\n storage-strategy flat\n \n \n\nTry without conf nor zope-instances option::\n\n >>> buildout = {'instance': {'location': data_dir},\n ... 'buildout': {'bin-directory': bin_dir}}\n >>> name = 'fss'\n >>> options = {'storages': \"\"\"\n ... global /\n ... storage2 /site/storage2 flat\n ... \"\"\" % {'var': var_dir}}\n >>> recipe = Recipe(buildout, name, options)\n >>> paths = list(recipe.install())\n\nChecking the conf file::\n\n >>> conf = open(join(conf_dir,\n ... 'plone-filesystemstorage.conf'))\n >>> print conf.read()\n # FSS conf file generated by iw.recipe.fss\n \n # main storage global for /\n storage-path /.../data/var/fss_storage_global\n backup-path /.../data/var/fss_backup_global\n storage-strategy directory\n \n # storage storage2\n \n storage-path /.../data/var/fss_storage_storage2\n backup-path /.../data/var/fss_backup_storage2\n storage-strategy flat\n \n ", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://ingeniweb.svn.sourceforge.net/viewvc/ingeniweb/iw.recipe.fss", "keywords": "recipe zope plone fss", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "iw.recipe.fss", "package_url": "https://pypi.org/project/iw.recipe.fss/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/iw.recipe.fss/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://ingeniweb.svn.sourceforge.net/viewvc/ingeniweb/iw.recipe.fss" }, "release_url": "https://pypi.org/project/iw.recipe.fss/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Recipe to configure File System Storage", "version": "0.2.1" }, "last_serial": 755363, "releases": { "0.1.1dev-r6553": [], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6423d0203c76cba030327c165f9e0fd4", "sha256": "64c96ba299185d1feb4290cf99a0afe5e6661acbef6ea13b5e3ebfdb4ef16306" }, "downloads": -1, "filename": "iw.recipe.fss-0.1.2-py2.4.egg", "has_sig": false, "md5_digest": "6423d0203c76cba030327c165f9e0fd4", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 11152, "upload_time": "2008-02-20T17:36:56", "url": "https://files.pythonhosted.org/packages/13/5a/89bb95fca78d5a7725c8750ce95cf39138e69231fcfaea2309c2371b5646/iw.recipe.fss-0.1.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "9d951af3bf2d5c95a060cb81288da536", "sha256": "56f6cdce4b05461ba29a5cf02768edb85dd8f9f9f1e4a9aae7c5fb5a9a8a817a" }, "downloads": -1, "filename": "iw.recipe.fss-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9d951af3bf2d5c95a060cb81288da536", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4988, "upload_time": "2008-02-20T17:36:55", "url": "https://files.pythonhosted.org/packages/65/f0/e11b7dec0de25afe05b95ba25462149a89c0a19bf4d28bc175e27da1579a/iw.recipe.fss-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5d8b62fd71c667f14db0f8528c031fed", "sha256": "0aec1ea9a55317f1b96b83f67a514f411b582eeb0e3cd52bcecb1172a3d4ccef" }, "downloads": -1, "filename": "iw.recipe.fss-0.1.3-py2.4.egg", "has_sig": false, "md5_digest": "5d8b62fd71c667f14db0f8528c031fed", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 11634, "upload_time": "2008-02-27T10:23:48", "url": "https://files.pythonhosted.org/packages/1b/db/46145f7b7ffdb621d25f807cd81e7735b60c9545084740c503a090b0899d/iw.recipe.fss-0.1.3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "f7d0d5c2b98846b3dd9aacb7cdb44209", "sha256": "11e1c33d124d4e1d9d751b8c13aed0b35ca12adaf45da19b35c86ef0da53a1c5" }, "downloads": -1, "filename": "iw.recipe.fss-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f7d0d5c2b98846b3dd9aacb7cdb44209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5290, "upload_time": "2008-02-27T10:23:49", "url": "https://files.pythonhosted.org/packages/a8/14/442c16202bdfd164869ce8236744cc22b598fe55634d4aed72eb5ab813d4/iw.recipe.fss-0.1.3.tar.gz" } ], "0.1bdev-r6471": [ { "comment_text": "", "digests": { "md5": "6ccbbc9f3264e35b31896517d81a4239", "sha256": "8515ae8572c1a1e0856200e90017f19857b55f4cf93112d02db8442d3d635b28" }, "downloads": -1, "filename": "iw.recipe.fss-0.1bdev_r6471-py2.4.egg", "has_sig": false, "md5_digest": "6ccbbc9f3264e35b31896517d81a4239", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 10695, "upload_time": "2007-10-22T12:51:44", "url": "https://files.pythonhosted.org/packages/1a/2d/5527474d76a9c52ceea54d7fa515d9c01ba402f9358a07b1077e46e0af04/iw.recipe.fss-0.1bdev_r6471-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "cea263ec677199aeb5340921e6bf7c48", "sha256": "da22c52e7be4a1db979169d5e278ade56b44d1ca29d3389e0f2fd1f60a0fb7f4" }, "downloads": -1, "filename": "iw.recipe.fss-0.1bdev_r6471-py2.5.egg", "has_sig": false, "md5_digest": "cea263ec677199aeb5340921e6bf7c48", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 10655, "upload_time": "2007-10-22T12:51:57", "url": "https://files.pythonhosted.org/packages/4d/19/c6c77c89076ae1394861ab3790dce3995523665cfe04b01c2f827d06ee84/iw.recipe.fss-0.1bdev_r6471-py2.5.egg" } ], "0.1c": [ { "comment_text": "", "digests": { "md5": "7ab460708f1b9cc4cf291a3e9495ff53", "sha256": "0d1ac306664886b503ed34f54c21e66f7edc7df079362ec61db57f68df28366b" }, "downloads": -1, "filename": "iw.recipe.fss-0.1c-py2.4.egg", "has_sig": false, "md5_digest": "7ab460708f1b9cc4cf291a3e9495ff53", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 11046, "upload_time": "2007-11-07T09:02:12", "url": "https://files.pythonhosted.org/packages/d2/df/9444e678d5f90a85daaf2e4553dedda58a8faf3efc4988a19dd670eaf773/iw.recipe.fss-0.1c-py2.4.egg" } ], "0.1dev-r6469": [ { "comment_text": "", "digests": { "md5": "8cbb8175bdaeb3464762edd072e22b40", "sha256": "e81ec93dbbee1d915e2963e36689117da72a312f4b986ea8ea98ea2744de5427" }, "downloads": -1, "filename": "iw.recipe.fss-0.1dev_r6469-py2.4.egg", "has_sig": false, "md5_digest": "8cbb8175bdaeb3464762edd072e22b40", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 10638, "upload_time": "2007-10-19T13:28:56", "url": "https://files.pythonhosted.org/packages/bd/96/40dbc371b7e226f9438812f2e6ee980653974f259bd7a83f5a28dca933ac/iw.recipe.fss-0.1dev_r6469-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "901cfdc568d07e6dc8c5ad5ccf9edb3e", "sha256": "5e7d45691cbfcf50cc908c8313aec55aaad4f1ccbed3986b5f35232150c22375" }, "downloads": -1, "filename": "iw.recipe.fss-0.1dev_r6469-py2.5.egg", "has_sig": false, "md5_digest": "901cfdc568d07e6dc8c5ad5ccf9edb3e", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 10615, "upload_time": "2007-10-19T13:29:08", "url": "https://files.pythonhosted.org/packages/d7/fe/363f208620e94cba3f839a2c7af542f9fc704919da4eca6d47b121b75be3/iw.recipe.fss-0.1dev_r6469-py2.5.egg" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "98c4f7a919b23c0d8b505975a8e371a3", "sha256": "a26d1b3e82ef4d566e53168da8f5ca55c8f096dc0109f5ffce1258196b6de627" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.0-py2.4.egg", "has_sig": false, "md5_digest": "98c4f7a919b23c0d8b505975a8e371a3", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 13758, "upload_time": "2008-05-23T22:14:33", "url": "https://files.pythonhosted.org/packages/ca/ad/418766e055a02f717a7a20039ca00a9919495b7b4f60f664e074a806c1e8/iw.recipe.fss-0.2.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "9d5d9fbc16437409da416636332117dd", "sha256": "19028bffefcda4e6fa8dea5fa3251624da4d0c559cce4cc1fe453647f9d0870a" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9d5d9fbc16437409da416636332117dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7933, "upload_time": "2008-05-23T22:14:32", "url": "https://files.pythonhosted.org/packages/96/48/5d39804678396e06c63341fa2ba5ed2f13853e2653d70b490d15c86348ba/iw.recipe.fss-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "741f9fdbcf46c1ececf4890138bf4bea", "sha256": "7b0578b2cecc9fd9ba672f5f530cefaaf38d789ab31a318fae764e997d363f87" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.1-py2.4.egg", "has_sig": false, "md5_digest": "741f9fdbcf46c1ececf4890138bf4bea", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 13739, "upload_time": "2008-06-03T14:03:52", "url": "https://files.pythonhosted.org/packages/49/d2/c75343b249784e37832f456d6f3e0442a0dca8cfaa42275e842e30c20b89/iw.recipe.fss-0.2.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b1bc8831b8edaa26e28ad8ac4265b6ba", "sha256": "522d0d81165186c7776a79b85a7dbb7e5d8b888e500e4f106eb8e26eee25b07d" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b1bc8831b8edaa26e28ad8ac4265b6ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8003, "upload_time": "2008-06-03T14:03:52", "url": "https://files.pythonhosted.org/packages/ac/07/8901b40b4fd803bf5efcac20ad78dc2233bbede9d4422fcd7f0fa51ce379/iw.recipe.fss-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "741f9fdbcf46c1ececf4890138bf4bea", "sha256": "7b0578b2cecc9fd9ba672f5f530cefaaf38d789ab31a318fae764e997d363f87" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.1-py2.4.egg", "has_sig": false, "md5_digest": "741f9fdbcf46c1ececf4890138bf4bea", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 13739, "upload_time": "2008-06-03T14:03:52", "url": "https://files.pythonhosted.org/packages/49/d2/c75343b249784e37832f456d6f3e0442a0dca8cfaa42275e842e30c20b89/iw.recipe.fss-0.2.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b1bc8831b8edaa26e28ad8ac4265b6ba", "sha256": "522d0d81165186c7776a79b85a7dbb7e5d8b888e500e4f106eb8e26eee25b07d" }, "downloads": -1, "filename": "iw.recipe.fss-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b1bc8831b8edaa26e28ad8ac4265b6ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8003, "upload_time": "2008-06-03T14:03:52", "url": "https://files.pythonhosted.org/packages/ac/07/8901b40b4fd803bf5efcac20ad78dc2233bbede9d4422fcd7f0fa51ce379/iw.recipe.fss-0.2.1.tar.gz" } ] }