Recipe to configure File System Storage
Project description
What is iw.recipe.fss ?
This recipe configure FSS Storage.
How to use iw.recipe.fss ?
The recipe is called by buildout, let’s create an instance of it, with a buildout simulated context:
>>> import os >>> data_dir = os.path.join(test_dir, 'data') >>> bin_dir = os.path.join(data_dir, 'bin') >>> var_dir = os.path.join(data_dir, 'var2') >>> conf_dir = os.path.join(data_dir, 'etc') >>> buildout = {'instance': {'location': data_dir}, ... 'buildout': {'bin-directory': bin_dir}} >>> name = 'fss' >>> options = {'conf': os.path.join(conf_dir, ... 'plone-filesystemstorage.conf'), ... 'storages': """ ... storage1 /site/storage1 ... storage2 /site/storage2 flat ... storage3 /site/storage3 flat %s/storage %s/backup ... """ % (var_dir, var_dir)}
Creating the recipe:
>>> from iw.recipe.fss import Recipe >>> recipe = Recipe(buildout, name, options)
Running it:
>>> paths = list(recipe.install())
Checking files created:
>>> paths.sort() >>> paths ['...data/etc/plone-filesystemstorage.conf', '...data/var/fss_backup_storage1', '...data/var/fss_backup_storage2', '...data/var/fss_storage_storage1', '...data/var/fss_storage_storage2', '...data/var2/backup', '...data/var2/storage']
Checking the conf file:
>>> conf = open(os.path.join(conf_dir, ... 'plone-filesystemstorage.conf')) >>> print conf.read() # FSS conf file generated by iw.recipe.fss <BLANKLINE> # main storage storage1 for /site/storage1 storage-path /.../data/var/fss_storage_storage1 backup-path /.../data/var/fss_backup_storage1 storage-strategy directory <BLANKLINE> # storage storage2 <site /site/storage2> storage-path /.../data/var/fss_storage_storage2 backup-path /.../data/var/fss_backup_storage2 storage-strategy flat </site> <BLANKLINE> # storage storage3 <site /site/storage3> storage-path /.../data/var2/storage backup-path /.../data/var2/backup storage-strategy flat </site> <BLANKLINE> <BLANKLINE>
Cleaning up the files:
>>> for path in paths: ... try: ... os.rmdir(path) ... except: ... os.remove(path)