def on_referenced(dsym_file): app_info = version_build_from_data(self.data) if app_info is not None: dsym_app = DSymApp.objects.create_or_update_app( sync_id=None, app_id=app_info.id, project=self.project, data={'name': app_info.name}, platform=DSymPlatform.APPLE, ) version_dsym_file, created = VersionDSymFile.objects.get_or_create( dsym_file=dsym_file, dsym_app=dsym_app, version=app_info.version, build=app_info.build, )
def preprocess_step(self, processing_task): if not self.available: return False referenced_images = set( pf.data['obj_uuid'] for pf in processing_task.iter_processable_frames(self) if pf.cache_value is None and pf.data['obj_uuid'] is not None ) app_info = version_build_from_data(self.data) if app_info is not None: def on_referenced(dsym_file): dsym_app = DSymApp.objects.create_or_update_app( sync_id=None, app_id=app_info.id, project=self.project, data={'name': app_info.name}, platform=DSymPlatform.APPLE, no_fetch=True ) try: with transaction.atomic(): version_dsym_file, created = VersionDSymFile.objects.get_or_create( dsym_file=dsym_file, version=app_info.version, build=app_info.build, defaults=dict(dsym_app=dsym_app), ) except IntegrityError: # XXX: this can currently happen because we only # support one app per dsym file. Since this can # happen in some cases anyways we ignore it. pass else: on_referenced = None self.sym = Symbolizer( self.project, self.object_lookup, referenced_images=referenced_images, on_dsym_file_referenced=on_referenced ) if options.get('symbolserver.enabled'): self.fetch_system_symbols(processing_task)
def preprocess_step(self, processing_task): if not self.available: return False referenced_images = set( pf.data['obj_uuid'] for pf in processing_task.iter_processable_frames(self) if pf.cache_value is None and pf.data['obj_uuid'] is not None) app_info = version_build_from_data(self.data) if app_info is not None: def on_referenced(dsym_file): dsym_app = DSymApp.objects.create_or_update_app( sync_id=None, app_id=app_info.id, project=self.project, data={'name': app_info.name}, platform=DSymPlatform.APPLE, no_fetch=True) try: with transaction.atomic(): version_dsym_file, created = VersionDSymFile.objects.get_or_create( dsym_file=dsym_file, version=app_info.version, build=app_info.build, defaults=dict(dsym_app=dsym_app), ) except IntegrityError: # XXX: this can currently happen because we only # support one app per dsym file. Since this can # happen in some cases anyways we ignore it. pass else: on_referenced = None self.sym = Symbolizer(self.project, self.object_lookup, arch=self.arch, referenced_images=referenced_images, on_dsym_file_referenced=on_referenced) if options.get('symbolserver.enabled'): self.fetch_system_symbols(processing_task)
def on_referenced(dsym_file): app_info = version_build_from_data(self.data) if app_info is not None: dsym_app = DSymApp.objects.create_or_update_app( sync_id=None, app_id=app_info.id, project=self.project, data={'name': app_info.name}, platform=DSymPlatform.APPLE, ) try: with transaction.atomic(): version_dsym_file, created = VersionDSymFile.objects.get_or_create( dsym_file=dsym_file, version=app_info.version, build=app_info.build, defaults=dict(dsym_app=dsym_app), ) except IntegrityError: # XXX: this can currently happen because we only # support one app per dsym file. Since this can # happen in some cases anyways we ignore it. pass
def test_version_build_from_data(): app_info = version_build_from_data( { 'contexts': { 'app': { 'app_build': "2", 'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598", 'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7", 'app_version': "1.0", 'app_identifier': "com.rokkincat.SentryExample", 'app_name': "SwiftExample", 'app_start_time': "2017-03-28T15:14:01Z", 'type': "app", 'build_type': "simulator" } } } ) assert app_info.version == '1.0' assert app_info.build == '2' assert app_info.name == 'SwiftExample' assert app_info.id == 'com.rokkincat.SentryExample' app_info = version_build_from_data( { 'contexts': { 'app': { 'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598", 'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7", 'app_version': "1.0", 'app_identifier': "com.rokkincat.SentryExample", 'app_name': "SwiftExample", 'app_start_time': "2017-03-28T15:14:01Z", 'type': "app", 'build_type': "simulator" } } } ) assert app_info is None app_info = version_build_from_data( { 'contexts': { 'app': { 'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598", 'app_id': "45BA82DF-F3E3-37F7-9D88-12A1AAB719E7", 'app_identifier': "com.rokkincat.SentryExample", 'app_name': "SwiftExample", 'app_start_time': "2017-03-28T15:14:01Z", 'type': "app", 'build_type': "simulator" } } } ) assert app_info is None app_info = version_build_from_data( { 'contexts': { 'bal': { 'device_app_hash': "18482a73f96d2ed3f4ce8d73fa9942744bff3598", } } } ) assert app_info is None