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.

ScheduleDefinitionMessageEventHandler.handle()   B
last analyzed

Complexity

Conditions 4

Size

Total Lines 47

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 2
Bugs 1 Features 0
Metric Value
cc 4
c 2
b 1
f 0
dl 0
loc 47
ccs 0
cts 22
cp 0
crap 20
rs 8.6845
1
"""
2
Enarksh
3
4
Copyright 2013-2016 Set Based IT Consultancy
5
6
Licence MIT
7
"""
8
import logging
9
import os
10
11
from enarksh.DataLayer import DataLayer
12
from enarksh.xml_reader.XmlReader import XmlReader
13
14
15
class ScheduleDefinitionMessageEventHandler:
16
    """
17
    An event handler for a ScheduleDefinitionMessage received events.
18
    """
19
20
    # ------------------------------------------------------------------------------------------------------------------
21
    @staticmethod
22
    def handle(_event, message, controller):
23
        """
24
        Handles a JobFinishedMessage received event.
25
26
        :param * _event: Not used.
27
        :param enarksh.controller.message.ScheduleDefinitionMessage.ScheduleDefinitionMessage message: The message.
28
        :param enarksh.controller.Controller.Controller controller: The controller.
29
        """
30
        del _event
31
32
        log = logging.getLogger('enarksh')
33
34
        try:
35
            # Validate XML against XSD.
36
            reader = XmlReader()
37
            schedule = reader.parse_schedule(message.xml, message.filename)
38
39
            # Test schedule is currently running.
40
            name = schedule.name
41
            if name in controller.schedules:
42
                raise Exception("Schedule '%s' is currently running." % name)
43
44
            # Insert the XML definition as BLOB in tot the database.
45
            blb_id = DataLayer.enk_blob_insert_blob(os.path.basename(message.filename), 'text/xml', message.xml)
46
            srv_id = DataLayer.enk_reader_schedule_create_revision(blb_id, name)
47
            if not srv_id:
48
                raise Exception("Schedule '%s' is already loaded." % name)
49
50
            # Store the new schedule definition into the database.
51
            schedule.store(srv_id, 1)
52
            DataLayer.enk_back_schedule_revision_create_run(srv_id)
53
54
            response = {'ret':     0,
55
                        'message': "Schedule '%s' successfully loaded." % name}
56
57
            DataLayer.commit()
58
        except Exception:
59
            log.exception('Error')
60
61
            response = {'ret':     -1,
62
                        'message': 'Internal error'}
63
64
            DataLayer.rollback()
65
66
        # Send the message to the web interface.
67
        controller.message_controller.send_message('lockstep', response, True)
68
69
# ----------------------------------------------------------------------------------------------------------------------
70