GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Passed
Push — kale/action-datastore ( 9f47ff...fd1ef0 )
by
unknown
12:31 queued 06:24
created

FormatResultAction   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 46
Duplicated Lines 0 %
Metric Value
wmc 11
dl 0
loc 46
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 11 3
A _get_execution() 0 8 3
B run() 0 24 5
1
import six
2
import os
3
4
from st2actions.runners.pythonrunner import Action
5
from st2client.client import Client
6
from st2common.util import jinja as jinja_utils
7
8
9
class FormatResultAction(Action):
10
    def __init__(self, config):
11
        super(FormatResultAction, self).__init__(config)
12
        api_url = os.environ.get('ST2_ACTION_API_URL', None)
13
        token = os.environ.get('ST2_ACTION_AUTH_TOKEN', None)
14
        self.client = Client(api_url=api_url, token=token)
15
        self.jinja = jinja_utils.get_jinja_environment()
16
        self.jinja.tests['in'] = lambda item, list: item in list
17
18
        path = os.path.dirname(os.path.realpath(__file__))
19
        with open(os.path.join(path, 'templates/default.j2'), 'r') as f:
20
            self.default_template = f.read()
21
22
    def run(self, execution_id):
23
        execution = self._get_execution(execution_id)
24
        context = {
25
            'six': six,
26
            'execution': execution
27
        }
28
        template = self.default_template
29
30
        alias_id = execution['context'].get('action_alias_ref', {}).get('id', None)
31
        if alias_id:
32
            alias = self.client.managers['ActionAlias'].get_by_id(alias_id)
33
34
            context.update({
35
                'alias': alias
36
            })
37
38
            result = getattr(alias, 'result', None)
39
            if result:
40
                if not result.get('enabled', True):
41
                    raise Exception("Output of this template is disabled.")
42
                if 'format' in alias.result:
43
                    template = alias.result['format']
44
45
        return self.jinja.from_string(template).render(context)
46
47
    def _get_execution(self, execution_id):
48
        if not execution_id:
49
            raise ValueError('Invalid execution_id provided.')
50
        execution = self.client.liveactions.get_by_id(id=execution_id)
51
        if not execution:
52
            return None
53
        excludes = ["trigger", "trigger_type", "trigger_instance", "liveaction"]
54
        return execution.to_dict(exclude_attributes= excludes)
55