| What's This All About? |
| ====================== |
| |
| This directory contains the beginnings of what is hoped will be the |
| new core of boto. We want to move from using httplib to using |
| requests. We also want to offer full support for Python 2.6, 2.7, and |
| 3.x. This is a pretty big change and will require some time to roll |
| out but this module provides a starting point. |
| |
| What you will find in this module: |
| |
| * auth.py provides a SigV2 authentication packages as a args hook for requests. |
| * credentials.py provides a way of finding AWS credentials (see below). |
| * dictresponse.py provides a generic response handler that parses XML responses |
| and returns them as nested Python data structures. |
| * service.py provides a simple example of a service that actually makes an EC2 |
| request and returns a response. |
| |
| Credentials |
| =========== |
| |
| Credentials are being handled a bit differently here. The following |
| describes the order of search for credentials: |
| |
| 1. If your local environment for has ACCESS_KEY and SECRET_KEY variables |
| defined, these will be used. |
| |
| 2. If your local environment has AWS_CREDENTIAL_FILE defined, it is assumed |
| that it will be a config file with entries like this: |
| |
| [default] |
| access_key = xxxxxxxxxxxxxxxx |
| sercret_key = xxxxxxxxxxxxxxxxxx |
| |
| [test] |
| access_key = yyyyyyyyyyyyyy |
| secret_key = yyyyyyyyyyyyyyyyyy |
| |
| Each section in the config file is called a persona and you can reference |
| a particular persona by name when instantiating a Service class. |
| |
| 3. If a standard boto config file is found that contains credentials, those |
| will be used. |
| |
| 4. If temporary credentials for an IAM Role are found in the instance |
| metadata of an EC2 instance, these credentials will be used. |
| |
| Trying Things Out |
| ================= |
| To try this code out, cd to the directory containing the core module. |
| |
| >>> import core.service |
| >>> s = core.service.Service() |
| >>> s.describe_instances() |
| |
| This code should return a Python data structure containing information |
| about your currently running EC2 instances. This example should run in |
| Python 2.6.x, 2.7.x and Python 3.x. |