def sync_users(): log = VisionSyncLog(country=Country.objects.get(schema_name="public"), handler_name='UserADSync') try: sync_users_remote() except Exception as e: log.exception_message = force_text(e) raise VisionException(*e.args) finally: log.save()
def map_users(): log = VisionSyncLog(country=Country.objects.get(schema_name="public"), handler_name='UserSupervisorMapper') try: user_sync = UserMapper() user_sync.map_users() except Exception as e: log.exception_message = force_text(e) raise VisionException(*e.args) finally: log.save()
def update_hact_for_country(country_name): country = Country.objects.get(name=country_name) log = VisionSyncLog(country=country, handler_name='HactSynchronizer') connection.set_tenant(country) logger.info('Set country {}'.format(country_name)) try: partners = PartnerOrganization.objects.hact_active() for partner in partners: logger.debug('Updating Partner {}'.format(partner.name)) partner.planned_visits_to_hact() partner.programmatic_visits() partner.spot_checks() partner.audits_completed() partner.hact_support() except Exception as e: logger.info('HACT Sync', exc_info=True) log.exception_message = e raise VisionException else: log.total_records = partners.count() log.total_processed = partners.count() log.successful = True finally: log.save()
def update_hact_for_country(country_name): country = Country.objects.get(name=country_name) log = VisionSyncLog( country=country, handler_name='HactSynchronizer' ) connection.set_tenant(country) logger.info('Set country {}'.format(country_name)) try: partners = PartnerOrganization.objects.hact_active() for partner in partners: logger.debug('Updating Partner {}'.format(partner.name)) partner.planned_visits_to_hact() partner.programmatic_visits() partner.spot_checks() partner.audits_completed() partner.hact_support() except Exception as e: logger.info('HACT Sync', exc_info=True) log.exception_message = e raise VisionException else: log.total_records = partners.count() log.total_processed = partners.count() log.successful = True finally: log.save()
def sync(self): """ Performs the database sync :return: """ log = VisionSyncLog(country=self.country, handler_name=self.__class__.__name__) loader_kwargs = self._get_kwargs() loader_kwargs.update({ kwarg_name: getattr(self, kwarg_name) for kwarg_name in self.LOADER_EXTRA_KWARGS }) data_getter = self.LOADER_CLASS(**loader_kwargs) try: original_records = data_getter.get() logger.info('{} records returned from get'.format( len(original_records))) converted_records = self._convert_records(original_records) log.total_records = len(converted_records) logger.info('{} records returned from conversion'.format( len(converted_records))) totals = self._save_records(converted_records) except Exception as e: logger.info('sync', exc_info=True) log.exception_message = force_text(e) traceback = sys.exc_info()[2] raise VisionException(force_text(e)).with_traceback(traceback) else: if isinstance(totals, dict): log.total_processed = totals.get('processed', 0) log.details = totals.get('details', '') log.total_records = totals.get('total_records', log.total_records) else: log.total_processed = totals log.successful = True finally: log.save()
def test_vision_sync_log(self): country = CountryFactory.build(name='M\xe9xico', schema_name='Mexico') instance = VisionSyncLog(country=country) self.assertTrue(str(instance).startswith('M\xe9xico'))