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

MSSQLAction   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 22
Duplicated Lines 0 %
Metric Value
wmc 6
dl 0
loc 22
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A _connect_params() 0 13 4
A __init__() 0 3 1
A connect() 0 2 1
1
from _mssql import connect
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
        return connect(**self._connect_params(database, server, user, password))
18
19
    def _connect_params(self, database=None, server=None, user=None, password=None):
20
        database = database or self.config.get('default')
21
        db_config = self.config.get(database, {})
22
        params = {
23
            'database': db_config.get('database') or database,
24
            'server': server or db_config.get('server'),
25
            'user': user or db_config.get('user'),
26
            'password': password or db_config.get('password')
27
        }
28
        unspecified = [param for param, value in params.iteritems() if value is None]
29
        if unspecified:
30
            raise Exception("Must specify or configure in config.yaml: %s" % ', '.join(unspecified))
31
        return params
32