/botox

High level AWS API wrapper. Gives boto a facelift!

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Intro

Botox is a lightweight, high level wrapper around the Amazon Web Services API. It leverages the excellent and comprehensive Boto library.

Boto closely mirrors the AWS API structure, and as such has spots that could use smoothing over -- many common tasks require extra work. Botox is an attempt at said smoothing over.

It's BSD licensed and supports Python 2.6+.

Features

  • Want a list of all instances in your account? No more manually looping over your account's "reservations" first, simply instantiate an AWS object and look at its instances generator attribute.
  • Simple instance creation, complete with 'Name' tag updating, automatic AMI lookup based on ID, VPC security group name (not just ID) support, etc.
  • Straightforward instance name access via <instance>.name (vs looking up the 'Name' tag every time) and renaming via <instance>.rename(new_name).
    • These are currently implemented by 🐒patching but this may change in the future 😔
  • Instance termination which can look up the instance to destroy by name or ID, and automatically renames the terminated instance -- avoids namespace conflicts during rapid create-test-destroy-recreate cycles.
  • Automatic proxying of unfound attributes to the actual Boto connection object (so anything Botox isn't tweaking can still be accessed easily.)

Development

Botox is in the very early stages of development; the API is being felt out and we're rapidly adding more feature targets (e.g.: create/list/destroy/attach/mount EBS volumes). We may also start soliciting patches and/or feedback from peers who have similar internal codebases.

Coming soon

  • Aforementioned EBS support
  • Actual, you know, docs
  • Some sort of (probably optional) integration with a task runner like Invoke so you can create/list/delete/etc from the command line.