Work better in server env with no keyrings

We should not try loading keyrings if we dont' have to. We
certainly should not print messages if keyrings are not even
needed

Fix for LP# 1145071

Change-Id: I700a2b40620359f6f1fbe03c6a6239d162ddea61
This commit is contained in:
Davanum Srinivas
2013-03-04 14:46:32 -05:00
parent 3ce3fe80cb
commit 06d9437e83

View File

@@ -33,17 +33,17 @@ from keystoneclient import exceptions
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
# keyring init def try_import_keyring():
keyring_available = True try:
try: import keyring
import keyring import pickle
import pickle return True
except ImportError: except ImportError:
if (hasattr(sys.stderr, 'isatty') and sys.stderr.isatty()): if (hasattr(sys.stderr, 'isatty') and sys.stderr.isatty()):
print >> sys.stderr, 'Failed to load keyring modules.' print >> sys.stderr, 'Failed to load keyring modules.'
else: else:
_logger.warning('Failed to load keyring modules.') _logger.warning('Failed to load keyring modules.')
keyring_available = False return False
class HTTPClient(object): class HTTPClient(object):
@@ -121,7 +121,7 @@ class HTTPClient(object):
requests.logging.getLogger(requests.__name__).addHandler(ch) requests.logging.getLogger(requests.__name__).addHandler(ch)
# keyring setup # keyring setup
self.use_keyring = use_keyring and keyring_available self.use_keyring = use_keyring and try_import_keyring()
self.force_new_token = force_new_token self.force_new_token = force_new_token
self.stale_duration = stale_duration or access.STALE_TOKEN_DURATION self.stale_duration = stale_duration or access.STALE_TOKEN_DURATION
self.stale_duration = int(self.stale_duration) self.stale_duration = int(self.stale_duration)