Completed
Pull Request — master (#448)
by
unknown
02:25
created

MSSQLAction._connect_params()   A

Complexity

Conditions 4

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 13
rs 9.2
cc 4
1
import _mssql
2
3
from st2actions.runners.pythonrunner import Action
4
5
__all__ = [
6
    'MSSQLAction'
7
]
8
9
10
class MSSQLAction(Action):
11
12
    def __init__(self, config):
13
        super(MSSQLAction, self).__init__(config=config)
14
        self.config = config
15
16
    def connect(self, database=None, server=None, user=None, password=None):
17
        # pylint: disable=no-member
18
        return _mssql.connect(**self._connect_params(database, server, user, password))
19
20
    def _connect_params(self, database=None, server=None, user=None, password=None):
21
        database = database or self.config.get('default')
22
        db_config = self.config.get(database, {})
23
        params = {
24
            'database': db_config.get('database') or database,
25
            'server': server or db_config.get('server'),
26
            'user': user or db_config.get('user'),
27
            'password': password or db_config.get('password')
28
        }
29
        unspecified = [param for param, value in params.iteritems() if value is None]
30
        if unspecified:
31
            raise Exception("Must specify or configure in config.yaml: %s" % ', '.join(unspecified))
32
        return params
33