class IndicatorLaboratoryAdapter(IndicatorAdapter): def __init__(self, config): super(IndicatorLaboratoryAdapter, self).__init__(config) self.es_adapter = IndicatorESAdapter(config) self.sql_adapter = IndicatorSqlAdapter(config) def rebuild_table(self): self.es_adapter.rebuild_table() self.sql_adapter.rebuild_table() def drop_table(self): self.es_adapter.drop_table() self.sql_adapter.drop_table() def rebuild_table_if_necessary(self): self.es_adapter.rebuild_table_if_necessary() # sql doesn't have this def refresh_table(self): self.es_adapter.refresh_table() self.sql_adapter.refresh_table() def get_query_object(self): raise NotImplementedError def get_distinct_values(self, column, limit): raise NotImplementedError def best_effort_save(self, doc): self.es_adapter.best_effort_save(doc) self.sql_adapter.best_effort_save(doc) def save(self, doc): self.es_adapter.save(doc) self.sql_adapter.save(doc)
def get_indicator_adapter(config, raise_errors=False, can_handle_laboratory=False): from corehq.apps.userreports.sql.adapter import IndicatorSqlAdapter, ErrorRaisingIndicatorSqlAdapter if raise_errors: return ErrorRaisingIndicatorSqlAdapter(config) return IndicatorSqlAdapter(config)
def get_indicator_adapter(config, raise_errors=False, load_source="unknown"): from corehq.apps.userreports.sql.adapter import IndicatorSqlAdapter, ErrorRaisingIndicatorSqlAdapter if raise_errors: adapter = ErrorRaisingIndicatorSqlAdapter(config) else: adapter = IndicatorSqlAdapter(config) track_load = ucr_load_counter(config.engine_id, load_source, config.domain) return IndicatorAdapterLoadTracker(adapter, track_load)
def get_indicator_adapter(config, raise_errors=False): from corehq.apps.userreports.sql.adapter import IndicatorSqlAdapter, ErrorRaisingIndicatorSqlAdapter from corehq.apps.userreports.es.adapter import IndicatorESAdapter if get_backend_id(config) == UCR_ES_BACKEND: return IndicatorESAdapter(config) else: if raise_errors: return ErrorRaisingIndicatorSqlAdapter(config) return IndicatorSqlAdapter(config)
def get_indicator_adapter(config, raise_errors=False, can_handle_laboratory=False): from corehq.apps.userreports.sql.adapter import IndicatorSqlAdapter, ErrorRaisingIndicatorSqlAdapter from corehq.apps.userreports.es.adapter import IndicatorESAdapter from corehq.apps.userreports.laboratory.adapter import IndicatorLaboratoryAdapter backend_id = get_backend_id(config, can_handle_laboratory) if backend_id == UCR_ES_BACKEND: return IndicatorESAdapter(config) elif backend_id == UCR_LABORATORY_BACKEND: return IndicatorLaboratoryAdapter(config) else: if raise_errors: return ErrorRaisingIndicatorSqlAdapter(config) return IndicatorSqlAdapter(config)
def __init__(self, config): super(IndicatorLaboratoryAdapter, self).__init__(config) self.es_adapter = IndicatorESAdapter(config) self.sql_adapter = IndicatorSqlAdapter(config)
class IndicatorLaboratoryAdapter(IndicatorAdapter): def __init__(self, config): super(IndicatorLaboratoryAdapter, self).__init__(config) self.es_adapter = IndicatorESAdapter(config) self.sql_adapter = IndicatorSqlAdapter(config) def rebuild_table(self): self.es_adapter.rebuild_table() self.sql_adapter.rebuild_table() def build_table(self): self.es_adapter.build_table() self.sql_adapter.build_table() def after_table_build(self): self.es_adapter.after_table_build() self.sql_adapter.after_table_build() def drop_table(self): self.es_adapter.drop_table() self.sql_adapter.drop_table() def rebuild_table_if_necessary(self): self.es_adapter.rebuild_table_if_necessary() # sql doesn't have this def refresh_table(self): self.es_adapter.refresh_table() self.sql_adapter.refresh_table() def clear_table(self): self.es_adapter.clear_table() self.sql_adapter.clear_table() def get_query_object(self): raise NotImplementedError def get_distinct_values(self, column, limit): raise NotImplementedError def best_effort_save(self, doc): try: indicator_rows = self.get_all_values(doc) except Exception as e: self.handle_exception(doc, e) else: self.es_adapter._best_effort_save_rows(indicator_rows, doc) self.sql_adapter._best_effort_save_rows(indicator_rows, doc) def _save_rows(self, rows, doc): self.es_adapter._save_rows(rows, doc) self.sql_adapter._save_rows(rows, doc)