示例#1
0
def persist_aa_data(app, aa_data):
    """
    Reads access advisor JSON file & persists to our database
    """
    from aardvark.model import AWSIAMObject, AdvisorData

    with app.app_context():
        if not aa_data:
            app.logger.warn('Cannot persist Access Advisor Data as no data was collected.')
            return

        arn_cache = {}
        for arn, data in aa_data.items():
            if arn in arn_cache:
                item = arn_cache[arn]
            else:
                item = AWSIAMObject.get_or_create(arn)
                arn_cache[arn] = item
            for service in data:
                AdvisorData.create_or_update(item.id,
                                             service['LastAuthenticated'],
                                             service['ServiceName'],
                                             service['ServiceNamespace'],
                                             service.get('LastAuthenticatedEntity'),
                                             service['TotalAuthenticatedEntities'])
        db.session.commit()
示例#2
0
def persist_aa_data(app, aa_data):
    """
    Reads access advisor JSON file & persists to our database
    """
    from aardvark.model import AWSIAMObject, AdvisorData

    aa = json.loads(aa_data)

    with app.app_context():
        arn_cache = {}
        for arn, data in aa.items():
            if arn in arn_cache:
                item = arn_cache[arn]
            else:
                item = AWSIAMObject.get_or_create(arn)
                arn_cache[arn] = item
            for service in data:
                AdvisorData.create_or_update(
                    item.id, service['lastAuthenticated'],
                    service['serviceName'], service['serviceNamespace'],
                    service['lastAuthenticatedEntity'],
                    service['totalAuthenticatedEntities'])
        db.session.commit()