c0b3d73189
Adding a constraints middleware that allows different constraints for a Swift-on-File storage policy. Currently, Swift allows only one set of object naming and metadata rules per cluster. As new storage policies are implemented, it is possible that different storage back-ends have different set of rules on how objects should be created for that specific storage system. Swift-on-File has different rules as objects name are mapped to a POSIX filesystem directory structure. For example: no names with double slashes or ending with slashes are allowed. At first a solution was proposed to include a generic patch in the upstream swift code, but after discussing with the Swift community it became clear that it would be better to have a global set of constraints that covers the whole cluster and if a specific storage policy has specific constraints than it should have its own middleware. Link to patch for reference: https://review.openstack.org/#/c/113325/ Change-Id: I323ead5d98bf5c087930ccf446d3e8d83075e584 Signed-off-by: Thiago da Silva <thiago@redhat.com>
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
# Copyright (c) 2013 Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from setuptools import setup, find_packages
|
|
from swiftonfile.swift import _pkginfo
|
|
|
|
|
|
setup(
|
|
name=_pkginfo.name,
|
|
version=_pkginfo.full_version,
|
|
description='SwiftOnfile',
|
|
license='Apache License (2.0)',
|
|
author='Red Hat, Inc.',
|
|
author_email='gluster-users@gluster.org',
|
|
url='https://github.com/swiftonfile/swiftonfile',
|
|
packages=find_packages(exclude=['test', 'bin']),
|
|
test_suite='nose.collector',
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable'
|
|
'Environment :: OpenStack'
|
|
'Intended Audience :: Information Technology'
|
|
'Intended Audience :: System Administrators'
|
|
'License :: OSI Approved :: Apache Software License'
|
|
'Operating System :: POSIX :: Linux'
|
|
'Programming Language :: Python'
|
|
'Programming Language :: Python :: 2'
|
|
'Programming Language :: Python :: 2.6'
|
|
'Programming Language :: Python :: 2.7'
|
|
],
|
|
install_requires=[],
|
|
scripts=[
|
|
'bin/swiftonfile-print-metadata',
|
|
],
|
|
entry_points={
|
|
'paste.app_factory': [
|
|
'object=swiftonfile.swift.obj.server:app_factory',
|
|
],
|
|
'paste.filter_factory': [
|
|
'sof_constraints=swiftonfile.swift.common.middleware.'
|
|
'check_constraints:filter_factory',
|
|
],
|
|
},
|
|
)
|