Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

OpenStack Object Storage (Swift)

Fix test-requirements.txt

mock >= 1.0 changed the behavior for iterable sideeffects. Any
exceptions in an iterable side_effect will now be raised instead of

With mock < 1.0 tests are failing, because test for the
internal client (TestSimpleClient.test_get_with_retries) use an
iterable sideeffect that raise an URLError on the first request
and pass on the second request.

Change-Id: I568b68c33ff599d7a4f590e2a0eb8caeee4b4d4e
latest commit 51f6035f3b
Christian Schwede cschwede authored April 17, 2014
Octocat-spinner-32 bin Clean up swift-{account, container}-info April 03, 2014
Octocat-spinner-32 doc Add includes of referenced SAIO bin scripts April 10, 2014
Octocat-spinner-32 etc Add tests and comments re constraints in /info April 09, 2014
Octocat-spinner-32 examples Add a user variable to templates September 17, 2013
Octocat-spinner-32 locale Reverted the pulling out of various middleware: May 16, 2012
Octocat-spinner-32 swift Merge "Print 'Container Count' in data base info" April 14, 2014
Octocat-spinner-32 test Fix testcase test_print_db_info_metadata() April 14, 2014
Octocat-spinner-32 .coveragerc Align tox.ini and fix coverage jobs in jenkins. June 08, 2012
Octocat-spinner-32 .functests Move the tests from functionalnosetests January 07, 2014
Octocat-spinner-32 .gitignore fix(gitignore) : ignore *.egg and *.egg-info July 30, 2013
Octocat-spinner-32 .gitreview Add .gitreview config file for gerrit. October 24, 2011
Octocat-spinner-32 .mailmap updates for 1.13.1 release April 03, 2014
Octocat-spinner-32 .probetests Allow specify arguments to .probetests script December 24, 2013
Octocat-spinner-32 .unittests make test tooling less opinionated December 06, 2013
Octocat-spinner-32 AUTHORS updates for 1.13.1 release April 03, 2014
Octocat-spinner-32 CHANGELOG updates for 1.13.1 release April 03, 2014
Octocat-spinner-32 HEAD on account returns 410 if account was deleted and not yet reaped October 29, 2013
Octocat-spinner-32 LICENSE Convert LICENSE to use unix style line endings. December 19, 2012
Octocat-spinner-32 Add requirements files to the source distribution June 03, 2013
Octocat-spinner-32 Correct URL in readme October 07, 2013
Octocat-spinner-32 babel.cfg add pybabel commands and initial .pot January 27, 2011
Octocat-spinner-32 requirements.txt Remove swiftclient dependency February 06, 2014
Octocat-spinner-32 setup.cfg Added swift-account-info tool. March 31, 2014
Octocat-spinner-32 update with pbr version April 08, 2014
Octocat-spinner-32 test-requirements.txt Fix test-requirements.txt April 17, 2014
Octocat-spinner-32 tox.ini Merge "Only run flake8 on Swift code" April 02, 2014


A distributed object storage system designed to scale from a single machine to thousands of servers. Swift is optimized for multi-tenancy and high concurrency. Swift is ideal for backups, web and mobile content, and any other unstructured data that can grow without bound.

Swift provides a simple, REST-based API fully documented at

Swift was originally developed as the basis for Rackspace's Cloud Files and was open-sourced in 2010 as part of the OpenStack project. It has since grown to include contributions from many companies and has spawned a thriving ecosystem of 3rd party tools. Swift's contributors are listed in the AUTHORS file.


To build documentation install sphinx (pip install sphinx), run python build_sphinx, and then browse to /doc/build/html/index.html. These docs are auto-generated after every commit and available online at

For Developers

The best place to get started is the "SAIO - Swift All In One". This document will walk you through setting up a development cluster of Swift in a VM. The SAIO environment is ideal for running small-scale tests against swift and trying out new features and bug fixes.

You can run unit tests with .unittests and functional tests with .functests.

Code Organization

  • bin/: Executable scripts that are the processes run by the deployer
  • doc/: Documentation
  • etc/: Sample config files
  • swift/: Core code
    • account/: account server
    • common/: code shared by different modules
      • middleware/: "standard", officially-supported middleware
      • ring/: code implementing Swift's ring
    • container/: container server
    • obj/: object server
    • proxy/: proxy server
  • test/: Unit and functional tests

Data Flow

Swift is a WSGI application and uses eventlet's WSGI server. After the processes are running, the entry point for new requests is the Application class in swift/proxy/ From there, a controller is chosen, and the request is processed. The proxy may choose to forward the request to a back- end server. For example, the entry point for requests to the object server is the ObjectController class in swift/obj/

For Deployers

Deployer docs are also available at A good starting point is at

You can run functional tests against a swift cluster with .functests. These functional tests require /etc/swift/test.conf to run. A sample config file can be found in this source tree in test/sample.conf.

For Client Apps

For client applications, official Python language bindings are provided at

Complete API documentation at

For more information come hang out in #openstack-swift on freenode.


The Swift Development Team

Something went wrong with that request. Please try again.