浏览代码

Add debugging messages

FabioRosado 8 年之前
父节点
当前提交
15d6686bd1
共有 2 个文件被更改,包括 22 次插入0 次删除
  1. 13 0
      cloudbridge/cloud/base/provider.py
  2. 9 0
      cloudbridge/cloud/factory.py

+ 13 - 0
cloudbridge/cloud/base/provider.py

@@ -1,6 +1,7 @@
 """Base implementation of a provider interface."""
 import functools
 import os
+import logging
 from os.path import expanduser
 try:
     from configparser import ConfigParser
@@ -11,6 +12,7 @@ from cloudbridge.cloud.interfaces import CloudProvider
 from cloudbridge.cloud.interfaces.exceptions import ProviderConnectionException
 from cloudbridge.cloud.interfaces.resources import Configuration
 
+log = logging.getLogger(__name__)
 
 DEFAULT_RESULT_LIMIT = 50
 DEFAULT_WAIT_TIMEOUT = 600
@@ -37,6 +39,8 @@ class BaseConfiguration(Configuration):
         :rtype: ``int``
         :return: The maximum number of results to return
         """
+        log.debug("Maximum number of results for list methods "
+                  + DEFAULT_RESULT_LIMIT)
         return self.get('default_result_limit', DEFAULT_RESULT_LIMIT)
 
     @property
@@ -44,6 +48,8 @@ class BaseConfiguration(Configuration):
         """
         Gets the default wait timeout for LifeCycleObjects.
         """
+        log.debug("Default wait timeout for LifeCycleObjects "
+                  + DEFAULT_WAIT_TIMEOUT)
         return self.get('default_wait_timeout', DEFAULT_WAIT_TIMEOUT)
 
     @property
@@ -51,6 +57,8 @@ class BaseConfiguration(Configuration):
         """
         Gets the default wait interval for LifeCycleObjects.
         """
+        log.debug("Default wait interfal for LifeCycleObjects "
+                  + DEFAULT_WAIT_INTERVAL)
         return self.get('default_wait_interval', DEFAULT_WAIT_INTERVAL)
 
     @property
@@ -94,6 +102,7 @@ class BaseCloudProvider(CloudProvider):
             self.security.key_pairs.list()
             return True
         except Exception as e:
+            log.debug("ProviderConnectionException ocurred")
             raise ProviderConnectionException(
                 "Authentication with cloud provider failed: %s" % (e,))
 
@@ -113,11 +122,15 @@ class BaseCloudProvider(CloudProvider):
         """
         try:
             if self._deepgetattr(self, service_type):
+                log.debug("This provider supports "
+                          + service_type)
                 return True
         except AttributeError:
             pass  # Undefined service type
         except NotImplementedError:
             pass  # service not implemented
+        log.debug("This provider doesn't support "
+                  + service_type)
         return False
 
     def _get_config_value(self, key, default_value):

+ 9 - 0
cloudbridge/cloud/factory.py

@@ -25,6 +25,7 @@ class CloudProviderFactory(object):
 
     def __init__(self):
         self.provider_list = defaultdict(dict)
+        log.debug("Providers List: " + self.provider_list)
 
     def register_provider_class(self, cls):
         """
@@ -45,6 +46,7 @@ class CloudProviderFactory(object):
         if isinstance(cls, type) and issubclass(cls, CloudProvider):
             if hasattr(cls, "PROVIDER_ID"):
                 provider_id = getattr(cls, "PROVIDER_ID")
+                log.debug("Cloud provider: " + provider_id)
                 if issubclass(cls, TestMockHelperMixin):
                     if self.provider_list.get(provider_id, {}).get(
                             'mock_class'):
@@ -72,8 +74,10 @@ class CloudProviderFactory(object):
         Note that this methods does not guard against a failed import.
         """
         for _, modname, _ in pkgutil.iter_modules(providers.__path__):
+            log.debug("Importing provider: " + modname)
             self._import_provider(modname)
 
+
     def _import_provider(self, module_name):
         """
         Imports and registers providers from the given module name.
@@ -84,6 +88,7 @@ class CloudProviderFactory(object):
                              module_name))
         classes = inspect.getmembers(module, inspect.isclass)
         for _, cls in classes:
+            log.debug("Registering the class: " + cls)
             self.register_provider_class(cls)
 
     def list_providers(self):
@@ -104,6 +109,7 @@ class CloudProviderFactory(object):
         """
         if not self.provider_list:
             self.discover_providers()
+        log.debug("List of available providers: " + self.provider_list)
         return self.provider_list
 
     def create_provider(self, name, config):
@@ -129,6 +135,7 @@ class CloudProviderFactory(object):
             raise NotImplementedError(
                 'A provider with name {0} could not be'
                 ' found'.format(name))
+        log.debug("Provider name: " + name + " config details:" + config)
         return provider_class(config)
 
     def get_provider_class(self, name, get_mock=False):
@@ -150,6 +157,7 @@ class CloudProviderFactory(object):
             else:
                 return impl["class"]
         else:
+            log.debug("Provider with the name: " + name + "not found")
             return None
 
     def get_all_provider_classes(self, get_mock=False):
@@ -170,4 +178,5 @@ class CloudProviderFactory(object):
                 all_providers.append(impl["mock_class"])
             else:
                 all_providers.append(impl["class"])
+        log.debug("List of provider classes: " + all_providers)        
         return all_providers