First, it's useful to understand the fundamental problems that awscli was trying to address. The most obvious is profiles. Cloud users deal with multiple regions, accounts, users, etc., and keeping separate configurations for each one is a hassle. awscli uses a section-based config file format which allows for multiple profiles, each of which can reference it's own region, access keys, etc.
Another problem that this new code solves is the centralization of region and service data into JSON files which are easy to read, write, and parse. See _regions.json and _services.json in botocore for examples.
What I found was that rather than trying to alter the existing data files, what I really wanted was a eucalyptus "provider" with its own JSON files. I'll spare you all my trial-and-error, and simply explain what worked:
- git clone https://github.com/boto/botocore.git
- git clone https://github.com/a13m/aws-cli.git (note that this is my fork -- upstream is https://github.com/aws/aws-cli.git )
- Install botocore and aws-cli however you prefer ( I use "python setup.py install --user" in each directory)
- create a provider data directory, and a "euca" directory inside it. I'll use /var/tmp/providers as the top directory.
- create _regions.json and _services.json under the "euca" directory (the linked examples here should work for ECC verbatim)
- symlink to botocore/data/aws/ec2.json and botocore/data/aws/iam.json in the euca provider directory
- Create your ~/.awsconfig file (or whatever you'd like to call it):
[default] aws_access_key_id=XXXXXXXXXXXXXXXXXXXX aws_secret_access_key=XXXXXXXXXXXXXXXXXX region=ecc provider_name=euca
- export AWS_CONFIG_FILE=$HOME/.awsconfig
- export AWS_DATA_PATH=/var/tmp/providers
- try some commands, such as:
aws ec2 create-volume --size 1 --availability-zone partner01 aws ec2 describe-volumes aws ec2 describe-images