def createTopicArn(region_name, topic_name): from boto_cli.iam.accountinfo import AccountInfo iam = boto.connect_iam(**credentials) accountInfo = AccountInfo(iam) account = accountInfo.describe() return "arn:aws:sns:" + region_name + ":" + account.id + ":" + topic_name
def processArgument(argument, region_name, account_id): return argument.replace('{REGION}', region_name).replace('{ACCOUNT}', account_id) # execute business logic credentials = {'aws_access_key_id': args.aws_access_key_id, 'aws_secret_access_key': args.aws_secret_access_key} heading = "Updating CloudFormation stacks named '" + args.stack_name + "'" regions = boto.cloudformation.regions() if args.region: heading += " (filtered by region '" + args.region + "')" regions = filter(isSelected, regions) from boto_cli.iam.accountinfo import AccountInfo iam = boto.connect_iam(**credentials) accountInfo = AccountInfo(iam) account = accountInfo.describe() parameters = dict([]) if args.parameter: parameters = dict([parameter.split('=') for parameter in args.parameter]) notification_arns = [] if args.notification_arn: notification_arns = args.notification_arn capabilities = [] if args.enable_iam: capabilities.append('CAPABILITY_IAM') print heading + ":" for region in regions:
import logging log = logging.getLogger('boto_cli') import sys # configure command line argument parsing parser = argparse.ArgumentParser(description='Validates AWS credentials and display account/user information') parser.add_argument("--access_key_id", dest='aws_access_key_id', help="Your AWS Access Key ID") parser.add_argument("--secret_access_key", dest='aws_secret_access_key', help="Your AWS Secret Access Key") parser.add_argument("-l", "--log", dest='log_level', default='WARNING', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help="The logging level to use. [default: WARNING]") args = parser.parse_args() configure_logging(log, args.log_level) # execute business logic credentials = {'aws_access_key_id': args.aws_access_key_id, 'aws_secret_access_key': args.aws_secret_access_key} heading = "Validating credentials:" try: iam = boto.connect_iam(**credentials) userInfo = UserInfo(iam) user = userInfo.describe() accountInfo = AccountInfo(iam) account = accountInfo.describe(user) print "User name is '" + user.name + "' with id " + user.id print "Account alias is '" + account.alias + "' with id " + account.id except boto.exception.BotoServerError, e: log.error(e.error_message) sys.exit(ExitCodes.FAIL)