List endpoints for an object, account or container

Registered by Eugene Kirpichov

This blueprint implements the ability to list endpoints for an object, account or container, to make it possible to integrate swift with software that relies on data locality information to avoid network overhead.

In particular, it was implemented for usage with Hadoop - see https://issues.apache.org/jira/browse/HADOOP-8545

A piece of middleware is added which answers requests of the form: "/endpoints/{account}/{container}/{object}" with a list of endpoints of the form: "http://{server}:{port}/{device}/{partition}/{account}/{container}/{object}" and similarly for accounts and containers.

The service is intended for consumption by third-party services living inside the cluster (as the endpoints make sense only inside the cluster behind the firewall); potentially written in a different language. This is why it's provided as a REST API and not just a Python API: to avoid requiring clients to write their own ring parsers in their languages, and to avoid the necessity to distribute the ring file to clients and keep it up-to-date.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Sergey Lukjanov
Direction:
Needs approval
Assignee:
Sergey Lukjanov
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Sergey Lukjanov
Completed by
Sergey Lukjanov

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/list-object-endpoints,n,z

Addressed by: https://review.openstack.org/17791
    Support listing endpoints for an object.

Gerrit topic: https://review.openstack.org/#q,topic:bp/list-endpoints,n,z

Addressed by: https://review.openstack.org/21015
    Support listing endpoints for an object.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.