mirror of
https://github.com/nicolargo/glances.git
synced 2024-12-23 09:11:49 +03:00
Refactor arguments
This commit is contained in:
parent
ba1757a2b7
commit
697110ea46
@ -80,9 +80,7 @@ def main():
|
||||
|
||||
# Init the standalone mode
|
||||
standalone = GlancesStandalone(config=core.get_config(),
|
||||
args=core.get_args(),
|
||||
refresh_time=core.refresh_time,
|
||||
use_bold=core.use_bold)
|
||||
args=core.get_args())
|
||||
|
||||
# Start the standalone (CLI) loop
|
||||
standalone.serve_forever()
|
||||
@ -93,9 +91,8 @@ def main():
|
||||
from glances.core.glances_client import GlancesClient
|
||||
|
||||
# Init the client
|
||||
client = GlancesClient(args=core.get_args(),
|
||||
server_address=core.server_ip, server_port=int(core.server_port),
|
||||
username=core.username, password=core.password, config=core.get_config())
|
||||
client = GlancesClient(config=core.get_config(),
|
||||
args=core.get_args())
|
||||
|
||||
# Test if client and server are in the same major version
|
||||
if (not client.login()):
|
||||
@ -106,8 +103,6 @@ def main():
|
||||
client.serve_forever()
|
||||
|
||||
# Shutdown the client
|
||||
# !!! How to close the server with CTRL-C
|
||||
# !!! Call core.end() with parameters ?
|
||||
client.close()
|
||||
|
||||
elif (core.is_server()):
|
||||
@ -116,16 +111,21 @@ def main():
|
||||
from glances.core.glances_server import GlancesServer
|
||||
|
||||
# Init the server
|
||||
server = GlancesServer(bind_address=core.bind_ip,
|
||||
bind_port=int(core.server_port),
|
||||
cached_time=core.cached_time,
|
||||
config=core.get_config())
|
||||
# print(_("DEBUG: Glances server is running on %s:%s with config file %s") % (core.bind_ip, core.server_port, core.config.get_config_path()))
|
||||
print("{} {}:{}".format(_("Glances server is running on"), core.bind_ip, core.server_port))
|
||||
# server = GlancesServer(bind_address=core.bind_ip,
|
||||
# bind_port=int(core.server_port),
|
||||
# cached_time=core.cached_time,
|
||||
# config=core.get_config())
|
||||
|
||||
args = core.get_args()
|
||||
|
||||
server = GlancesServer(cached_time=core.cached_time,
|
||||
config=core.get_config(),
|
||||
args=args)
|
||||
print("{} {}:{}".format(_("Glances server is running on"), args.bind, args.port))
|
||||
|
||||
# Set the server login/password (if -P/--password tag)
|
||||
if (core.password != ""):
|
||||
server.add_user(core.username, core.password)
|
||||
if (args.password != ""):
|
||||
server.add_user(args.username, args.password)
|
||||
|
||||
# Start the server loop
|
||||
server.serve_forever()
|
||||
|
@ -45,15 +45,17 @@ class GlancesClient():
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
args=None,
|
||||
server_address="localhost", server_port=61209,
|
||||
username="glances", password="",
|
||||
config=None):
|
||||
config=None,
|
||||
args=None):
|
||||
# Store the arg/config
|
||||
self.args = args
|
||||
self.config = config
|
||||
|
||||
# Build the URI
|
||||
if (password != ""):
|
||||
uri = 'http://%s:%s@%s:%d' % (username, password, server_address, server_port)
|
||||
if (args.password != ""):
|
||||
uri = 'http://%s:%s@%s:%d' % (args.username, args.password, args.bind, args.port)
|
||||
else:
|
||||
uri = 'http://%s:%d' % (server_address, server_port)
|
||||
uri = 'http://%s:%d' % (args.bind, args.port)
|
||||
|
||||
# Try to connect to the URI
|
||||
try:
|
||||
@ -62,10 +64,6 @@ class GlancesClient():
|
||||
print("{} {} ({})".format(_("Error: creating client socket"), uri, e))
|
||||
sys.exit(2)
|
||||
|
||||
# Store the arg/config
|
||||
self.args = args
|
||||
self.config = config
|
||||
|
||||
def login(self):
|
||||
"""
|
||||
Logon to the server
|
||||
|
@ -67,6 +67,8 @@ class GlancesMain(object):
|
||||
server_ip = None
|
||||
# Server TCP port number (default is 61209)
|
||||
server_port = 61209
|
||||
# Web Server TCP port number (default is 61208)
|
||||
web_server_port = 61208
|
||||
# Default username/password for client/server mode
|
||||
username = "glances"
|
||||
password = ""
|
||||
@ -206,6 +208,8 @@ class GlancesMain(object):
|
||||
args.time = 5
|
||||
else:
|
||||
args.time = 3
|
||||
# !!! Usefull ? Default refresh time
|
||||
if (args.time is not None): self.refresh_time = args.time
|
||||
|
||||
# By default Help is hidden
|
||||
args.help_tag = False
|
||||
@ -214,38 +218,46 @@ class GlancesMain(object):
|
||||
args.network_sum = False
|
||||
args.network_cumul = False
|
||||
|
||||
# Bind address/port
|
||||
if (args.bind is None):
|
||||
args.bind = self.bind_ip
|
||||
if (args.port is None):
|
||||
if (args.webserver):
|
||||
args.port = self.web_server_port
|
||||
else:
|
||||
args.port = self.server_port
|
||||
else:
|
||||
args.port = int(args.port)
|
||||
|
||||
# Server or client login/password
|
||||
args.username = self.username
|
||||
if (args.password_arg is not None):
|
||||
# Password is passed as an argument
|
||||
args.password = args.password_arg
|
||||
elif (args.password):
|
||||
# Interactive password
|
||||
if (args.server):
|
||||
args.password = self.__get_password(
|
||||
description=_("Define the password for the Glances server"),
|
||||
confirm=True)
|
||||
elif (args.client):
|
||||
args.password = self.__get_password(
|
||||
description=_("Enter the Glances server password"),
|
||||
confirm=False)
|
||||
else:
|
||||
# Default is no password
|
||||
args.password = self.password
|
||||
|
||||
# !!! Change global variables regarding to user args
|
||||
# !!! To be refactor to use directly the args list in the code
|
||||
if (args.time is not None): self.refresh_time = args.time
|
||||
# self.network_bytepersec_tag = args.byte
|
||||
# self.diskio_tag = args.disable_diskio
|
||||
# self.fs_tag = args.disable_mount
|
||||
# self.hddtemp_flag = args.disable_hddtemp
|
||||
# self.network_tag = args.disable_network
|
||||
# self.process_tag = args.disable_process
|
||||
# self.sensors_tag = args.disable_sensors and is_Linux # and sensors_lib_tag
|
||||
self.use_bold = args.no_bold
|
||||
self.percpu_tag = args.percpu
|
||||
if (args.config is not None):
|
||||
self.conf_file_tag = True
|
||||
self.conf_file = args.config
|
||||
if (args.bind is not None): self.bind_ip = args.bind
|
||||
if (args.client is not None):
|
||||
self.client_tag = True
|
||||
self.server_ip = args.client
|
||||
self.webserver_tag = args.webserver
|
||||
self.server_tag = args.server
|
||||
if (args.port is not None): self.server_port = args.port
|
||||
if (args.password_arg is not None): self.password = args.password_arg
|
||||
if (args.password):
|
||||
if (self.server_tag):
|
||||
self.password = self.__get_password(
|
||||
description=_("Define the password for the Glances server"),
|
||||
confirm=True)
|
||||
elif (self.client_tag):
|
||||
self.password = self.__get_password(
|
||||
description=_("Enter the Glances server password"),
|
||||
confirm=False)
|
||||
if (args.output is not None):
|
||||
setattr(self, args.output+"_tag", True)
|
||||
if (args.file is not None):
|
||||
|
@ -22,6 +22,8 @@
|
||||
import sys
|
||||
import socket
|
||||
import json
|
||||
from base64 import b64decode
|
||||
from hashlib import md5
|
||||
|
||||
# Import Glances libs
|
||||
from glances.core.glances_globals import __version__
|
||||
@ -201,14 +203,13 @@ class GlancesServer():
|
||||
This class creates and manages the TCP server
|
||||
"""
|
||||
|
||||
def __init__(self, bind_address="0.0.0.0",
|
||||
bind_port=61209,
|
||||
requestHandler=GlancesXMLRPCHandler,
|
||||
def __init__(self, requestHandler=GlancesXMLRPCHandler,
|
||||
cached_time=1,
|
||||
config=None):
|
||||
config=None,
|
||||
args=None):
|
||||
# Init the XML RPC server
|
||||
try:
|
||||
self.server = GlancesXMLRPCServer(bind_address, bind_port, requestHandler)
|
||||
self.server = GlancesXMLRPCServer(args.bind, args.port, requestHandler)
|
||||
except Exception as err:
|
||||
print(_("Error: Cannot start Glances server (%s)") % err)
|
||||
sys.exit(2)
|
||||
|
@ -28,7 +28,7 @@ class GlancesStandalone():
|
||||
This class creates and manages the Glances standalone session
|
||||
"""
|
||||
|
||||
def __init__(self, config=None, args=None, refresh_time=3, use_bold=True):
|
||||
def __init__(self, config=None, args=None):
|
||||
|
||||
# Init stats
|
||||
self.stats = GlancesStats(config)
|
||||
|
@ -47,8 +47,6 @@ class glancesBottle:
|
||||
self.stats = None
|
||||
|
||||
# Init Bottle
|
||||
self._host = 'localhost'
|
||||
self._port = 8080
|
||||
self._app = Bottle()
|
||||
self._route()
|
||||
|
||||
@ -90,7 +88,7 @@ class glancesBottle:
|
||||
self.stats = stats
|
||||
|
||||
# Start the Bottle
|
||||
self._app.run(host=self._host, port=self._port)
|
||||
self._app.run(host=self.args.bind, port=self.args.port)
|
||||
|
||||
def end(self):
|
||||
# End the Bottle
|
||||
|
@ -103,7 +103,10 @@ class Plugin(GlancesPlugin):
|
||||
msg = "{0}".format(alert[3])
|
||||
ret.append(self.curse_add_line(msg, decoration=alert[2]))
|
||||
# Min / Mean / Max
|
||||
msg = " ({0:.1f}/{1:.1f}/{2:.1f})".format(alert[6], alert[5], alert[4])
|
||||
if (alert[6] == alert[4]):
|
||||
msg = " ({0:.1f})".format(alert[5])
|
||||
else:
|
||||
msg = " (Min:{0:.1f} Mean:{1:.1f} Max:{2:.1f})".format(alert[6], alert[5], alert[4])
|
||||
ret.append(self.curse_add_line(msg))
|
||||
|
||||
# else:
|
||||
|
@ -73,12 +73,12 @@ class Plugin(GlancesPlugin):
|
||||
ret.append(self.curse_new_line())
|
||||
msg = msg_col.format(_("a"), _("Sort processes automatically"))
|
||||
ret.append(self.curse_add_line(msg))
|
||||
msg = msg_col2.format(_("l"), _("Show/hide logs (alerts)"))
|
||||
msg = msg_col2.format(_("b"), _("Bytes or bits for network I/O"))
|
||||
ret.append(self.curse_add_line(msg))
|
||||
ret.append(self.curse_new_line())
|
||||
msg = msg_col.format(_("c"), _("Sort processes by CPU%"))
|
||||
ret.append(self.curse_add_line(msg))
|
||||
msg = msg_col2.format(_("b"), _("Bytes or bits for network I/O"))
|
||||
msg = msg_col2.format(_("l"), _("Show/hide logs (alerts)"))
|
||||
ret.append(self.curse_add_line(msg))
|
||||
ret.append(self.curse_new_line())
|
||||
msg = msg_col.format(_("m"), _("Sort processes by MEM%"))
|
||||
|
@ -182,7 +182,10 @@ class Plugin(GlancesPlugin):
|
||||
ret.append(self.curse_add_line(msg, optional=True))
|
||||
ret.append(self.curse_add_line(msg, optional=True))
|
||||
# Command line
|
||||
msg = " {0}".format(p['cmdline'])
|
||||
try:
|
||||
msg = " {0}".format(p['cmdline'])
|
||||
except UnicodeEncodeError:
|
||||
msg = ""
|
||||
ret.append(self.curse_add_line(msg, optional=True, splittable=True))
|
||||
|
||||
# Return the message with decoration
|
||||
|
Loading…
Reference in New Issue
Block a user