text: """
  etcd Database Module
  
  :maintainer:    SaltStack
  :maturity:      New
  :depends:       python-etcd
  :platform:      all
  
  .. versionadded:: 2015.5.0
  
  This module allows access to the etcd database using an ``sdb://`` URI. This
  package is located at ``https://pypi.python.org/pypi/python-etcd``.
  
  Like all sdb modules, the etcd module requires a configuration profile to
  be configured in either the minion or master configuration file. This profile
  requires very little. In the example:
  
  .. code-block:: yaml
  
      myetcd:
        driver: etcd
        etcd.host: 127.0.0.1
        etcd.port: 2379
  
  The ``driver`` refers to the etcd module, ``etcd.host`` refers to the host that
  is hosting the etcd database and ``etcd.port`` refers to the port on that host.
  
  .. code-block:: yaml
  
      password: sdb://myetcd/mypassword
  
  """
  
  
  import logging
  
  try:
      import salt.utils.etcd_util
  
      HAS_LIBS = True
  except ImportError:
      HAS_LIBS = False
  
  log = logging.getLogger(__name__)
  
  __func_alias__ = {"set_": "set"}
  
  __virtualname__ = "etcd"
  
  
  def __virtual__():
      """
      Only load the module if keyring is installed
      """
      if HAS_LIBS:
          return __virtualname__
      return False
  
  
  def set_(key, value, service=None, profile=None):  # pylint: disable=W0613
      """
      Set a key/value pair in the etcd service
      """
      client = _get_conn(profile)
      client.set(key, value)
      return get(key, service, profile)
  
  
  def get(key, service=None, profile=None):  # pylint: disable=W0613
      """
      Get a value from the etcd service
      """
      client = _get_conn(profile)
      return client.get(key)
  
  
  def delete(key, service=None, profile=None):  # pylint: disable=W0613
      """
      Get a value from the etcd service
      """
      client = _get_conn(profile)
      try:
          client.delete(key)
          return True
      except Exception:  # pylint: disable=broad-except
          return False
  
  
  def _get_conn(profile):
      """
      Get a connection
      """
      return salt.utils.etcd_util.get_conn(profile)
  