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()  | 
