def process_aws_resources_names(key): try: key = AWSKey.query.get(key.id) session = boto3.Session(aws_access_key_id=key.key, aws_secret_access_key=key.secret) id_name_mapping = get_instances_id_name_mapping(session) id_name_mapping.update(get_volumes_id_name_mapping(session)) def get_id_name_mappings(): now = datetime.utcnow() for rid, name in id_name_mapping.iteritems(): yield AWSIdNameMapping(meta={'id': rid}, key=key.key, date=now, rid=rid, name=name) bulk_save(get_id_name_mappings()) except botocore.exceptions.ClientError as e: logging.error("[user={}][key={}] {}".format(key.user.email, key.pretty or key.key, str(e))) aws_credentials_error(key, traceback.format_exc()) key.error_status = u"bad_key" db.session.commit() except Exception, e: aws_key_processing_generic_error_email(key, traceback.format_exc()) key.error_status = u"processing_error" db.session.commit()
def generate_stopped_instances_report(key): try: session = boto3.Session(aws_access_key_id=key.key, aws_secret_access_key=key.secret) except Exception, e: logging.error("[user={}][key={}] {}".format(key.user.email, key.pretty or key.key, str(e))) aws_credentials_error(key, traceback.format_exc()) key.error_status = u"bad_key" db.session.commit() return
def get_providers_comparison_aws(aws_account): aws_account = AWSKey.query.get(aws_account.id) res = [] try: session = boto3.Session(aws_access_key_id=aws_account.key, aws_secret_access_key=aws_account.secret) except Exception, e: logging.error("[user={}][key={}] {}".format(aws_account.user.email, aws_account.pretty or aws_account.key, str(e))) aws_credentials_error(aws_account, traceback.format_exc()) aws_account.error_status = u"bad_key" db.session.commit() return
def _default_ce_exception(): error_email.aws_credentials_error(key, traceback.format_exc()) key.error_status = u"bad_key" logging.error("[user={}][key={}] {}".format(key.user.email, key.pretty or key.key, str(exception)))