implement swift client commands

Registered by Doug Hellmann

Implement the features of the existing swift client

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
Dean Troyer
Direction:
Needs approval
Assignee:
Dean Troyer
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon m6
Started by
Dean Troyer
Completed by
Dean Troyer

Related branches

Sprints

Whiteboard

Swift has no client library in the same manner as the other clients, it does have swiftclient/client.py but also has dependencies that do not fit well with the other libs. Let's re-work that layer to use python-requests and take advantage of some of its capabilities, such as parameter quoting. The SSL-compressions and chunked transfer will take the most work but are also needed for Glance so eventually we'll be going there anyway.

The naming of the functions in client.py are a bit counter-intuitive, as in you call get_accounts to get a list of containers. In the reqork of clients.py the function names will be changed to more closely match our usage and not be a direct mapping of the API being called.

A low-level REAT API layer has been created (openstackclient.common.restapi) that will be used here as well as in the API commands. The object library-layer is located in openstackclient.object.v1.lib while the command objects themselves are in the usual location openstackclient.object.v1.

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

Addressed by: https://review.openstack.org/111552
    Add container create and delete support

Addressed by: https://review.openstack.org/111557
    Add commands for object upload and delete

Addressed by: https://review.openstack.org/119293
    Add preliminary support for downloading objects

Gerrit topic: https://review.openstack.org/#q,topic:ksc-session,n,z

Addressed by: https://review.openstack.org/119417
    Add preliminary save container support

(?)

Work Items

Work items:
Container and obejct list commands: DONE
Container and obejct show commands: DONE

This blueprint contains Public information 
Everyone can see this information.