def accessor_from_settings(settings): """Get Accessor from configuration. Args: settings: dict(str -> value). Returns: Accessor (not connected). """ driver_name = settings.get('driver', DEFAULT_DRIVER) metadata_driver = settings.get('metadata_driver', None) data_driver = settings.get('data_driver', None) if metadata_driver is None and data_driver is None: return _build_simple_accessor(driver_name, settings) else: if metadata_driver is None: raise ConfigError( "Metadata driver is not provided. Please specify --metadata_driver" ) if data_driver is None: raise ConfigError( "Data driver is not provided. Please specify --data_driver") metadata_accessor = _build_simple_accessor(metadata_driver, settings) data_accessor = _build_simple_accessor(data_driver, settings) return bg_hybrid.HybridAccessor( "%s_%s" % (metadata_driver, data_driver), metadata_accessor, data_accessor)
def setUp(self): self._metadata_accessor = Mock() self._metadata_accessor.TYPE = 'mock' self._data_accessor = Mock() self._data_accessor.TYPE = 'mock' self._accessor = hybrid.HybridAccessor("test_hybrid", self._metadata_accessor, self._data_accessor)
def accessor_from_settings(settings): """Get Accessor from configuration. Args: settings: dict(str -> value). Returns: Accessor (not connected). """ driver_name = settings.get("driver", DEFAULT_DRIVER) metadata_driver = settings.get("metadata_driver", None) data_driver = settings.get("data_driver", None) if metadata_driver is None and data_driver is None: return _build_simple_accessor(driver_name, settings) else: if metadata_driver is None: raise ConfigError( "Metadata driver is not provided. Please specify --metadata_driver" ) if data_driver is None: raise ConfigError( "Data driver is not provided. Please specify --data_driver") if metadata_driver == data_driver: return _build_simple_accessor(data_driver, settings) else: # The data accessor may still update the metadata in its own storage # (update_on on insert_points(), read_on on fetch_points()). Since we # are in hybrid mode, the metadata accessor is responsible for these # actions, therefore we can disable the metadata handling in the data # accessor. enable_metadata_key = data_driver + '_enable_metadata' settings[enable_metadata_key] = False metadata_accessor = _build_simple_accessor(metadata_driver, settings) data_accessor = _build_simple_accessor(data_driver, settings) return bg_hybrid.HybridAccessor( "%s_%s" % (metadata_driver, data_driver), metadata_accessor, data_accessor)