This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gobroker. commit eefaed4187faa6af33c15e4622a75039845a4ab9 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Thu Sep 13 08:22:52 2018 +0200 x2gobroker/defaults.py: Provide API documentation for global defaults. --- docs/Makefile | 3 ++ x2gobroker/defaults.py | 94 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 64 insertions(+), 33 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 9e23aa9..f97332f 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,6 +1,9 @@ # Makefile for Sphinx documentation # +# required in the Python X2Go Broker code... e.g. in x2gobroker/defaults.py +SPHINX_API_DOCUMENTATION_BUILD = yes + # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build diff --git a/x2gobroker/defaults.py b/x2gobroker/defaults.py index 0196496..1615354 100644 --- a/x2gobroker/defaults.py +++ b/x2gobroker/defaults.py @@ -17,6 +17,18 @@ # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +""" +X2Go Session Brokers uses many hard-coded defaults, that can be overridden in various ways: + + * environment variables of the same name as the variable name in Python + * for **SysV init system**: environment variables set in a default configuration + file under ``/etc/default``; normally the naming scheme is + ``/etc/default/<executable-name>`` + * for **systemd init system**: in the file ``/etc/x2go/broker/defaults.conf``: + this file should be installed on your system, the file needs to be provided + in INI file format +""" + # modules import os import uuid @@ -29,10 +41,20 @@ from x2gobroker.loggers import iniconfig_loaded if iniconfig_loaded: from x2gobroker.loggers import iniconfig, iniconfig_section -X2GOBROKER_USER = pwd.getpwuid(os.geteuid())[0] -X2GOBROKER_GROUP = grp.getgrgid(pwd.getpwuid(os.geteuid())[3])[0] +X2GOBROKER_USER = '<some-user>' +"""The (system) user, X2Go Session Broker runs under. Whether this is a system user or e.g. your own user account depends on what component of the broker is used.""" +if 'SPHINX_API_DOCUMENTATION_BUILD' in os.environ.keys(): + X2GOBROKER_USER = pwd.getpwuid(os.geteuid())[0] + +X2GOBROKER_GROUP = '<some-group>' +"""The (system) group, X2Go Session Broker runs under. Whether this is a system user or e.g. the x2gobroker-users group is dependent on what component of the broker is used.""" +if 'SPHINX_API_DOCUMENTATION_BUILD' in os.environ.keys(): + X2GOBROKER_GROUP = grp.getgrgid(pwd.getpwuid(os.geteuid())[3])[0] + os.environ['HOME'] = pwd.getpwuid(os.geteuid())[5] +X2GOBROKER_AGENT_USER="x2gobroker" +"""The system user to use when launching X2Go Broker Agent on remote X2Go Servers.""" if 'X2GOBROKER_DAEMON_GROUP' in os.environ: X2GOBROKER_DAEMON_GROUP=os.environ['X2GOBROKER_DAEMON_GROUP'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_DAEMON_GROUP'): @@ -47,13 +69,13 @@ elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_AG X2GOBROKER_AGENT_USER=iniconfig.get(iniconfig_section, 'X2GOBROKER_AGENT_USER') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_AGENT_USER'): X2GOBROKER_AGENT_USER=iniconfig.get('common', 'X2GOBROKER_AGENT_USER') -else: - X2GOBROKER_AGENT_USER="x2gobroker" ### ### dynamic default values, influencable through os.environ... ### +X2GOBROKER_DEBUG_INTERACTIVELY = False +"""When set to ``True``, the X2Go Broker component this parameter is set for, runs in foreground and debugging mode.""" if 'X2GOBROKER_DEBUG' in os.environ: X2GOBROKER_DEBUG = ( os.environ['X2GOBROKER_DEBUG'].lower() in ('1', 'on', 'true', 'yes', ) ) elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_DEBUG'): @@ -68,8 +90,7 @@ elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_DE X2GOBROKER_DEBUG_INTERACTIVELY=iniconfig.get(iniconfig_section, 'X2GOBROKER_DEBUG_INTERACTIVELY') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_DEBUG_INTERACTIVELY'): X2GOBROKER_DEBUG_INTERACTIVELY=iniconfig.get('common', 'X2GOBROKER_DEBUG_INTERACTIVELY') -else: - X2GOBROKER_DEBUG_INTERACTIVELY = False + if 'X2GOBROKER_TESTSUITE' in os.environ: X2GOBROKER_TESTSUITE = ( os.environ['X2GOBROKER_TESTSUITE'].lower() in ('1', 'on', 'true', 'yes', ) ) elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_TESTSUITE'): @@ -89,94 +110,95 @@ if X2GOBROKER_TESTSUITE: logger_access.setLevel(logging.CRITICAL) logger_error.setLevel(logging.CRITICAL) +X2GOBROKER_CONFIG = "/etc/x2go/x2gobroker.conf" +"""Location of X2Go Broker\'s global configuration file.""" if 'X2GOBROKER_CONFIG' in os.environ: X2GOBROKER_CONFIG = os.environ['X2GOBROKER_CONFIG'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_CONFIG'): X2GOBROKER_CONFIG=iniconfig.get(iniconfig_section, 'X2GOBROKER_CONFIG') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_CONFIG'): X2GOBROKER_CONFIG=iniconfig.get('common', 'X2GOBROKER_CONFIG') -else: - X2GOBROKER_CONFIG = "/etc/x2go/x2gobroker.conf" +X2GOBROKER_SESSIONPROFILES = "/etc/x2go/broker/x2gobroker-sessionprofiles.conf" +"""Location of the INI file based broker backend \'s session profiles configuration file.""" if 'X2GOBROKER_SESSIONPROFILES' in os.environ: X2GOBROKER_SESSIONPROFILES = os.environ['X2GOBROKER_SESSIONPROFILES'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_SESSIONPROFILES'): X2GOBROKER_SESSIONPROFILES=iniconfig.get(iniconfig_section, 'X2GOBROKER_SESSIONPROFILES') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_SESSIONPROFILES'): X2GOBROKER_SESSIONPROFILES=iniconfig.get('common', 'X2GOBROKER_SESSIONPROFILES') -else: - X2GOBROKER_SESSIONPROFILES = "/etc/x2go/broker/x2gobroker-sessionprofiles.conf" +X2GOBROKER_AGENT_CMD = "/usr/lib/x2go/x2gobroker-agent" +"""Path to the X2Go Broker Agent executable on remote X2Go Servers.""" if 'X2GOBROKER_AGENT_CMD' in os.environ: X2GOBROKER_AGENT_CMD = os.environ['X2GOBROKER_AGENT_CMD'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_AGENT_CMD'): X2GOBROKER_AGENT_CMD=iniconfig.get(iniconfig_section, 'X2GOBROKER_AGENT_CMD') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_AGENT_CMD'): X2GOBROKER_AGENT_CMD=iniconfig.get('common', 'X2GOBROKER_AGENT_CMD') -else: - X2GOBROKER_AGENT_CMD = "/usr/lib/x2go/x2gobroker-agent" +if os.path.isdir('/run/x2gobroker'): + RUNDIR = '/run' +else: + RUNDIR = '/var/run/x2gobroker' +X2GOBROKER_AUTHSERVICE_SOCKET="{run}/x2gobroker/x2gobroker-authservice.socket".format(run=RUNDIR) +"""Location of the X2Go Broker Auth Service's authentication socket file.""" if 'X2GOBROKER_AUTHSERVICE_SOCKET' in os.environ: X2GOBROKER_AUTHSERVICE_SOCKET=os.environ['X2GOBROKER_AUTHSERVICE_SOCKET'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_AUTHSERVICE_SOCKET'): X2GOBROKER_AUTHSERVICE_SOCKET=iniconfig.get(iniconfig_section, 'X2GOBROKER_AUTHSERVICE_SOCKET') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_AUTHSERVICE_SOCKET'): X2GOBROKER_AUTHSERVICE_SOCKET=iniconfig.get('common', 'X2GOBROKER_AUTHSERVICE_SOCKET') -else: - if os.path.isdir('/run/x2gobroker'): - RUNDIR = '/run' - else: - RUNDIR = '/var/run/x2gobroker' - X2GOBROKER_AUTHSERVICE_SOCKET="{run}/x2gobroker/x2gobroker-authservice.socket".format(run=RUNDIR) +if os.path.isdir('/run/x2gobroker'): + RUNDIR = '/run' +else: + RUNDIR = '/var/run/x2gobroker' +X2GOBROKER_LOADCHECKER_SOCKET="{run}/x2gobroker/x2gobroker-loadchecker.socket".format(run=RUNDIR) +"""Location of the X2Go Broker Load Checker's communication socket file.""" if 'X2GOBROKER_LOADCHECKER_SOCKET' in os.environ: X2GOBROKER_LOADCHECKER_SOCKET=os.environ['X2GOBROKER_LOADCHECKER_SOCKET'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_LOADCHECKER_SOCKET'): X2GOBROKER_LOADCHECKER_SOCKET=iniconfig.get(iniconfig_section, 'X2GOBROKER_LOADCHECKER_SOCKET') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_LOADCHECKER_SOCKET'): X2GOBROKER_LOADCHECKER_SOCKET=iniconfig.get('common', 'X2GOBROKER_LOADCHECKER_SOCKET') -else: - if os.path.isdir('/run/x2gobroker'): - RUNDIR = '/run' - else: - RUNDIR = '/var/run/x2gobroker' - X2GOBROKER_LOADCHECKER_SOCKET="{run}/x2gobroker/x2gobroker-loadchecker.socket".format(run=RUNDIR) +X2GOBROKER_DEFAULT_BACKEND = "inifile" +"""The broker backend to use by default.""" if 'X2GOBROKER_DEFAULT_BACKEND' in os.environ: X2GOBROKER_DEFAULT_BACKEND = os.environ['X2GOBROKER_DEFAULT_BACKEND'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_DEFAULT_BACKEND'): X2GOBROKER_DEFAULT_BACKEND=iniconfig.get(iniconfig_section, 'X2GOBROKER_DEFAULT_BACKEND') elif iniconfig_loaded and iniconfig.has_option('common', 'X2GOBROKER_DEFAULT_BACKEND'): X2GOBROKER_DEFAULT_BACKEND=iniconfig.get('common', 'X2GOBROKER_DEFAULT_BACKEND') -else: - X2GOBROKER_DEFAULT_BACKEND = "inifile" + +DAEMON_BIND_ADDRESS = "" +"""Bind address for the X2Go Session Broker standalone daemon.""" if 'DAEMON_BIND_ADDRESS' in os.environ: DAEMON_BIND_ADDRESS = os.environ['DAEMON_BIND_ADDRESS'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'DAEMON_BIND_ADDRESS'): DAEMON_BIND_ADDRESS = iniconfig.get(iniconfig_section, 'DAEMON_BIND_ADDRESS') elif iniconfig_loaded and iniconfig.has_option('daemon', 'DAEMON_BIND_ADDRESS'): DAEMON_BIND_ADDRESS = iniconfig.get('daemon', 'DAEMON_BIND_ADDRESS') -else: - DAEMON_BIND_ADDRESS = "" +X2GOBROKER_SSL_CERTFILE = "" +"""Path to the SSL/TLS public certificate file.""" if 'X2GOBROKER_SSL_CERTFILE' in os.environ: X2GOBROKER_SSL_CERTFILE = os.environ['X2GOBROKER_SSL_CERTFILE'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_SSL_CERTFILE'): X2GOBROKER_SSL_CERTFILE = iniconfig.get(iniconfig_section, 'X2GOBROKER_SSL_CERTFILE') elif iniconfig_loaded and iniconfig.has_option('daemon', 'X2GOBROKER_SSL_CERTFILE'): X2GOBROKER_SSL_CERTFILE = iniconfig.get('daemon', 'X2GOBROKER_SSL_CERTFILE') -else: - X2GOBROKER_SSL_CERTFILE = "" +X2GOBROKER_SSL_KEYFILE = "" +"""Path to the SSL/TLS secret key file.""" if 'X2GOBROKER_SSL_KEYFILE' in os.environ: X2GOBROKER_SSL_KEYFILE = os.environ['X2GOBROKER_SSL_KEYFILE'] elif iniconfig_loaded and iniconfig.has_option(iniconfig_section, 'X2GOBROKER_SSL_KEYFILE'): X2GOBROKER_SSL_KEYFILE = iniconfig.get(iniconfig_section, 'X2GOBROKER_SSL_KEYFILE') elif iniconfig_loaded and iniconfig.has_option('daemon', 'X2GOBROKER_SSL_KEYFILE'): X2GOBROKER_SSL_KEYFILE = iniconfig.get('daemon', 'X2GOBROKER_SSL_KEYFILE') -else: - X2GOBROKER_SSL_KEYFILE = "" ### ### static / hard-coded defaults @@ -189,6 +211,7 @@ else: # the home directory of the user that the daemon/cgi runs as X2GOBROKER_HOME = os.path.normpath(os.path.expanduser('~{broker_uid}'.format(broker_uid=X2GOBROKER_DAEMON_USER))) +"""Home directory of the user that an X2Go Broker component runs under.""" # defaults for X2Go Sessino Broker configuration file X2GOBROKER_CONFIG_DEFAULTS = { @@ -258,6 +281,8 @@ X2GOBROKER_CONFIG_DEFAULTS = { 'load-checker': True, }, } +"""Defaults of the global configuration file, see ``X2GOBROKER_CONFIG``.""" + X2GO_DESKTOP_SESSIONS= [ 'KDE', @@ -273,6 +298,7 @@ X2GO_DESKTOP_SESSIONS= [ 'OPENBOX', 'XDMCP', ] +"""Desktop environment session types supported by X2Go.""" # defaults for X2Go Sessino Broker session profiles file X2GOBROKER_SESSIONPROFILE_DEFAULTS = { @@ -323,5 +349,7 @@ X2GOBROKER_SESSIONPROFILE_DEFAULTS = { 'acl-any-order': 'deny-allow', }, } +"""Default setting of a broker'ish session profile.""" -X2GOBROKER_LATEST_UCCS_API_VERSION = 5 \ No newline at end of file +X2GOBROKER_LATEST_UCCS_API_VERSION = 5 +"""Latest known API of the UCCS protocol that we support.""" -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git