Total Complexity | 2 |
Total Lines | 49 |
Duplicated Lines | 0 % |
Changes | 1 | ||
Bugs | 1 | Features | 0 |
1 | import json |
||
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 |