Example #1
0
    def get_currently(self):  # pylint:disable=no-self-use, too-many-locals
        """Display currently page"""
        user = request.environ['beaker.session']['current_user']
        webui = request.app.config['webui']
        datamgr = webui.datamgr

        # Default states
        hosts_states = ['up', 'down', 'unreachable']
        services_states = [
            'ok', 'warning', 'critical', 'unreachable', 'unknown'
        ]

        # Get the stored panels in user's preferences
        panels = datamgr.get_user_preferences(user, 'panels', None)
        if not panels:
            panels = {
                'panel_hosts': {
                    'collapsed': False
                },
                'panel_services': {
                    'collapsed': False
                },
                'panel_ls_history_hosts': {
                    'collapsed': False
                },
                'panel_ls_history_services': {
                    'collapsed': False
                }
            }

        # Get the stored graphs
        graphs = datamgr.get_user_preferences(user, 'currently_graphs', None)
        if not graphs:
            graphs = {
                'pie_graph_hosts': {
                    'legend': True,
                    'title': True,
                    'states': hosts_states
                },
                'pie_graph_services': {
                    'legend': True,
                    'title': True,
                    'states': services_states
                },
                'line_graph_hosts': {
                    'legend': True,
                    'title': True,
                    'states': hosts_states
                },
                'line_graph_services': {
                    'legend': True,
                    'title': True,
                    'states': services_states
                }
            }

        # Live state global and history
        (livesynthesis, ls_history) = datamgr.get_livesynthesis_history()
        hs = livesynthesis['hosts_synthesis']
        ss = livesynthesis['services_synthesis']
        ls_history = sorted(ls_history,
                            key=lambda x: x['_timestamp'],
                            reverse=False)

        collapsed = False
        if 'panel_hosts' in panels:
            collapsed = panels['panel_hosts']['collapsed']
        p_h = Helper.get_html_hosts_count_panel(
            hs, self.webui.get_url('Hosts table'), collapsed=collapsed)

        collapsed = False
        if 'panel_services' in panels:
            collapsed = panels['panel_services']['collapsed']
        p_s = Helper.get_html_services_count_panel(
            ss, self.webui.get_url('Services table'), collapsed=collapsed)

        collapsed = False
        if 'panel_ls_history_hosts' in panels:
            collapsed = panels['panel_ls_history_hosts']['collapsed']
        lsh = Helper.get_html_hosts_ls_history(hs,
                                               ls_history,
                                               collapsed=collapsed)

        collapsed = False
        if 'panel_ls_history_services' in panels:
            collapsed = panels['panel_ls_history_services']['collapsed']
        ssh = Helper.get_html_services_ls_history(ss,
                                                  ls_history,
                                                  collapsed=collapsed)

        return {
            'panels': panels,
            'panel_hosts': p_h,
            'panel_ls_history_hosts': lsh,
            'panel_services': p_s,
            'panel_ls_history_services': ssh,
            'title': request.query.get('title', _('Keep an eye'))
        }