Completed
Pull Request — master (#415)
by Anthony
02:24
created

BaseAction._do_function()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 3
rs 10
1
try:
2
    import libcloud
0 ignored issues
show
Unused Code introduced by
The import libcloud seems to be unused.
Loading history...
3
except ImportError:
4
    message = ('Missing "apache-libcloud", please install it using pip:\n'
5
               'pip install apache-libcloud')
6
    raise ImportError(message)
7
8
from libcloud.compute.drivers.dimensiondata import DimensionDataNodeDriver
9
from libcloud.loadbalancer.drivers.dimensiondata import DimensionDataLBDriver
10
from dimensiondata_parsers import ResultSets
11
12
from st2actions.runners.pythonrunner import Action
13
14
__all__ = [
15
    'BaseAction',
16
]
17
18
19
class BaseAction(Action):
20
    def __init__(self, config):
21
        super(BaseAction, self).__init__(config)
22
        self.resultsets = ResultSets()
23
24
    def _get_compute_driver(self, region):
25
        api_user = self.config['api_user']
26
        api_pass = self.config['api_password']
27
        driver = DimensionDataNodeDriver(api_user, api_pass, region=region)
28
        return driver
29
30
    def _get_lb_driver(self, region):
31
        api_user = self.config['api_user']
32
        api_pass = self.config['api_password']
33
        driver = DimensionDataLBDriver(api_user, api_pass, region=region)
34
        return driver
35
36
    def _do_function(self, module, action, **kwargs):
37
        result = getattr(module, action)(**kwargs)
38
        return self.resultsets.formatter(result)
39