Ejemplo n.º 1
0
class NotifyPriority(object):
    def __init__(self):

        self._logger = LoggerEngine()

    def get_app(self):

        from ..core import Rackio

        return Rackio()

    def __call__(self, request, response, resource, params):

        app = self.get_app()

        system_name = params['system_name']
        username = request.media.get('username')
        priority = request.media.get('priority')
        machine = app.get_machine(system_name)

        event_values = {
            'user': '******'.format(username),
            'message': 'User operation',
            'description':
            '{} machine priority was updated'.format(machine.name),
            'classification': '{}'.format(machine.classification),
            'priority': '{}'.format(priority),
            'criticity': '{}'.format(machine.criticity),
            'date_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        }
        event = Event(**event_values)
        self._logger.write_event(event)
Ejemplo n.º 2
0
class NotifyTransition(object):
    def __init__(self):

        self._logger = LoggerEngine()

    def get_app(self):

        from ..core import Rackio

        return Rackio()

    def __call__(self, request, response, resource, params):

        app = self.get_app()

        system_name = params['system_name']
        username = request.media.get('username')
        machine = app.get_machine(system_name)
        current_state = machine.current_state.name.lower()
        action = request.media.get('action')
        transition = getattr(machine, '{}_to_{}'.format(current_state, action))
        target_transition = transition.target.destinations[0].identifier

        event_values = {
            'user':
            '******'.format(username),
            'message':
            'Engine transition',
            'description':
            '{} machine was switched to {}'.format(machine.name,
                                                   target_transition),
            'classification':
            '{}'.format(machine.classification),
            'priority':
            '{}'.format(machine.priority),
            'criticity':
            '{}'.format(machine.criticity),
            'date_time':
            datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        }
        event = Event(**event_values)
        self._logger.write_event(event)
Ejemplo n.º 3
0
class NotifyRestartSystems(object):
    def __init__(self):

        self._logger = LoggerEngine()

    def get_app(self):

        from ..core import Rackio

        return Rackio()

    def __call__(self, request, response, resource, params):

        app = self.get_app()

        username = request.media.get('username')
        machines = app.get_machines()

        for machine, _, _ in machines:

            if hasattr(machine, 'restart'):

                event_values = {
                    'user':
                    '******'.format(username),
                    'message':
                    'All system restarted',
                    'description':
                    '{} machine was switched to {}'.format(
                        machine.name, "restarting"),
                    'classification':
                    '{}'.format(machine.classification),
                    'priority':
                    '{}'.format(machine.priority),
                    'criticity':
                    '{}'.format(machine.criticity),
                    'date_time':
                    datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                }
                event = Event(**event_values)
                self._logger.write_event(event)
Ejemplo n.º 4
0
class NotifyAlarmOperation(object):
    def __init__(self):

        self._logger = LoggerEngine()

    def get_app(self):

        from ..core import Rackio

        return Rackio()

    def __call__(self, request, response, resource, params):

        username = request.media.get('username')
        action = request.media.get('action')

        if 'alarm_name' in params:

            alarm_name = params['alarm_name']
            event_values = dict(
                user='******'.format(username),
                message='Alarm Operation',
                description='Operation {} in {}'.format(action, alarm_name),
                classification='{}'.format('user'),
                priority='{}'.format(3),
                date_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

        else:

            event_values = dict(
                user='******'.format(username),
                message='Event',
                description='Operation: {}'.format(action),
                classification='{}'.format('user'),
                priority='{}'.format(3),
                date_time=datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

        event = Event(**event_values)
        self._logger.write_event(event)
Ejemplo n.º 5
0
    def __init__(self):

        self._logger = LoggerEngine()