Ver código fonte

Refactor provider shared lib dirs retrieval

This commit refactors the way a `TaskRunner` retrieves shared lib dirs for
providers
Daniel Vincze 2 anos atrás
pai
commit
9e1d3759ef
2 arquivos alterados com 17 adições e 17 exclusões
  1. 1 0
      .gitignore
  2. 16 17
      coriolis/tasks/base.py

+ 1 - 0
.gitignore

@@ -37,6 +37,7 @@ MANIFEST
 nosetests.xml
 nova/tests/cover/*
 nova/vcsversion.py
+.stestr/
 tools/conf/nova.conf*
 coriolis/resources/bin/write_data
 .vscode/

+ 16 - 17
coriolis/tasks/base.py

@@ -2,10 +2,10 @@
 # All Rights Reserved.
 
 import abc
-import paramiko
 
 from oslo_config import cfg
 from oslo_log import log as logging
+import paramiko
 from six import with_metaclass
 
 from coriolis import constants
@@ -36,26 +36,15 @@ class TaskRunner(with_metaclass(abc.ABCMeta)):
         if platform in [
                 constants.TASK_PLATFORM_SOURCE,
                 constants.TASK_PLATFORM_BILATERAL]:
-            origin_provider = providers_factory.get_provider(
-                origin["type"], constants.PROVIDER_TYPE_SETUP_LIBS,
-                event_handler, raise_if_not_found=False)
-            if origin_provider:
-                conn_info = get_connection_info(ctxt, origin)
-                required_libs.extend(
-                    origin_provider.get_shared_library_directories(
-                        ctxt, conn_info))
+            required_libs.extend(
+                get_shared_lib_dirs_for_provider(ctxt, origin, event_handler))
 
         if platform in [
                 constants.TASK_PLATFORM_DESTINATION,
                 constants.TASK_PLATFORM_BILATERAL]:
-            destination_provider = providers_factory.get_provider(
-                destination["type"], constants.PROVIDER_TYPE_SETUP_LIBS,
-                event_handler, raise_if_not_found=False)
-            if destination_provider:
-                conn_info = get_connection_info(ctxt, destination)
-                required_libs.extend(
-                    destination_provider.get_shared_library_directories(
-                        ctxt, conn_info))
+            required_libs.extend(
+                get_shared_lib_dirs_for_provider(
+                    ctxt, destination, event_handler))
 
         return required_libs
 
@@ -154,6 +143,16 @@ class TaskRunner(with_metaclass(abc.ABCMeta)):
         return result
 
 
+def get_shared_lib_dirs_for_provider(ctxt, endpoint, event_handler):
+    provider = providers_factory.get_provider(
+        endpoint['type'], constants.PROVIDER_TYPE_SETUP_LIBS,
+        event_handler, raise_if_not_found=False)
+    if provider:
+        conn_info = get_connection_info(ctxt, endpoint)
+        return provider.get_shared_library_directories(ctxt, conn_info)
+    return []
+
+
 def get_connection_info(ctxt, data):
     connection_info = data.get("connection_info") or {}
     return utils.get_secret_connection_info(ctxt, connection_info)