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 — master ( d4663b...83e50d )
by P.R.
02:57
created

ScheduleDefinitionMessageEventHandler   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 4

1 Method

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