← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1423900] [NEW] Don't try to query dbus if the credentials are in the environment variables

 

Public bug reported:

I use nova with credentials as environment variables, and was suprised
to get the following traceback :

# nova list
Traceback (most recent call last):
  File "/usr/bin/nova", line 6, in <module>
    from novaclient.shell import main
  File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 38, in <module>
    import keyring
  File "/usr/lib/python2.7/dist-packages/keyring/__init__.py", line 12, in <module>
    from .core import (set_keyring, get_keyring, set_password, get_password,
  File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 180, in <module>
    init_backend()
  File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 59, in init_backend
    set_keyring(load_config() or _get_best_keyring())
  File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 67, in _get_best_keyring
    keyrings = backend.get_all_keyring()
  File "/usr/lib/python2.7/dist-packages/keyring/util/__init__.py", line 24, in wrapper
    func.always_returns = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/keyring/backend.py", line 127, in get_all_keyring
    exceptions=TypeError))
  File "/usr/lib/python2.7/dist-packages/keyring/util/__init__.py", line 35, in suppress_exceptions
    for callable in callables:
  File "/usr/lib/python2.7/dist-packages/keyring/backend.py", line 119, in is_class_viable
    keyring_cls.priority
  File "/usr/lib/python2.7/dist-packages/keyring/util/properties.py", line 22, in __get__
    return self.fget.__get__(None, owner)()
  File "/usr/lib/python2.7/dist-packages/keyring/util/XDG.py", line 18, in wrapper
    return func(*args, **kwargs) * self.multiplier
  File "/usr/lib/python2.7/dist-packages/keyring/backends/SecretService.py", line 32, in priority
    list(secretstorage.get_all_collections(bus))
  File "/usr/lib/python2.7/dist-packages/secretstorage/collection.py", line 158, in get_all_collections
    service_obj = bus_get_object(bus, SECRETS, SS_PATH)
  File "/usr/lib/python2.7/dist-packages/secretstorage/util.py", line 50, in bus_get_object
    return bus.get_object(name, object_path, introspect=False)
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.TimedOut: Activation of org.freedesktop.secrets timed out

This might be an explanation of why my nova commands have been slugish
lately. Would it be possible for nova not to try dbus if it finds the
credentials in the environment ?

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1423900

Title:
  Don't try to query dbus if the credentials are in the environment
  variables

Status in OpenStack Compute (Nova):
  New

Bug description:
  I use nova with credentials as environment variables, and was suprised
  to get the following traceback :

  # nova list
  Traceback (most recent call last):
    File "/usr/bin/nova", line 6, in <module>
      from novaclient.shell import main
    File "/usr/lib/python2.7/dist-packages/novaclient/shell.py", line 38, in <module>
      import keyring
    File "/usr/lib/python2.7/dist-packages/keyring/__init__.py", line 12, in <module>
      from .core import (set_keyring, get_keyring, set_password, get_password,
    File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 180, in <module>
      init_backend()
    File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 59, in init_backend
      set_keyring(load_config() or _get_best_keyring())
    File "/usr/lib/python2.7/dist-packages/keyring/core.py", line 67, in _get_best_keyring
      keyrings = backend.get_all_keyring()
    File "/usr/lib/python2.7/dist-packages/keyring/util/__init__.py", line 24, in wrapper
      func.always_returns = func(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/keyring/backend.py", line 127, in get_all_keyring
      exceptions=TypeError))
    File "/usr/lib/python2.7/dist-packages/keyring/util/__init__.py", line 35, in suppress_exceptions
      for callable in callables:
    File "/usr/lib/python2.7/dist-packages/keyring/backend.py", line 119, in is_class_viable
      keyring_cls.priority
    File "/usr/lib/python2.7/dist-packages/keyring/util/properties.py", line 22, in __get__
      return self.fget.__get__(None, owner)()
    File "/usr/lib/python2.7/dist-packages/keyring/util/XDG.py", line 18, in wrapper
      return func(*args, **kwargs) * self.multiplier
    File "/usr/lib/python2.7/dist-packages/keyring/backends/SecretService.py", line 32, in priority
      list(secretstorage.get_all_collections(bus))
    File "/usr/lib/python2.7/dist-packages/secretstorage/collection.py", line 158, in get_all_collections
      service_obj = bus_get_object(bus, SECRETS, SS_PATH)
    File "/usr/lib/python2.7/dist-packages/secretstorage/util.py", line 50, in bus_get_object
      return bus.get_object(name, object_path, introspect=False)
    File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 241, in get_object
      follow_name_owner_changes=follow_name_owner_changes)
    File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 248, in __init__
      self._named_service = conn.activate_name_owner(bus_name)
    File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 180, in activate_name_owner
      self.start_service_by_name(bus_name)
    File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 278, in start_service_by_name
      'su', (bus_name, flags)))
    File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
      message, timeout)
  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.TimedOut: Activation of org.freedesktop.secrets timed out

  This might be an explanation of why my nova commands have been slugish
  lately. Would it be possible for nova not to try dbus if it finds the
  credentials in the environment ?

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1423900/+subscriptions


Follow ups

References