vantage6.cli.context.base_server.BaseServerContext#

class BaseServerContext(instance_type, instance_name, system_folders=False, config_file=None, print_log_header=True)#

Bases: AppContext

Base context for a vantage6 server or algorithm store server

Contains functions that the ServerContext and AlgorithmStoreContext have in common.

__init__(instance_type, instance_name, system_folders=False, config_file=None, print_log_header=True)#

Create a new AppContext instance.

Parameters:
  • instance_type (InstanceType) – Type of instance that is initialized

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Use system folders instead of user folders

  • config_file (str) – Path to a specific config file. If left as None, OS specific folder will be used to find the configuration file specified by instance_name.

  • print_log_header (bool) – Print a banner to the log file.

Methods

__init__(instance_type, instance_name[, ...])

Create a new AppContext instance.

available_configurations(instance_type, ...)

Returns a list of configuration managers and a list of paths to configuration files that could not be loaded.

config_exists(instance_type, instance_name)

Check if a config file exists for the given instance type and name.

configure_logger(name, level)

Set the logging level of a logger.

find_config_file(instance_type, ...[, ...])

Find a configuration file.

from_external_config_file(path, server_type, ...)

Create a server context from an external configuration file.

get_data_file(filename)

Return the path to a data file.

get_database_uri(db_env_var)

Obtain the database uri from the environment or the configuration.

initialize(instance_type, instance_name[, ...])

Initialize the AppContext instance.

instance_folders(instance_type, ...)

Return OS and instance specific folders for storing logs, data and config files.

log_file_name(type_)

Return a path to a log file for a given log file type

print_log_header()

Print the log file header.

set_folders(instance_type, instance_name, ...)

Set the folders where the configuration, data and log files are stored.

setup_logging()

Setup a basic logging mechanism.

type_data_folder(instance_type, system_folders)

Return OS specific data folder.

Attributes

LOGGING_ENABLED

config_file

Return the path to the configuration file.

config_file_name

Return the name of the configuration file.

log_file

Return the path to the log file.

INST_CONFIG_MANAGER#

alias of ConfigurationManager

classmethod available_configurations(instance_type, system_folders)#

Returns a list of configuration managers and a list of paths to configuration files that could not be loaded.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • system_folders (bool) – Use system folders rather than user folders

Returns:

A list of configuration managers and a list of paths to configuration files that could not be loaded.

Return type:

list[ConfigurationManager], list[Path]

classmethod config_exists(instance_type, instance_name, system_folders=False)#

Check if a config file exists for the given instance type and name.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Use system folders rather than user folders

Returns:

True if the config file exists, False otherwise

Return type:

bool

property config_file: Path#

Return the path to the configuration file.

Returns:

Path to the configuration file

Return type:

Path

property config_file_name: str#

Return the name of the configuration file.

Returns:

Name of the configuration file

Return type:

str

static configure_logger(name, level)#

Set the logging level of a logger.

Parameters:
  • name (str) – Name of the logger to configure. If None, the root logger is configured.

  • level (str) – Logging level to set. Must be one of ‘debug’, ‘info’, ‘warning’, ‘error’, ‘critical’.

Returns:

The logger object and the logging level that was set.

Return type:

Tuple[Logger, int]

classmethod find_config_file(instance_type, instance_name, system_folders, config_file=None, verbose=True)#

Find a configuration file.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Use system folders rather than user folders

  • config_file (str | None) – Name of the configuration file. If None, the name of the configuration is used.

  • verbose (bool) – Print the directories that are searched for the configuration file.

Returns:

Path to the configuration file

Return type:

str

Raises:

Exception – If the configuration file is not found

classmethod from_external_config_file(path, server_type, config_name_env_var, system_folders=True)#

Create a server context from an external configuration file. External means that the configuration file is not located in the default folders but its location is specified by the user.

Parameters:
  • path (str) – Path of the configuration file

  • server_type (ServerType) – Type of server, either ‘server’ or ‘algorithm-store’

  • config_name_env_var (str) – Name of the environment variable that contains the name of the configuration

  • system_folders (bool, optional) – System wide or user configuration, by default S_FOL

Returns:

Server context object

Return type:

ServerContext

get_data_file(filename)#

Return the path to a data file.

Parameters:

filename (str) – Name of the data file

Returns:

Path to the data file

Return type:

str

get_database_uri(db_env_var)#

Obtain the database uri from the environment or the configuration.

Parameters:

db_env_var (str) – Name of the environment variable that contains the database uri

Returns:

string representation of the database uri

Return type:

str

initialize(instance_type, instance_name, system_folders=False, config_file=None, print_log_header=True)#

Initialize the AppContext instance.

Parameters:
  • instance_type (str) – ‘server’ or ‘node’

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Use system folders rather than user folders

  • config_file (str) – Path to a specific config file. If left as None, OS specific folder will be used to find the configuration file specified by instance_name.

  • print_log_header (bool) – Print a banner to the log file.

Return type:

None

static instance_folders(instance_type, instance_name, system_folders)#

Return OS and instance specific folders for storing logs, data and config files.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Use system folders rather than user folders

Returns:

Dictionary with Paths to the folders of the log, data and config files.

Return type:

dict

property log_file: Path#

Return the path to the log file.

Returns:

Path to the log file

Return type:

Path

log_file_name(type_)#

Return a path to a log file for a given log file type

Parameters:

type (str) – The type of log file to return.

Returns:

The path to the log file.

Return type:

Path

Raises:

AssertionError – If the configuration manager is not initialized.

print_log_header()#

Print the log file header.

Return type:

None

set_folders(instance_type, instance_name, system_folders)#

Set the folders where the configuration, data and log files are stored.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • instance_name (str) – Name of the configuration

  • system_folders (bool) – Whether to use system folders rather than user folders

Return type:

None

setup_logging()#

Setup a basic logging mechanism.

Exits if the log file can’t be created.

Return type:

None

static type_data_folder(instance_type, system_folders)#

Return OS specific data folder.

Parameters:
  • instance_type (InstanceType) – Type of instance that is checked

  • system_folders (bool) – Use system folders rather than user folders

Returns:

Path to the data folder

Return type:

Path