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
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