diff options
-rwxr-xr-x | swift/1.4.8/.unittests | 2 | ||||
-rw-r--r-- | swift/1.4.8/README | 12 | ||||
-rwxr-xr-x | swift/1.4.8/bin/gluster-swift-gen-builders (renamed from swift/1.4.8/plugins/bin/gluster-swift-gen-builders) | 0 | ||||
-rw-r--r-- | swift/1.4.8/etc/account-server/1.conf-gluster (renamed from swift/1.4.8/plugins/conf/account-server/1.conf-gluster) | 4 | ||||
-rw-r--r-- | swift/1.4.8/etc/container-server/1.conf-gluster (renamed from swift/1.4.8/plugins/conf/container-server/1.conf-gluster) | 4 | ||||
-rw-r--r-- | swift/1.4.8/etc/fs.conf-gluster | 13 | ||||
-rw-r--r-- | swift/1.4.8/etc/object-server/1.conf-gluster (renamed from swift/1.4.8/plugins/conf/object-server/1.conf-gluster) | 4 | ||||
-rw-r--r-- | swift/1.4.8/etc/proxy-server.conf-gluster (renamed from swift/1.4.8/plugins/conf/proxy-server.conf-gluster) | 7 | ||||
-rw-r--r-- | swift/1.4.8/etc/swift.conf-gluster (renamed from swift/1.4.8/plugins/conf/swift.conf-gluster) | 1 | ||||
-rw-r--r-- | swift/1.4.8/gluster-swift-ufo.spec (renamed from swift/1.4.8/gluster-swift-plugin.spec) | 59 | ||||
-rw-r--r-- | swift/1.4.8/gluster-swift.spec | 396 | ||||
-rw-r--r-- | swift/1.4.8/gluster/__init__.py (renamed from swift/1.4.8/plugins/__init__.py) | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/__init__.py | 18 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/account/__init__.py (renamed from swift/1.4.8/plugins/middleware/__init__.py) | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/account/server.py | 45 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/DiskDir.py (renamed from swift/1.4.8/plugins/DiskDir.py) | 17 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/DiskFile.py (renamed from swift/1.4.8/plugins/DiskFile.py) | 10 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/Glusterfs.py (renamed from swift/1.4.8/plugins/Glusterfs.py) | 7 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/__init__.py (renamed from swift/1.4.8/test/unit/plugins/__init__.py) | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/constraints.py (renamed from swift/1.4.8/plugins/constraints.py) | 2 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/fs_utils.py (renamed from swift/1.4.8/plugins/fs_utils.py) | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/middleware/__init__.py | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/middleware/gluster.py (renamed from swift/1.4.8/plugins/middleware/gluster.py) | 2 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/common/utils.py (renamed from swift/1.4.8/plugins/utils.py) | 22 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/container/__init__.py | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/container/server.py | 46 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/obj/__init__.py | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/obj/server.py | 33 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/proxy/__init__.py | 0 | ||||
-rw-r--r-- | swift/1.4.8/gluster/swift/proxy/server.py | 27 | ||||
-rw-r--r-- | swift/1.4.8/plugins/conf/fs.conf-gluster | 8 | ||||
-rw-r--r-- | swift/1.4.8/setup.py | 57 | ||||
-rw-r--r-- | swift/1.4.8/swift.diff | 174 | ||||
-rw-r--r-- | swift/1.4.8/test/unit/common/__init__.py | 0 | ||||
-rw-r--r-- | swift/1.4.8/test/unit/common/data/account_tree.tar.bz2 (renamed from swift/1.4.8/test/unit/plugins/data/account_tree.tar.bz2) | bin | 228 -> 228 bytes | |||
-rw-r--r-- | swift/1.4.8/test/unit/common/data/container_tree.tar.bz2 (renamed from swift/1.4.8/test/unit/plugins/data/container_tree.tar.bz2) | bin | 282 -> 282 bytes | |||
-rw-r--r-- | swift/1.4.8/test/unit/common/test_utils.py (renamed from swift/1.4.8/test/unit/plugins/test_utils.py) | 10 |
37 files changed, 311 insertions, 669 deletions
diff --git a/swift/1.4.8/.unittests b/swift/1.4.8/.unittests index 113e5dd1f0f..2cee10be531 100755 --- a/swift/1.4.8/.unittests +++ b/swift/1.4.8/.unittests @@ -1,6 +1,6 @@ #!/bin/bash cd test/unit -nosetests --exe --with-coverage --cover-package plugins --cover-erase $@ +nosetests --exe --with-coverage --cover-package gluster --cover-erase $@ rm -f .coverage cd - diff --git a/swift/1.4.8/README b/swift/1.4.8/README index 18435e08a7e..9efd918b59a 100644 --- a/swift/1.4.8/README +++ b/swift/1.4.8/README @@ -3,20 +3,14 @@ via gluster-native/nfs mount to be accessed as containers and objects. It is a plugin for OpenStack Swift project. Install -* Clone the swift repo from git://github.com/openstack/swift.git -* Apply the swift.diff present in glusterfs.git/swift/1.4.8 to the swift repo. -* Create a directory named "plugins" under swift.git/swift directory. -* Copy the contents of glusterfs.git/swift/1.4.8/plugins/ under swift.git/swift/ - except the conf directory. -* Copy the contents of glusterfs.git/swift/1.4.8/plugins/conf under /etc/swift/. -* Run python setup.py install + * TBD Once this is done, you can access the GlusterFS volumes as Swift accounts. Add the Volume names with the user-name and its corresponding password to the /etc/swift/proxy-server.conf (follow the syntax used in the sample conf file). -Command to start the servers +Command to start the servers (TBD) swift-init main start -Command to stop the servers +Command to stop the servers (TBD) swift-init main stop diff --git a/swift/1.4.8/plugins/bin/gluster-swift-gen-builders b/swift/1.4.8/bin/gluster-swift-gen-builders index b89cd15fb00..b89cd15fb00 100755 --- a/swift/1.4.8/plugins/bin/gluster-swift-gen-builders +++ b/swift/1.4.8/bin/gluster-swift-gen-builders diff --git a/swift/1.4.8/plugins/conf/account-server/1.conf-gluster b/swift/1.4.8/etc/account-server/1.conf-gluster index c7a4c10a4fc..da8f3172634 100644 --- a/swift/1.4.8/plugins/conf/account-server/1.conf-gluster +++ b/swift/1.4.8/etc/account-server/1.conf-gluster @@ -1,7 +1,7 @@ [DEFAULT] devices = /mnt/gluster-object mount_check = true -bind_port = 6012 # Be sure to keep in sync with /usr/bin/gluster-swift-gen-builders +bind_port = 6012 user = root log_facility = LOG_LOCAL2 @@ -9,7 +9,7 @@ log_facility = LOG_LOCAL2 pipeline = account-server [app:account-server] -use = egg:swift#account +use = egg:gluster_swift_ufo#account [account-replicator] vm_test_mode = yes diff --git a/swift/1.4.8/plugins/conf/container-server/1.conf-gluster b/swift/1.4.8/etc/container-server/1.conf-gluster index 2b97eef6241..acad6213543 100644 --- a/swift/1.4.8/plugins/conf/container-server/1.conf-gluster +++ b/swift/1.4.8/etc/container-server/1.conf-gluster @@ -1,7 +1,7 @@ [DEFAULT] devices = /mnt/gluster-object mount_check = true -bind_port = 6011 # Be sure to keep in sync with /usr/bin/gluster-swift-gen-builders +bind_port = 6011 user = root log_facility = LOG_LOCAL2 @@ -9,7 +9,7 @@ log_facility = LOG_LOCAL2 pipeline = container-server [app:container-server] -use = egg:swift#container +use = egg:gluster_swift_ufo#container [container-replicator] vm_test_mode = yes diff --git a/swift/1.4.8/etc/fs.conf-gluster b/swift/1.4.8/etc/fs.conf-gluster new file mode 100644 index 00000000000..bbbdc2bd10d --- /dev/null +++ b/swift/1.4.8/etc/fs.conf-gluster @@ -0,0 +1,13 @@ +[DEFAULT] +# IP address of a GlusterFS volume server member. By default, we assume the +# local host. +mount_ip = localhost + +# The GlusterFS server need not be local, a remote server can also be used +# by setting "remote_cluster = yes". +remote_cluster = no + +# By default it is assumed the Gluster volumes can be accessed using other +# methods besides UFO (not object only), which disables a caching +# optimizations in order to keep in sync with file system changes. +object_only = no diff --git a/swift/1.4.8/plugins/conf/object-server/1.conf-gluster b/swift/1.4.8/etc/object-server/1.conf-gluster index 62e2fb49624..fe157a9b53d 100644 --- a/swift/1.4.8/plugins/conf/object-server/1.conf-gluster +++ b/swift/1.4.8/etc/object-server/1.conf-gluster @@ -1,7 +1,7 @@ [DEFAULT] devices = /mnt/gluster-object mount_check = true -bind_port = 6010 # Be sure to keep in sync with /usr/bin/gluster-swift-gen-builders +bind_port = 6010 user = root log_facility = LOG_LOCAL2 @@ -9,7 +9,7 @@ log_facility = LOG_LOCAL2 pipeline = object-server [app:object-server] -use = egg:swift#object +use = egg:gluster_swift_ufo#object [object-replicator] vm_test_mode = yes diff --git a/swift/1.4.8/plugins/conf/proxy-server.conf-gluster b/swift/1.4.8/etc/proxy-server.conf-gluster index b5e1f6f3515..30eb745bff8 100644 --- a/swift/1.4.8/plugins/conf/proxy-server.conf-gluster +++ b/swift/1.4.8/etc/proxy-server.conf-gluster @@ -4,10 +4,10 @@ user = root log_facility = LOG_LOCAL1 [pipeline:main] -pipeline = healthcheck cache tempauth gluster proxy-server +pipeline = healthcheck cache tempauth proxy-server [app:proxy-server] -use = egg:swift#proxy +use = egg:gluster_swift_ufo#proxy allow_account_management = true account_autocreate = true @@ -31,6 +31,3 @@ use = egg:swift#healthcheck [filter:cache] use = egg:swift#memcache - -[filter:gluster] -use = egg:swift#gluster diff --git a/swift/1.4.8/plugins/conf/swift.conf-gluster b/swift/1.4.8/etc/swift.conf-gluster index e506b6f54a8..25c3ca1571f 100644 --- a/swift/1.4.8/plugins/conf/swift.conf-gluster +++ b/swift/1.4.8/etc/swift.conf-gluster @@ -1,5 +1,4 @@ [DEFAULT] -Enable_plugin = yes [swift-hash] diff --git a/swift/1.4.8/gluster-swift-plugin.spec b/swift/1.4.8/gluster-swift-ufo.spec index 0a1637dc664..55b192a27ed 100644 --- a/swift/1.4.8/gluster-swift-plugin.spec +++ b/swift/1.4.8/gluster-swift-ufo.spec @@ -4,19 +4,22 @@ ############################################################################################################ # Setting up the environment. # # * Create a directory %{name}-%{version} under $HOME/rpmbuild/SOURCES # -# * Copy the contents of plugins directory into $HOME/rpmbuild/SOURCES/%{name}-%{version} # +# * Copy the contents of gluster directory into $HOME/rpmbuild/SOURCES/%{name}-%{version} # # * tar zcvf %{name}-%{version}-%{release}.tar.gz $HOME/rpmbuild/SOURCES/%{name}-%{version} %{name}.spec # # For more information refer # # http://fedoraproject.org/wiki/How_to_create_an_RPM_package # ############################################################################################################ +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%endif + %define _confdir /etc/swift -%define _swiftdir /usr/lib/python2.6/site-packages/swift -%define _ufo_version 1.0 -%define _ufo_release 12 +%define _ufo_version 1.1 +%define _ufo_release 1 Summary : GlusterFS Unified File and Object Storage. -Name : gluster-swift-plugin +Name : gluster-swift-ufo Version : %{_ufo_version} Release : %{_ufo_release} Group : Application/File @@ -28,7 +31,14 @@ BuildArch: noarch Requires : memcached Requires : openssl Requires : python -Requires : gluster-swift +#Requires : openstack-swift >= 1.4.8 +#Requires : openstack-swift-account >= 1.4.8 +#Requires : openstack-swift-auth >= 1.4.8 +#Requires : openstack-swift-container >= 1.4.8 +#Requires : openstack-swift-object >= 1.4.8 +#Requires : openstack-swift-proxy >= 1.4.8 +#Obsoletes: gluster-swift +#Obsoletes: gluster-swift-plugin %description Gluster Unified File and Object Storage unifies NAS and object storage @@ -39,33 +49,36 @@ storage costs. %prep %setup -q +%build +%{__python} setup.py build + %install rm -rf %{buildroot} -mkdir -p %{buildroot}/%{_swiftdir}/plugins/middleware -mkdir -p %{buildroot}/%{_confdir}/ -mkdir -p %{buildroot}/%{_bindir}/ +%{__python} setup.py install -O1 --skip-build --root %{buildroot} -cp constraints.py %{buildroot}/%{_swiftdir}/plugins -cp DiskDir.py %{buildroot}/%{_swiftdir}/plugins -cp DiskFile.py %{buildroot}/%{_swiftdir}/plugins -cp Glusterfs.py %{buildroot}/%{_swiftdir}/plugins -cp __init__.py %{buildroot}/%{_swiftdir}/plugins -cp utils.py %{buildroot}/%{_swiftdir}/plugins -cp fs_utils.py %{buildroot}/%{_swiftdir}/plugins +mkdir -p %{buildroot}/%{_confdir}/ +cp -r etc/* %{buildroot}/%{_confdir}/ -cp middleware/__init__.py %{buildroot}/%{_swiftdir}/plugins/middleware -cp middleware/gluster.py %{buildroot}/%{_swiftdir}/plugins/middleware +mkdir -p %{buildroot}/%{_bindir}/ +cp bin/gluster-swift-gen-builders %{buildroot}/%{_bindir}/ -cp -r conf/* %{buildroot}/%{_confdir}/ - -cp bin/gluster-swift-gen-builders %{buildroot}/%{_bindir}/ +%clean +rm -rf %{buildroot} %files %defattr(-,root,root) -%docdir conf -%{_swiftdir}/plugins +%{python_sitelib}/gluster +#%{python_sitelib}/gluster/swift/*.py* +#%{python_sitelib}/gluster/swift/common/*.py* +#%{python_sitelib}/gluster/swift/common/middleware +#%{python_sitelib}/gluster/swift/proxy +#%{python_sitelib}/gluster/swift/obj +#%{python_sitelib}/gluster/swift/container +#%{python_sitelib}/gluster/swift/account +%{python_sitelib}/gluster_swift_ufo-%{version}-*.egg-info %{_bindir}/gluster-swift-gen-builders +%dir %{_sysconfdir}/swift %config %{_confdir}/account-server/1.conf-gluster %config %{_confdir}/container-server/1.conf-gluster %config %{_confdir}/object-server/1.conf-gluster diff --git a/swift/1.4.8/gluster-swift.spec b/swift/1.4.8/gluster-swift.spec deleted file mode 100644 index a525e9e4a83..00000000000 --- a/swift/1.4.8/gluster-swift.spec +++ /dev/null @@ -1,396 +0,0 @@ -%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%endif - -Name: gluster-swift -Version: 1.4.8 -Release: 12%{?dist} -Summary: OpenStack Object Storage (swift) - -Group: Development/Languages -License: ASL 2.0 -URL: http://launchpad.net/swift -Source0: http://launchpad.net/swift/essex/%{version}/+download/swift-%{version}.tar.gz -Source1: %{name}-functions -Source2: %{name}-account.init -Source4: %{name}-container.init -Source5: %{name}-object.init -Source6: %{name}-proxy.init -Patch0: openstack-swift-newdeps.patch -Patch1: openstack-swift-docmod.patch -Patch2: openstack-swift-nonet.patch -Patch3: gluster.patch - -BuildRoot: %{_tmppath}/swift-%{version}-%{release}-root-%(%{__id_u} -n) - -BuildArch: noarch -BuildRequires: dos2unix -BuildRequires: python-devel -BuildRequires: python-setuptools -BuildRequires: python-netifaces -BuildRequires: python-paste-deploy -Requires: python-configobj -Requires: python-eventlet >= 0.9.8 -Requires: python-greenlet >= 0.3.1 -Requires: python-paste-deploy -Requires: python-simplejson -Requires: python-webob1.0 -Requires: pyxattr -Requires: python-setuptools -Requires: python-netifaces -Requires: python-netifaces - -Conflicts: openstack-swift - -Requires(post): chkconfig -Requires(postun): initscripts -Requires(preun): chkconfig -Requires(pre): shadow-utils -Obsoletes: openstack-swift-auth <= 1.4.0 - -%description -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. -Objects are written to multiple hardware devices in the data center, with the -OpenStack software responsible for ensuring data replication and integrity -across the cluster. Storage clusters can scale horizontally by adding new nodes, -which are automatically configured. Should a node fail, OpenStack works to -replicate its content from other active nodes. Because OpenStack uses software -logic to ensure data replication and distribution across different devices, -inexpensive commodity hard drives and servers can be used in lieu of more -expensive equipment. - -%package account -Summary: A swift account server -Group: Applications/System - -Requires: %{name} = %{version}-%{release} - -%description account -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name} account server. - -%package container -Summary: A swift container server -Group: Applications/System - -Requires: %{name} = %{version}-%{release} - -%description container -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name} container server. - -%package object -Summary: A swift object server -Group: Applications/System - -Requires: %{name} = %{version}-%{release} -Requires: rsync >= 3.0 - -%description object -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name} object server. - -%package proxy -Summary: A swift proxy server -Group: Applications/System - -Requires: %{name} = %{version}-%{release} - -%description proxy -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains the %{name} proxy server. - -%package doc -Summary: Documentation for %{name} -Group: Documentation -#%if 0%{?rhel} >= 6 -#BuildRequires: python-sphinx10 >= 1.0 -#%endif -%if 0%{?fedora} >= 14 -BuildRequires: python-sphinx >= 1.0 -%endif -# Required for generating docs -BuildRequires: python-eventlet -BuildRequires: python-simplejson -BuildRequires: python-webob1.0 -BuildRequires: pyxattr - -%description doc -OpenStack Object Storage (swift) aggregates commodity servers to work together -in clusters for reliable, redundant, and large-scale storage of static objects. - -This package contains documentation files for %{name}. - -%prep -%setup -q -n swift-%{version} -%patch0 -p1 -b .newdeps -%patch1 -p1 -b .docmod -%patch2 -p1 -b .nonet -%patch3 -p1 -b .gluster -# Fix wrong-file-end-of-line-encoding warning -dos2unix LICENSE - -%build -%{__python} setup.py build -# Fails unless we create the build directory -mkdir -p doc/build -# Build docs -%if 0%{?fedora} >= 14 -%{__python} setup.py build_sphinx -%endif -#%if 0%{?rhel} >= 6 -#export PYTHONPATH="$( pwd ):$PYTHONPATH" -#SPHINX_DEBUG=1 sphinx-1.0-build -b html doc/source doc/build/html -#SPHINX_DEBUG=1 sphinx-1.0-build -b man doc/source doc/build/man -#%endif -# Fix hidden-file-or-dir warning -#rm doc/build/html/.buildinfo - -%install -rm -rf %{buildroot} -%{__python} setup.py install -O1 --skip-build --root %{buildroot} -# Init helper functions -install -p -D -m 644 %{SOURCE1} %{buildroot}%{_datarootdir}/%{name}/functions -# Init scripts -install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initrddir}/%{name}-account -install -p -D -m 755 %{SOURCE4} %{buildroot}%{_initrddir}/%{name}-container -install -p -D -m 755 %{SOURCE5} %{buildroot}%{_initrddir}/%{name}-object -install -p -D -m 755 %{SOURCE6} %{buildroot}%{_initrddir}/%{name}-proxy -# Remove tests -rm -fr %{buildroot}/%{python_sitelib}/test -# Misc other -install -d -m 755 %{buildroot}%{_sysconfdir}/swift -install -d -m 755 %{buildroot}%{_sysconfdir}/swift/account-server -install -d -m 755 %{buildroot}%{_sysconfdir}/swift/container-server -install -d -m 755 %{buildroot}%{_sysconfdir}/swift/object-server -install -d -m 755 %{buildroot}%{_sysconfdir}/swift/proxy-server -# Install pid directory -install -d -m 755 %{buildroot}%{_localstatedir}/run/swift -install -d -m 755 %{buildroot}%{_localstatedir}/run/swift/account-server -install -d -m 755 %{buildroot}%{_localstatedir}/run/swift/container-server -install -d -m 755 %{buildroot}%{_localstatedir}/run/swift/object-server -install -d -m 755 %{buildroot}%{_localstatedir}/run/swift/proxy-server - -%clean -rm -rf %{buildroot} - -%pre -getent group swift >/dev/null || groupadd -r swift -g 160 -getent passwd swift >/dev/null || \ -useradd -r -g swift -u 160 -d %{_sharedstatedir}/swift -s /sbin/nologin \ --c "OpenStack Swift Daemons" swift -exit 0 - -%post account -/sbin/chkconfig --add %{name}-account - -%preun account -if [ $1 = 0 ] ; then - /sbin/service %{name}-account stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name}-account -fi - -%postun account -if [ "$1" -ge "1" ] ; then - /sbin/service %{name}-account condrestart >/dev/null 2>&1 || : -fi - -%post container -/sbin/chkconfig --add %{name}-container - -%preun container -if [ $1 = 0 ] ; then - /sbin/service %{name}-container stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name}-container -fi - -%postun container -if [ "$1" -ge "1" ] ; then - /sbin/service %{name}-container condrestart >/dev/null 2>&1 || : -fi - -%post object -/sbin/chkconfig --add %{name}-object - -%preun object -if [ $1 = 0 ] ; then - /sbin/service %{name}-object stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name}-object -fi - -%postun object -if [ "$1" -ge "1" ] ; then - /sbin/service %{name}-object condrestart >/dev/null 2>&1 || : -fi - -%post proxy -/sbin/chkconfig --add %{name}-proxy - -%preun proxy -if [ $1 = 0 ] ; then - /sbin/service %{name}-proxy stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name}-proxy -fi - -%postun proxy -if [ "$1" -ge "1" ] ; then - /sbin/service %{name}-proxy condrestart >/dev/null 2>&1 || : -fi - -%files -%defattr(-,root,root,-) -%doc AUTHORS LICENSE README -%doc etc/dispersion.conf-sample etc/drive-audit.conf-sample etc/object-expirer.conf-sample -%doc etc/swift.conf-sample -%dir %{_datarootdir}/%{name}/functions -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift -%dir %{_sysconfdir}/swift -%dir %{python_sitelib}/swift -%{_bindir}/swift -%{_bindir}/swift-account-audit -%{_bindir}/swift-bench -%{_bindir}/swift-drive-audit -%{_bindir}/swift-get-nodes -%{_bindir}/swift-init -%{_bindir}/swift-ring-builder -%{_bindir}/swift-dispersion-populate -%{_bindir}/swift-dispersion-report -%{_bindir}/swift-recon* -%{_bindir}/swift-object-expirer -%{_bindir}/swift-oldies -%{_bindir}/swift-orphans -%{_bindir}/swift-form-signature -%{_bindir}/swift-temp-url -%{python_sitelib}/swift/*.py* -%{python_sitelib}/swift/common -%{python_sitelib}/swift-%{version}-*.egg-info - -%files account -%defattr(-,root,root,-) -%doc etc/account-server.conf-sample -%dir %{_initrddir}/%{name}-account -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/account-server -%dir %{_sysconfdir}/swift/account-server -%{_bindir}/swift-account-auditor -%{_bindir}/swift-account-reaper -%{_bindir}/swift-account-replicator -%{_bindir}/swift-account-server -%{python_sitelib}/swift/account - - -%files container -%defattr(-,root,root,-) -%doc etc/container-server.conf-sample -%dir %{_initrddir}/%{name}-container -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/container-server -%dir %{_sysconfdir}/swift/container-server -%{_bindir}/swift-container-auditor -%{_bindir}/swift-container-server -%{_bindir}/swift-container-replicator -%{_bindir}/swift-container-updater -%{_bindir}/swift-container-sync -%{python_sitelib}/swift/container - -%files object -%defattr(-,root,root,-) -%doc etc/object-server.conf-sample etc/rsyncd.conf-sample -%dir %{_initrddir}/%{name}-object -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/object-server -%dir %{_sysconfdir}/swift/object-server -%{_bindir}/swift-object-auditor -%{_bindir}/swift-object-info -%{_bindir}/swift-object-replicator -%{_bindir}/swift-object-server -%{_bindir}/swift-object-updater -%{python_sitelib}/swift/obj - -%files proxy -%defattr(-,root,root,-) -%doc etc/proxy-server.conf-sample -%dir %{_initrddir}/%{name}-proxy -%dir %attr(0755, swift, swift) %{_localstatedir}/run/swift/proxy-server -%dir %{_sysconfdir}/swift/proxy-server -%{_bindir}/swift-proxy-server -%{python_sitelib}/swift/proxy - -%files doc -%defattr(-,root,root,-) -%doc LICENSE -#%doc doc/build/html - -%changelog -* Thu Apr 26 2012 Anthony Towns <atowns@redhat.com> 1.4.8-2 -- Apply gluster patches -- Rename to gluster-swift - -* Thu Mar 22 2012 Alan Pevec <apevec@redhat.com> 1.4.8-1 -- Update to 1.4.8 - -* Fri Mar 09 2012 Alan Pevec <apevec@redhat.com> 1.4.7-1 -- Update to 1.4.7 - -* Mon Feb 13 2012 Alan Pevec <apevec@redhat.com> 1.4.6-1 -- Update to 1.4.6 - -* Thu Jan 12 2012 Alan Pevec <apevec@redhat.com> 1.4.4-2 -- add back /var/run/swift for el6 - -* Wed Jan 04 2012 Alan Pevec <apevec@redhat.com> 1.4.4-1 -- Use updated parallel install versions of epel packages (pbrady) -- Ensure the docs aren't built with the system glance module (pbrady) -- Ensure we don't access the net when building docs (pbrady) -- Update to 1.4.4 - -* Wed Nov 23 2011 David Nalley <david@gnsa.us> -1.4.3-2 -* fixed some missing requires - -* Sat Nov 05 2011 David Nalley <david@gnsa.us> - 1.4.3-1 -- Update to 1.4.3 -- fix init script add, registration, deletion BZ 685155 -- fixing BR to facilitate epel6 building - -* Tue Aug 23 2011 David Nalley <david@gnsa.us> - 1.4.0-2 -- adding uid:gid for bz 732693 - -* Wed Jun 22 2011 David Nalley <david@gnsa.us> - 1.4.1-1 -- Update to 1.4.0 -- change the name of swift binary from st to swift - -* Sat Jun 04 2011 David Nalley <david@gnsa.us> - 1.4.0-1 -- Update to 1.4.0 - -* Fri May 20 2011 David Nalley <david@gnsa.us> - 1.3.0-1 -- Update to 1.3.0 - -* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Sun Dec 05 2010 Silas Sewell <silas@sewell.ch> - 1.1.0-1 -- Update to 1.1.0 - -* Sun Aug 08 2010 Silas Sewell <silas@sewell.ch> - 1.0.2-5 -- Update for new Python macro guidelines -- Use dos2unix instead of sed -- Make gecos field more descriptive - -* Wed Jul 28 2010 Silas Sewell <silas@sewell.ch> - 1.0.2-4 -- Rename to openstack-swift - -* Wed Jul 28 2010 Silas Sewell <silas@sewell.ch> - 1.0.2-3 -- Fix return value in swift-functions - -* Tue Jul 27 2010 Silas Sewell <silas@sewell.ch> - 1.0.2-2 -- Add swift user -- Update init scripts - -* Sun Jul 18 2010 Silas Sewell <silas@sewell.ch> - 1.0.2-1 -- Initial build diff --git a/swift/1.4.8/plugins/__init__.py b/swift/1.4.8/gluster/__init__.py index e69de29bb2d..e69de29bb2d 100644 --- a/swift/1.4.8/plugins/__init__.py +++ b/swift/1.4.8/gluster/__init__.py diff --git a/swift/1.4.8/gluster/swift/__init__.py b/swift/1.4.8/gluster/swift/__init__.py new file mode 100644 index 00000000000..17578ebee40 --- /dev/null +++ b/swift/1.4.8/gluster/swift/__init__.py @@ -0,0 +1,18 @@ +""" Gluster Swift UFO """ + +class Version(object): + def __init__(self, canonical_version, final): + self.canonical_version = canonical_version + self.final = final + + @property + def pretty_version(self): + if self.final: + return self.canonical_version + else: + return '%s-dev' % (self.canonical_version,) + + +_version = Version('1.1', True) +__version__ = _version.pretty_version +__canonical_version__ = _version.canonical_version diff --git a/swift/1.4.8/plugins/middleware/__init__.py b/swift/1.4.8/gluster/swift/account/__init__.py index e69de29bb2d..e69de29bb2d 100644 --- a/swift/1.4.8/plugins/middleware/__init__.py +++ b/swift/1.4.8/gluster/swift/account/__init__.py diff --git a/swift/1.4.8/gluster/swift/account/server.py b/swift/1.4.8/gluster/swift/account/server.py new file mode 100644 index 00000000000..8b98315790a --- /dev/null +++ b/swift/1.4.8/gluster/swift/account/server.py @@ -0,0 +1,45 @@ +# Copyright (c) 2012 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. + +""" Account Server for Gluster Swift UFO """ + +# Simply importing this monkey patches the constraint handling to fit our +# needs +import gluster.swift.common.constraints + +from swift.account import server +from gluster.swift.common.DiskDir import DiskAccount + + +class AccountController(server.AccountController): + def _get_account_broker(self, drive, part, account): + """ + Overriden to provide the GlusterFS specific broker that talks to + Gluster for the information related to servicing a given request + instead of talking to a database. + + :param drive: drive that holds the container + :param part: partition the container is in + :param account: account name + :returns: DiskDir object + """ + return DiskAccount(self.root, account, self.logger) + + +def app_factory(global_conf, **local_conf): + """paste.deploy app factory for creating WSGI account server apps.""" + conf = global_conf.copy() + conf.update(local_conf) + return AccountController(conf) diff --git a/swift/1.4.8/plugins/DiskDir.py b/swift/1.4.8/gluster/swift/common/DiskDir.py index b12827c582b..8602fabae83 100644 --- a/swift/1.4.8/plugins/DiskDir.py +++ b/swift/1.4.8/gluster/swift/common/DiskDir.py @@ -15,14 +15,15 @@ import os, errno -from swift.plugins.utils import clean_metadata, dir_empty, rmdirs, mkdirs, \ - validate_account, validate_container, is_marker, get_container_details, \ - get_account_details, get_container_metadata, create_container_metadata, \ - create_account_metadata, DEFAULT_GID, DEFAULT_UID, validate_object, \ - create_object_metadata, read_metadata, write_metadata, X_CONTENT_TYPE, \ - X_CONTENT_LENGTH, X_TIMESTAMP, X_PUT_TIMESTAMP, X_TYPE, X_ETAG, \ - X_OBJECTS_COUNT, X_BYTES_USED, X_CONTAINER_COUNT, CONTAINER -from swift.plugins import Glusterfs +from gluster.swift.common.utils import clean_metadata, dir_empty, rmdirs, \ + mkdirs, validate_account, validate_container, is_marker, \ + get_container_details, get_account_details, get_container_metadata, \ + create_container_metadata, create_account_metadata, DEFAULT_GID, \ + DEFAULT_UID, validate_object, create_object_metadata, read_metadata, \ + write_metadata, X_CONTENT_TYPE, X_CONTENT_LENGTH, X_TIMESTAMP, \ + X_PUT_TIMESTAMP, X_TYPE, X_ETAG, X_OBJECTS_COUNT, X_BYTES_USED, \ + X_CONTAINER_COUNT, CONTAINER +from gluster.swift.common import Glusterfs from swift.common.constraints import CONTAINER_LISTING_LIMIT from swift.common.utils import normalize_timestamp, TRUE_VALUES diff --git a/swift/1.4.8/plugins/DiskFile.py b/swift/1.4.8/gluster/swift/common/DiskFile.py index a57b2ece368..6404be6d68f 100644 --- a/swift/1.4.8/plugins/DiskFile.py +++ b/swift/1.4.8/gluster/swift/common/DiskFile.py @@ -18,13 +18,13 @@ from eventlet import tpool from tempfile import mkstemp from contextlib import contextmanager from swift.common.utils import normalize_timestamp, renamer -from swift.plugins.utils import mkdirs, rmdirs, validate_object, \ +from gluster.swift.common.utils import mkdirs, rmdirs, validate_object, \ create_object_metadata, do_open, do_close, do_unlink, do_chown, \ do_stat, do_listdir, read_metadata, write_metadata -from swift.plugins.utils import X_CONTENT_TYPE, X_CONTENT_LENGTH, X_TIMESTAMP, \ - X_PUT_TIMESTAMP, X_TYPE, X_ETAG, X_OBJECTS_COUNT, X_BYTES_USED, \ - X_OBJECT_TYPE, FILE, DIR, MARKER_DIR, OBJECT, DIR_TYPE, FILE_TYPE, \ - DEFAULT_UID, DEFAULT_GID +from gluster.swift.common.utils import X_CONTENT_TYPE, X_CONTENT_LENGTH, \ + X_TIMESTAMP, X_PUT_TIMESTAMP, X_TYPE, X_ETAG, X_OBJECTS_COUNT, \ + X_BYTES_USED, X_OBJECT_TYPE, FILE, DIR, MARKER_DIR, OBJECT, DIR_TYPE, \ + FILE_TYPE, DEFAULT_UID, DEFAULT_GID import logging from swift.obj.server import DiskFile diff --git a/swift/1.4.8/plugins/Glusterfs.py b/swift/1.4.8/gluster/swift/common/Glusterfs.py index c176a247b9b..2d3273ed429 100644 --- a/swift/1.4.8/plugins/Glusterfs.py +++ b/swift/1.4.8/gluster/swift/common/Glusterfs.py @@ -16,23 +16,18 @@ import logging import os, fcntl, time from ConfigParser import ConfigParser from swift.common.utils import TRUE_VALUES -from swift.plugins.fs_utils import mkdirs +from gluster.swift.common.fs_utils import mkdirs # # Read the fs.conf file once at startup (module load) # _fs_conf = ConfigParser() -AUTH_ACCOUNT = 'auth' MOUNT_IP = 'localhost' REMOTE_CLUSTER = False OBJECT_ONLY = False if _fs_conf.read(os.path.join('/etc/swift', 'fs.conf')): try: - AUTH_ACCOUNT = _fs_conf.get('DEFAULT', 'auth_account', 'auth') - except (NoSectionError, NoOptionError): - pass - try: MOUNT_IP = _fs_conf.get('DEFAULT', 'mount_ip', 'localhost') except (NoSectionError, NoOptionError): pass diff --git a/swift/1.4.8/test/unit/plugins/__init__.py b/swift/1.4.8/gluster/swift/common/__init__.py index e69de29bb2d..e69de29bb2d 100644 --- a/swift/1.4.8/test/unit/plugins/__init__.py +++ b/swift/1.4.8/gluster/swift/common/__init__.py diff --git a/swift/1.4.8/plugins/constraints.py b/swift/1.4.8/gluster/swift/common/constraints.py index 6d003b94caf..a4fc8008c7e 100644 --- a/swift/1.4.8/plugins/constraints.py +++ b/swift/1.4.8/gluster/swift/common/constraints.py @@ -16,7 +16,7 @@ from webob.exc import HTTPBadRequest import swift.common.constraints -from swift.plugins import Glusterfs +from gluster.swift.common import Glusterfs MAX_OBJECT_NAME_COMPONENT_LENGTH = swift.common.constraints.constraints_conf_int( diff --git a/swift/1.4.8/plugins/fs_utils.py b/swift/1.4.8/gluster/swift/common/fs_utils.py index 7f5292c2bf1..7f5292c2bf1 100644 --- a/swift/1.4.8/plugins/fs_utils.py +++ b/swift/1.4.8/gluster/swift/common/fs_utils.py diff --git a/swift/1.4.8/gluster/swift/common/middleware/__init__.py b/swift/1.4.8/gluster/swift/common/middleware/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/swift/1.4.8/gluster/swift/common/middleware/__init__.py diff --git a/swift/1.4.8/plugins/middleware/gluster.py b/swift/1.4.8/gluster/swift/common/middleware/gluster.py index e0e65e35312..ab63c51e12f 100644 --- a/swift/1.4.8/plugins/middleware/gluster.py +++ b/swift/1.4.8/gluster/swift/common/middleware/gluster.py @@ -14,7 +14,7 @@ # limitations under the License. # Noop Middleware that simply allows us to monkey patch the constraints -import swift.plugins.constraints +import gluster.swift.common.constraints class Gluster(object): """ diff --git a/swift/1.4.8/plugins/utils.py b/swift/1.4.8/gluster/swift/common/utils.py index 45990d1da67..56376f8eed5 100644 --- a/swift/1.4.8/plugins/utils.py +++ b/swift/1.4.8/gluster/swift/common/utils.py @@ -21,8 +21,8 @@ from hashlib import md5 import cPickle as pickle from ConfigParser import ConfigParser, NoSectionError, NoOptionError from swift.common.utils import normalize_timestamp, TRUE_VALUES -from swift.plugins.fs_utils import * -from swift.plugins import Glusterfs +from gluster.swift.common.fs_utils import * +from gluster.swift.common import Glusterfs X_CONTENT_TYPE = 'Content-Type' X_CONTENT_LENGTH = 'Content-Length' @@ -455,21 +455,3 @@ def create_container_metadata(cont_path, memcache=None): def create_account_metadata(acc_path, memcache=None): metadata = get_account_metadata(acc_path, memcache) return restore_metadata(acc_path, metadata) - - -_DEFAULT_GLUSTER_ENABLED = os.getenv('GLUSTER_UNIT_TEST_ENABLED', 'no') -__swift_conf = ConfigParser() -__swift_conf.read(os.path.join('/etc/swift', 'swift.conf')) -try: - _gluster_enabled_val = __swift_conf.get('DEFAULT', 'Enable_plugin', _DEFAULT_GLUSTER_ENABLED) -except NoOptionError, NoSectionError: - _gluster_enabled_val = _DEFAULT_GLUSTER_ENABLED -del __swift_conf -_gluster_enabled = _gluster_enabled_val in TRUE_VALUES - -def Gluster_enabled(): - return _gluster_enabled - -if _gluster_enabled: - # Monkey patch only when Gluster enabled - import swift.plugins.constraints diff --git a/swift/1.4.8/gluster/swift/container/__init__.py b/swift/1.4.8/gluster/swift/container/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/swift/1.4.8/gluster/swift/container/__init__.py diff --git a/swift/1.4.8/gluster/swift/container/server.py b/swift/1.4.8/gluster/swift/container/server.py new file mode 100644 index 00000000000..e2a19730220 --- /dev/null +++ b/swift/1.4.8/gluster/swift/container/server.py @@ -0,0 +1,46 @@ +# Copyright (c) 2012 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. + +""" Container Server for Gluster Swift UFO """ + +# Simply importing this monkey patches the constraint handling to fit our +# needs +import gluster.swift.common.constraints + +from swift.container import server +from gluster.swift.common.DiskDir import DiskDir + + +class ContainerController(server.ContainerController): + def _get_container_broker(self, drive, part, account, container): + """ + Overriden to provide the GlusterFS specific broker that talks to + Gluster for the information related to servicing a given request + instead of talking to a database. + + :param drive: drive that holds the container + :param part: partition the container is in + :param account: account name + :param container: container name + :returns: DiskDir object + """ + return DiskDir(self.root, account, container, self.logger) + + +def app_factory(global_conf, **local_conf): + """paste.deploy app factory for creating WSGI container server apps.""" + conf = global_conf.copy() + conf.update(local_conf) + return ContainerController(conf) diff --git a/swift/1.4.8/gluster/swift/obj/__init__.py b/swift/1.4.8/gluster/swift/obj/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/swift/1.4.8/gluster/swift/obj/__init__.py diff --git a/swift/1.4.8/gluster/swift/obj/server.py b/swift/1.4.8/gluster/swift/obj/server.py new file mode 100644 index 00000000000..43cdd8890d2 --- /dev/null +++ b/swift/1.4.8/gluster/swift/obj/server.py @@ -0,0 +1,33 @@ +# Copyright (c) 2012 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. + +""" Object Server for Gluster Swift UFO """ + +# Simply importing this monkey patches the constraint handling to fit our +# needs +import gluster.swift.common.constraints + +from swift.obj import server +from gluster.swift.common.DiskFile import Gluster_DiskFile + +# Monkey patch the object server module to use Gluster's DiskFile definition +server.DiskFile = Gluster_DiskFile + + +def app_factory(global_conf, **local_conf): + """paste.deploy app factory for creating WSGI object server apps""" + conf = global_conf.copy() + conf.update(local_conf) + return server.ObjectController(conf) diff --git a/swift/1.4.8/gluster/swift/proxy/__init__.py b/swift/1.4.8/gluster/swift/proxy/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/swift/1.4.8/gluster/swift/proxy/__init__.py diff --git a/swift/1.4.8/gluster/swift/proxy/server.py b/swift/1.4.8/gluster/swift/proxy/server.py new file mode 100644 index 00000000000..792a97df9a2 --- /dev/null +++ b/swift/1.4.8/gluster/swift/proxy/server.py @@ -0,0 +1,27 @@ +# Copyright (c) 2012 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. + + +# Simply importing this monkey patches the constraint handling to fit our +# needs +import gluster.swift.common.constraints + +from swift.proxy import server + +def app_factory(global_conf, **local_conf): + """paste.deploy app factory for creating WSGI proxy apps.""" + conf = global_conf.copy() + conf.update(local_conf) + return server.Application(conf) diff --git a/swift/1.4.8/plugins/conf/fs.conf-gluster b/swift/1.4.8/plugins/conf/fs.conf-gluster deleted file mode 100644 index 0bd21babff4..00000000000 --- a/swift/1.4.8/plugins/conf/fs.conf-gluster +++ /dev/null @@ -1,8 +0,0 @@ -[DEFAULT] -auth_account = auth -#ip of the fs server. -mount_ip = localhost -#fs server need not be local, remote server can also be used, -#set remote_cluster=yes for using remote server. -remote_cluster = no -object_only = no diff --git a/swift/1.4.8/setup.py b/swift/1.4.8/setup.py new file mode 100644 index 00000000000..a48310282d9 --- /dev/null +++ b/swift/1.4.8/setup.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# Copyright (c) 2012 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 gluster.swift import __canonical_version__ as version + + +name = 'gluster_swift_ufo' + + +setup( + name=name, + version=version, + description='Gluster Swift/UFO', + license='Apache License (2.0)', + author='Red Hat, Inc.', + author_email='gluster-users@gluster.org', + url='https://gluster.org/', + packages=find_packages(exclude=['test', 'bin']), + test_suite='nose.collector', + classifiers=[ + 'Development Status :: 4 - Beta', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: POSIX :: Linux', + 'Programming Language :: Python :: 2.6', + 'Environment :: No Input/Output (Daemon)', + ], + install_requires=[], # removed for better compat + scripts=[ + 'bin/gluster-swift-gen-builders', + ], + entry_points={ + 'paste.app_factory': [ + 'proxy=gluster.swift.proxy.server:app_factory', + 'object=gluster.swift.obj.server:app_factory', + 'container=gluster.swift.container.server:app_factory', + 'account=gluster.swift.account.server:app_factory', + ], + 'paste.filter_factory': [ + 'gluster=gluster.swift.common.middleware.gluster:filter_factory', + ], + }, + ) diff --git a/swift/1.4.8/swift.diff b/swift/1.4.8/swift.diff deleted file mode 100644 index 59bbbe26279..00000000000 --- a/swift/1.4.8/swift.diff +++ /dev/null @@ -1,174 +0,0 @@ -diff --git a/setup.py b/setup.py -index d195d34..ef625ff 100644 ---- a/setup.py -+++ b/setup.py -@@ -1,5 +1,6 @@ - #!/usr/bin/python - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2012 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. -@@ -94,6 +95,7 @@ setup( - 'tempurl=swift.common.middleware.tempurl:filter_factory', - 'formpost=swift.common.middleware.formpost:filter_factory', - 'name_check=swift.common.middleware.name_check:filter_factory', -+ 'gluster=swift.plugins.middleware.gluster:filter_factory', - ], - }, - ) -diff --git a/swift/account/server.py b/swift/account/server.py -index 800b3c0..eaf9e0d 100644 ---- a/swift/account/server.py -+++ b/swift/account/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2012 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. -@@ -29,6 +30,10 @@ from webob.exc import HTTPAccepted, HTTPBadRequest, \ - HTTPPreconditionFailed, HTTPConflict - import simplejson - -+from swift.plugins.utils import Gluster_enabled -+if Gluster_enabled(): -+ from swift.plugins.DiskDir import DiskAccount -+ - from swift.common.db import AccountBroker - from swift.common.utils import get_logger, get_param, hash_path, \ - normalize_timestamp, split_path, storage_directory -@@ -54,6 +59,8 @@ class AccountController(object): - conf.get('auto_create_account_prefix') or '.' - - def _get_account_broker(self, drive, part, account): -+ if Gluster_enabled(): -+ return DiskAccount(self.root, account, self.logger) - hsh = hash_path(account) - db_dir = storage_directory(DATADIR, part, hsh) - db_path = os.path.join(self.root, drive, db_dir, hsh + '.db') -diff --git a/swift/container/server.py b/swift/container/server.py -index 8a18cfd..3da0f95 100644 ---- a/swift/container/server.py -+++ b/swift/container/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2012 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. -@@ -29,6 +30,10 @@ from webob.exc import HTTPAccepted, HTTPBadRequest, HTTPConflict, \ - HTTPCreated, HTTPInternalServerError, HTTPNoContent, \ - HTTPNotFound, HTTPPreconditionFailed, HTTPMethodNotAllowed - -+from swift.plugins.utils import Gluster_enabled -+if Gluster_enabled(): -+ from swift.plugins.DiskDir import DiskDir -+ - from swift.common.db import ContainerBroker - from swift.common.utils import get_logger, get_param, hash_path, \ - normalize_timestamp, storage_directory, split_path, validate_sync_to -@@ -73,6 +78,8 @@ class ContainerController(object): - :param container: container name - :returns: ContainerBroker object - """ -+ if Gluster_enabled(): -+ return DiskDir(self.root, account, container, self.logger) - hsh = hash_path(account, container) - db_dir = storage_directory(DATADIR, part, hsh) - db_path = os.path.join(self.root, drive, db_dir, hsh + '.db') -diff --git a/swift/obj/server.py b/swift/obj/server.py -index 9cca16b..448ea5c 100644 ---- a/swift/obj/server.py -+++ b/swift/obj/server.py -@@ -1,4 +1,5 @@ - # Copyright (c) 2010-2012 OpenStack, LLC. -+# Copyright (c) 2012 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. -@@ -35,6 +36,8 @@ from webob.exc import HTTPAccepted, HTTPBadRequest, HTTPCreated, \ - from xattr import getxattr, setxattr - from eventlet import sleep, Timeout, tpool - -+from swift.plugins.utils import Gluster_enabled -+ - from swift.common.utils import mkdirs, normalize_timestamp, \ - storage_directory, hash_path, renamer, fallocate, \ - split_path, drop_buffer_cache, get_logger, write_pickle -@@ -340,6 +343,10 @@ class DiskFile(object): - raise DiskFileNotExist('Data File does not exist.') - - -+if Gluster_enabled(): -+ from swift.plugins.DiskFile import Gluster_DiskFile -+ -+ - class ObjectController(object): - """Implements the WSGI application for the Swift Object Server.""" - -@@ -378,6 +385,15 @@ class ObjectController(object): - self.expiring_objects_container_divisor = \ - int(conf.get('expiring_objects_container_divisor') or 86400) - -+ def get_DiskFile_obj(self, path, device, partition, account, container, obj, -+ logger, keep_data_fp=False, disk_chunk_size=65536): -+ if Gluster_enabled(): -+ return Gluster_DiskFile(path, device, partition, account, container, -+ obj, logger, keep_data_fp, disk_chunk_size) -+ else: -+ return DiskFile(path, device, partition, account, container, -+ obj, logger, keep_data_fp, disk_chunk_size) -+ - def async_update(self, op, account, container, obj, host, partition, - contdevice, headers_out, objdevice): - """ -@@ -493,7 +509,7 @@ class ObjectController(object): - content_type='text/plain') - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - - if 'X-Delete-At' in file.metadata and \ -@@ -548,7 +564,7 @@ class ObjectController(object): - if new_delete_at and new_delete_at < time.time(): - return HTTPBadRequest(body='X-Delete-At in past', request=request, - content_type='text/plain') -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - orig_timestamp = file.metadata.get('X-Timestamp') - upload_expiration = time.time() + self.max_upload_time -@@ -626,9 +642,9 @@ class ObjectController(object): - content_type='text/plain') - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -- obj, self.logger, keep_data_fp=True, -- disk_chunk_size=self.disk_chunk_size) -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, -+ obj, self.logger, keep_data_fp=True, -+ disk_chunk_size=self.disk_chunk_size) - if file.is_deleted() or ('X-Delete-At' in file.metadata and - int(file.metadata['X-Delete-At']) <= time.time()): - if request.headers.get('if-match') == '*': -@@ -702,7 +718,7 @@ class ObjectController(object): - return resp - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - if file.is_deleted() or ('X-Delete-At' in file.metadata and - int(file.metadata['X-Delete-At']) <= time.time()): -@@ -744,7 +760,7 @@ class ObjectController(object): - if self.mount_check and not check_mount(self.devices, device): - return Response(status='507 %s is not mounted' % device) - response_class = HTTPNoContent -- file = DiskFile(self.devices, device, partition, account, container, -+ file = self.get_DiskFile_obj(self.devices, device, partition, account, container, - obj, self.logger, disk_chunk_size=self.disk_chunk_size) - if 'x-if-delete-at' in request.headers and \ - int(request.headers['x-if-delete-at']) != \ diff --git a/swift/1.4.8/test/unit/common/__init__.py b/swift/1.4.8/test/unit/common/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/swift/1.4.8/test/unit/common/__init__.py diff --git a/swift/1.4.8/test/unit/plugins/data/account_tree.tar.bz2 b/swift/1.4.8/test/unit/common/data/account_tree.tar.bz2 Binary files differindex cb23e4dd71b..cb23e4dd71b 100644 --- a/swift/1.4.8/test/unit/plugins/data/account_tree.tar.bz2 +++ b/swift/1.4.8/test/unit/common/data/account_tree.tar.bz2 diff --git a/swift/1.4.8/test/unit/plugins/data/container_tree.tar.bz2 b/swift/1.4.8/test/unit/common/data/container_tree.tar.bz2 Binary files differindex b4a14928570..b4a14928570 100644 --- a/swift/1.4.8/test/unit/plugins/data/container_tree.tar.bz2 +++ b/swift/1.4.8/test/unit/common/data/container_tree.tar.bz2 diff --git a/swift/1.4.8/test/unit/plugins/test_utils.py b/swift/1.4.8/test/unit/common/test_utils.py index 92c7ff00571..ec66324a052 100644 --- a/swift/1.4.8/test/unit/plugins/test_utils.py +++ b/swift/1.4.8/test/unit/common/test_utils.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -""" Tests for plugins.utils """ +""" Tests for common.utils """ import os import unittest @@ -26,7 +26,7 @@ import tarfile import shutil from collections import defaultdict from swift.common.utils import normalize_timestamp -from swift.plugins import utils +from gluster.swift.common import utils # # Somewhat hacky way of emulating the operation of xattr calls. They are made @@ -119,7 +119,7 @@ class SimMemcache(object): class TestUtils(unittest.TestCase): - """ Tests for plugins.utils """ + """ Tests for common.utils """ def setUp(self): _initxattr() @@ -753,7 +753,7 @@ class TestUtils(unittest.TestCase): def test_get_container_details_from_fs(self): td = tempfile.mkdtemp() - tf = tarfile.open("plugins/data/account_tree.tar.bz2", "r:bz2") + tf = tarfile.open("common/data/account_tree.tar.bz2", "r:bz2") orig_cwd = os.getcwd() os.chdir(td) tf.extractall() @@ -776,7 +776,7 @@ class TestUtils(unittest.TestCase): def test_get_account_details_from_fs(self): td = tempfile.mkdtemp() - tf = tarfile.open("plugins/data/container_tree.tar.bz2", "r:bz2") + tf = tarfile.open("common/data/container_tree.tar.bz2", "r:bz2") orig_cwd = os.getcwd() os.chdir(td) tf.extractall() |