Example #1
0
def save_platform(data, event='unknown'):
    res = DimensionPlatform.insert(
        os=data.get('platform_os', None),
        name=data.get('platform_name', None),
        version=data.get('platform_version', None)
    ) if any(
        [p in data for p in ['platform_os', 'platform_name', 'platform_version']]
    ) else None

    if not res:
        register_flag(
            type=MISSING_DATA,
            event=event,
            description='No platform information provided in event.'
        )
    return res
Example #2
0
def get_platform(local_data, model):
    valid_keys = all(
        [i in local_data
         for i in ['platform_os', 'platform_name', 'platform_version']])
    if valid_keys:
        return DimensionPlatform.insert(
            os=local_data['platform_os'],
            name=local_data['platform_name'],
            version=local_data['platform_version'])

    fact_record = model.objects.filter(
        ~Q(platform_id=-1),
         subscription_id=local_data['subscription_id'])
    if fact_record.count() == 0:
        return DimensionPlatform.objects.get(id=-1)

    # always use the first record here
    return fact_record[0].platform