Completed
Pull Request — master (#540)
by
unknown
02:45
created

SaltLocal   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 49
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
B run() 0 34 2
1
import json
2
from requests import Session
3
4
from lib.base import SaltAction
5
6
7
class SaltLocal(SaltAction):
8
    __explicit__ = [
9
        'cmdmod',
10
        'event',
11
        'file',
12
        'grains',
13
        'pillar',
14
        'pkg',
15
        'saltcloudmod',
16
        'schedule',
17
        'service',
18
        'state',
19
        'status'
20
    ]
21
22
    def run(self, module, target, expr_form, args, **kwargs):
23
        self.verify_ssl = self.config.get('verify_ssl', True)
24
        '''
25
        CLI Examples:
26
27
            st2 run salt.local module=test.ping matches='web*'
28
            st2 run salt.local module=test.ping expr_form=grain target='os:Ubuntu'
29
        '''
30
        if module not in ['test.ping','test.version']:
31
            self.generate_package('local',
32
                                  cmd=module,
33
                                  target=target,
34
                                  expr_form=expr_form,
35
                                  args=args,
36
                                  data=kwargs)
37
        else:
38
            self.generate_package('local',
39
                                  cmd=module,
40
                                  target=target,
41
                                  expr_form=expr_form,
42
                                  args=None,
43
                                  data=kwargs)
44
        self.generate_package('local',
45
                              cmd=module,
46
                              target=target,
47
                              expr_form=expr_form,
48
                              args=args,
49
                              data=kwargs)
50
        request = self.generate_request()
51
        self.logger.info('[salt] Request generated')
52
        request.prepare_body(json.dumps(self.data), None)
53
        self.logger.info('[salt] Preparing to send')
54
        resp = Session().send(request, verify=self.verify_ssl)
55
        return resp.json()
56