示例#1
0
文件: utils.py 项目: fedj/biggraphite
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)
示例#2
0
 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)