
__all__ = [
    'BACKENDS_NAMESPACE'
]

BACKENDS_NAMESPACE = 'st2common.runners.runner'


from stevedore.driver import DriverManager
from stevedore.extension import ExtensionManager

__all__ = [
    'BACKENDS_NAMESPACE',

    'get_available_backends',
    'get_backend_instance'
]

BACKENDS_NAMESPACE = 'st2common.runners.runner'


def get_available_backends():
    """
    Return names of the available / installed action runners.

    :rtype: ``list`` of ``str``
    """
    manager = ExtensionManager(namespace=BACKENDS_NAMESPACE, invoke_on_load=False)
    return manager.names()


def get_backend_instance(name):
    """
    Return a class instance for the provided runner name.
    """
    manager = DriverManager(namespace=BACKENDS_NAMESPACE, name=name, invoke_on_load=False)
    return manager.driver

Add functions for retrieving a list of dynamically registered runners.
Add functions for retrieving a list of dynamically registered runners.

Those functions match same functions exposed by the auth backend loading
functionality.

+ 
+ from stevedore.driver import DriverManager
+ from stevedore.extension import ExtensionManager
  
  __all__ = [
-     'BACKENDS_NAMESPACE'
+     'BACKENDS_NAMESPACE',
+ 
+     'get_available_backends',
+     'get_backend_instance'
  ]
  
  BACKENDS_NAMESPACE = 'st2common.runners.runner'
  
+ 
+ def get_available_backends():
+     """
+     Return names of the available / installed action runners.
+ 
+     :rtype: ``list`` of ``str``
+     """
+     manager = ExtensionManager(namespace=BACKENDS_NAMESPACE, invoke_on_load=False)
+     return manager.names()
+ 
+ 
+ def get_backend_instance(name):
+     """
+     Return a class instance for the provided runner name.
+     """
+     manager = DriverManager(namespace=BACKENDS_NAMESPACE, name=name, invoke_on_load=False)
+     return manager.driver
+ 
Add functions for retrieving a list of dynamically registered runners.
## Code Before:

__all__ = [
    'BACKENDS_NAMESPACE'
]

BACKENDS_NAMESPACE = 'st2common.runners.runner'

## Instruction:
Add functions for retrieving a list of dynamically registered runners.
## Code After:

from stevedore.driver import DriverManager
from stevedore.extension import ExtensionManager

__all__ = [
    'BACKENDS_NAMESPACE',

    'get_available_backends',
    'get_backend_instance'
]

BACKENDS_NAMESPACE = 'st2common.runners.runner'


def get_available_backends():
    """
    Return names of the available / installed action runners.

    :rtype: ``list`` of ``str``
    """
    manager = ExtensionManager(namespace=BACKENDS_NAMESPACE, invoke_on_load=False)
    return manager.names()


def get_backend_instance(name):
    """
    Return a class instance for the provided runner name.
    """
    manager = DriverManager(namespace=BACKENDS_NAMESPACE, name=name, invoke_on_load=False)
    return manager.driver
