# -*- coding: utf-8 -*- # # This file is part of Glances. # # Copyright (C) 2019 Nicolargo # # Glances is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Glances is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . """Glances Web Interface (Bottle based).""" from glances.globals import WINDOWS from glances.processes import glances_processes from glances.stats import GlancesStats from glances.outputs.glances_bottle import GlancesBottle class GlancesWebServer(object): """This class creates and manages the Glances Web server session.""" def __init__(self, config=None, args=None): # Init stats self.stats = GlancesStats(config, args) if not WINDOWS and args.no_kernel_threads: # Ignore kernel threads in process list glances_processes.disable_kernel_threads() # Initial system informations update self.stats.update() # Init the Bottle Web server self.web = GlancesBottle(config=config, args=args) def serve_forever(self): """Main loop for the Web server.""" self.web.start(self.stats) def end(self): """End of the Web server.""" self.web.end() self.stats.end()