Skip to main content

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)

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page