Bug 1041537

Summary: [RFE][swift]: Placement Control Middleware
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/swift/+spec/cluster-sync-policy
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_new
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:01:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 16:51:20 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/swift/+spec/cluster-sync-policy.

Description:

Building on the Swift container-sync ability, this work automates the container creating and configuration across multiple clusters and opens the door for a placement engine in Swift.

A placement engine can decide for each request where from a set of clusters the request should be served (its implementation is suggested to be outside of the scope of Swift). 

The Placement Middleware would act based on such decision by: 
GET/HEAD
    * Redirecting the client for calls that should be served elsewhere
    * serving from local store for  that can be served locally
PUT/POST/DELETE to containers/accounts
    * Propagating the requests to peer clusters.
PUT/POST/DELETE to objects
    * Serve locally (relying on container sync to do the rest). 

This work can be implemented as a Middleware.

It is one step in a long road map if we are to allow people to use multiple clusters in the future and to control the placement. 

Specification URL (additional information):

None