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.
Test Setup Failed
Push — master ( aee9c5...6ca25e )
by P.R.
03:23
created

Logger.__set_unprivileged_user()   A

Complexity

Conditions 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
c 0
b 0
f 0
dl 0
loc 9
ccs 0
cts 2
cp 0
crap 2
rs 9.6666
1
"""
2
Enarksh
3
4
Copyright 2013-2016 Set Based IT Consultancy
5
6
Licence MIT
7
"""
8
import os
9
import pwd
10
import zmq
11
12
import enarksh
13
from enarksh.DataLayer import DataLayer
14
from enarksh.event.EventController import EventController
15
from enarksh.logger.event_handler.ExitMessageEventHandler import ExitMessageEventHandler
16
from enarksh.logger.event_handler.LogFileMessageEventHandler import LogFileMessageEventHandler
17
from enarksh.logger.message.LogFileMessage import LogFileMessage
18
from enarksh.message.ExitMessage import ExitMessage
19
from enarksh.message.MessageController import MessageController
20
21
22
class Logger:
23
    """
24
    The logger.
25
    """
26
27
    # ------------------------------------------------------------------------------------------------------------------
28
    def __init__(self):
29
        """
30
        Object constructor.
31
        """
32
        self._event_controller = EventController()
33
        """
34
        The event controller.
35
36
        :type: enarksh.event.EventController.EventController
37
        """
38
39
        self._message_controller = MessageController()
40
        """
41
        The message controller.
42
43
        :type: enarksh.message.MessageController.MessageController
44
        """
45
46
    # ------------------------------------------------------------------------------------------------------------------
47
    def main(self):
48
        """
49
        The main of the logger.
50
        """
51
        # Startup logger.
52
        self._startup()
53
54
        # Register our socket for asynchronous incoming messages.
55
        self._message_controller.register_end_point('pull', zmq.PULL, enarksh.LOGGER_PULL_END_POINT)
56
57
        # Register supported message types
58
        self._message_controller.register_message_type(ExitMessage.MESSAGE_TYPE)
59
        self._message_controller.register_message_type(LogFileMessage.MESSAGE_TYPE)
60
61
        # Register message received event handlers.
62
        self._message_controller.register_listener(ExitMessage.MESSAGE_TYPE, ExitMessageEventHandler.handle)
63
        self._message_controller.register_listener(LogFileMessage.MESSAGE_TYPE, LogFileMessageEventHandler.handle)
64
65
        # Register other event handlers.
66
        self._event_controller.event_queue_empty.register_listener(self._message_controller.receive_message)
67
68
        # Run the event loop.
69
        self._event_controller.loop()
70
71
        # Shutdown logger.
72
        self._shutdown()
73
74
    # ------------------------------------------------------------------------------------------------------------------
75
    @staticmethod
76
    def __set_unprivileged_user():
77
        """
78
        Set the real and effective user and group to an unprivileged user.
79
        """
80
        _, _, uid, gid, _, _, _ = pwd.getpwnam('enarksh')
81
82
        os.setresgid(gid, gid, 0)
83
        os.setresuid(uid, uid, 0)
84
85
    # ------------------------------------------------------------------------------------------------------------------
86
    @staticmethod
87
    def _shutdown():
88
        """
89
        Performs the necessary actions for stopping the logger.
90
        """
91
        # Log stop of the logger.
92
        print('Stop logger')
93
94
    # ------------------------------------------------------------------------------------------------------------------
95
    def _startup(self):
96
        """
97
        Performs the necessary actions for starting up the logger.
98
        """
99
        # Log the start of the logger.
100
        print('Start logger')
101
102
        # Set the effective user and group to an unprivileged user and group.
103
        self.__set_unprivileged_user()
104
105
        # Set database configuration options.
106
        DataLayer.config['host'] = enarksh.MYSQL_HOSTNAME
107
        DataLayer.config['user'] = enarksh.MYSQL_USERNAME
108
        DataLayer.config['password'] = enarksh.MYSQL_PASSWORD
109
        DataLayer.config['database'] = enarksh.MYSQL_SCHEMA
110
        DataLayer.config['port'] = enarksh.MYSQL_PORT
111
112
# ----------------------------------------------------------------------------------------------------------------------
113