From 7412ca26d0cde5176dec99e9bdd627b49f7f243d Mon Sep 17 00:00:00 2001 From: Tomasz Rybak Date: Mon, 30 Jun 2014 20:23:44 +0200 Subject: [PATCH] Do not require AWS credentials in manifest file Boto allows for storing credentials in ~/.boto file; user those if user has not provider one in manifest file. --- bootstrapvz/providers/ec2/tasks/connection.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bootstrapvz/providers/ec2/tasks/connection.py b/bootstrapvz/providers/ec2/tasks/connection.py index cf203e4..e05cf6c 100644 --- a/bootstrapvz/providers/ec2/tasks/connection.py +++ b/bootstrapvz/providers/ec2/tasks/connection.py @@ -29,6 +29,15 @@ class GetCredentials(Task): for key in keys: creds[key] = getenv(env_key(key)) return creds + + def provider_key(key): + return key.replace('-', '_') + import boto.provider + provider = boto.provider.Provider('aws') + if all(getattr(provider, provider_key(key)) is not None for key in keys): + for key in keys: + creds[key] = getattr(provider, provider_key(key)) + return creds raise RuntimeError(('No ec2 credentials found, they must all be specified ' 'exclusively via environment variables or through the manifest.'))