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   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 53
ccs 0
cts 23
cp 0
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
B handle() 0 47 4
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