Add fabazon, a library for interfacing with AWS through Fabric.

Review Request #4967 — Created Nov. 15, 2013 and submitted — Latest diff uploaded




Add fabazon, a library for interfacing with AWS through Fabric.

fabazon is designed to make it a bit easier to perform common operations
on S3, ELB, EC2, and other services through a Fabric script.

It makes use of boto, and requires a valid ~/.boto config file, or the
appropriate environment variables.

Currently, fabazon can do the following:

  • Upload files to S3, setting their mimetype and public flags.
  • Download public or private files from S3 to the remote host, using
    a signed URL.
  • Generate and upload directory indexes for directories or whole trees
    on S3.
  • Get the EC2 instance ID for the current remote host.
  • Attach or detach instances to/from ELB.
  • Check if an instance is healthy, according to ELB.
  • Wait for an instance to become healthy.

This is geared toward the things we need to do for Review Board,
RBCommons, and other related projects, but is intended to be reusable.

The S3 code has been tested along with changes I've made to the various
release scripts, but the rest (which are from the RBCommons Fabric file)
have not been tested from there yet. Waiting for traffic to die down so I can
disconnect an instance and test.

Pyflakes reported no warnings or errors.