Base

class libdnf5.base.Base(*args)

Instances of libdnf5::Base are the central point of functionality supplied by libdnf5. An application will typically create a single instance of this class which it will keep for the run-time needed to accomplish its packaging tasks. Base instances are stateful objects owning various data.

are_repos_configured()

Returns true when notify_repos_configured() was already called (by user or automatically)

enable_disable_plugins(plugin_names, enable)

Adds a request to enable/disable plugins that match the names (glob patterns) in the list. Can be called multiple times. Requests (plugin_names and enable state) are queued. The enable state of a plugin is set according to the last matching request. Must be called before the Base::setup. :type plugin_names: std::vector< std::string,std::allocator< std::string > > :param plugin_names: Plugin names (glob patterns) to enable/disable :type enable: boolean :param enable: Request: true - enable plugins, false - disable plugins :raises: libdnf5::UserAssertionError When called after Base::setup

get_config()
Return type:

ConfigMain

Returns:

a reference to configuration

get_download_callbacks()
static get_locked_base()

Returns a pointer to a locked “Base” instance or “nullptr” if no instance is locked.

get_logger()
get_module_sack()

Throws libdnf5::AssertionError when used with libdnf5 compiled without modules enabled.

get_plugins_info()
Return type:

std::vector< libdnf5::plugin::PluginInfo,std::allocator< libdnf5::plugin::PluginInfo > >

Returns:

a list of information about plugins found during Base::setup

Raises:

libdnf5::UserAssertionError When called before Base::setup

get_repo_sack()
get_rpm_package_sack()
get_transaction_history()

Warning: This method is experimental/unstable and should not be relied on. It may be removed without warning

get_vars()

Gets base variables. They can be used in configuration files. Syntax in the config - ${var_name} or $var_name.

get_weak_ptr()
is_initialized()

Returns true when setup() (mandatory method in many workflows) was already called

load_config()

Loads main configuration. The file defined in the current configuration and files in the drop-in directories are used.

lock()

Sets the pointer to the locked instance “Base” to “this” instance. Blocks if the pointer is already set. Pointer to a locked “Base” instance can be obtained using “get_locked_base()”.

notify_repos_configured()

Notifies the libdnf5 library that the repositories are configured. It can be called before load_repos. The libdnf5 library can then call plugins that can make final adjustments to the repositories configuration. In the case that it has not been called, it is called automatically at the beginning of the load_repos method. Calling the method for the second time result in throwing an exception.

set_download_callbacks(download_callbacks)
setup()

Loads libdnf plugins, vars from environment, varsdirs and installroot (releasever, arch) and resolves configuration of protected_packages (glob:). To prevent differences between configuration and internal Base settings, following configurations will be locked: installroot, varsdir. The method is supposed to be called after configuration and vars are updated, application plugins applied their pre configuration modification in configuration, but before repositories are loaded or any Package or Advisory query created. The method is recommended to be called before loading repositories, because not all variables for substitutions might be available. Caution - modification of vars after this call might be problematic, because architecture is already fixed for our solver. Calling the method for the second time result in throwing an exception

thisown
unlock()

Resets the pointer to a locked “Base” instance to “nullptr”. Throws an exception if another or no instance is locked.