Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

iw.recipe.fss package

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)
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page