Software Script python reference

LMI software provider client library.

Package specification

Referred to as pkg_spec. Is a string identifying set of packages. It constitutes at least of package name. Each additional detail narrows the the possible set of matchin packages. The most complete specifications are nevra and envra.

Follows the list of all possible specifications:

  • <name>
  • <name>.<arch>
  • <name>-<version>-<release>.<arch> (nvra)
  • <name>-<epoch>:<version>-<release>.<arch> (nevra)
  • <epoch>:<name>-<version>-<release>.<arch> (envra)

Regular expressions

These may be used check, whether the given pkg_spec is valid and allows to get all the interesting parts out of it.

lmi.scripts.software.RE_NA

Regular expression matching package specified as <name>.<arch>.

lmi.scripts.software.RE_NEVRA

Regular expression matching package specified as:

<name>-<epoch>:<version>-<release>.<arch>

The epoch part is optional. So it can be used also to match nvra string.

lmi.scripts.software.RE_ENVRA

Regular expression matching package specified as:

<epoch>:<name>-<version>-<release>.<arch>

Functions

lmi.scripts.software.FILE_TYPES = ('Unknown', 'File', 'Directory', 'Symlink', 'FIFO', 'Character Device', 'Block Device')

Array of file type names.

lmi.scripts.software.find_package(ns, allow_duplicates=False, exact_match=True, installed=None, **kwargs)

Yields just a limited set of packages matching particular filter. Keyword arguments are used to specify this filter, which can contain following keys:

name :
Package name.
epoch :
package’s epoch
version :
version of package
release :
release of package
arch :
requested architecture of package
nevra :

string containing all previous keys in following notation:

<name>-<epoch>:<version>-<release>.<arch>
envra :

similar to nevra, the notation is different:

<epoch>:<name>-<version>-<release>.<arch>
repoid :
repository identification string, where package must be available
pkg_spec :
Package specification string. See Package specification.
Parameters:
  • allow_duplicates (boolean) – Whether the output shall contain multiple versions of the same packages identified with <name>.<architecture>.
  • exact_match (boolean) – Whether the name key shall be tested for exact match. If False it will be tested for inclusion.
  • installed (boolean) – Limit the search to installed or not installed packages. Unless set to boolean value, all packages will be searched for matching one.
Returns:

Instance names of LMI_SoftwareIdentity.

Return type:

generator over lmi.shell.LmiInstanceName

lmi.scripts.software.get_backend(ns)

Get provider’s backend code.

Returns:One of BACKEND_YUM, BACKEND_PACKAGEKIT
Return type:int
lmi.scripts.software.get_installation_service(ns)

Get and cache installation service instance.

Returns:An instance of LMI_SoftwareInstallationService.
lmi.scripts.software.get_package_nevra(package)

Get a nevra from an instance of LMI_SoftwareIdentity.

Parameters:package (lmi.shell.LMIInstance or lmi.shell.LMIInstanceName) – Instance or instance name of LMI_SoftwareIdentity representing package to install.
Returns:Nevra string of particular package.
Return type:string
lmi.scripts.software.get_repository(ns, repoid)

Return an instance of repository identified by its identification string.

Parameters:repoid (string) – Identification string of repository.
Returns:Instance of LMI_SoftwareIdentityResource.
Return type:lmi.shell.LMIInstance
lmi.scripts.software.install_from_uri(ns, uri, force=False, update=False)

Install package from URI on remote system.

Parameters:
  • uri (string) – Identifier of RPM package available via http, https, or ftp service.
  • force (boolean) – Whether the installation shall be done even if installing the same (reinstalling) or older version than already installed.
  • update (boolean) – Whether this is an update. Update fails if package is not already installed on system.
lmi.scripts.software.install_package(ns, package, force=False, update=False)

Install package on system.

Parameters:
  • package (lmi.shell.LMIInstance or lmi.shell.LMIInstanceName) – Instance or instance name of LMI_SoftwareIdentity representing package to install.
  • force (boolean) – Whether the installation shall be done even if installing the same (reinstalling) or older version than already installed.
  • update (boolean) – Whether this is an update. Update fails if package is not already installed on system.
Returns:

Software identity installed on remote system. It’s an instance LMI_SoftwareIdentity.

Return type:

lmi.shell.LMIInstance

lmi.scripts.software.is_package_installed(package, installed_nevras=None)
Parameters:installed_nevras (set) – An optional set of nevra strings of installed packages. This speeds up processing it PackageKit backend is used..
Returns:True if the package is installed
Return type:boolean
lmi.scripts.software.list_available_packages(ns, allow_installed=False, allow_duplicates=False, repoid=None, installed_nevras=None)

Yields instances of LMI_SoftwareIdentity representing available packages.

Parameters:
  • allow_installed (boolean) – Whether to include available packages that are installed.
  • allow_duplicates (boolean) – Whether to include duplicates packages (those having same name and architecture). Otherwise only the newest packages available for each (name, architecture) pair will be contained in result.
  • repoid (string) – Repository identification string. This will filter available packages just to those provided by this repository.
  • installed_nevras – Set of nevra strings of installed packages. This speeds up execution for PackageKit backend.
Return type:

generator

lmi.scripts.software.list_installed_packages(ns)

Yields instances of LMI_SoftwareIdentity representing installed packages.

Return type:generator
lmi.scripts.software.list_package_files(ns, package, file_type=None)

Get a list of files belonging to particular installed RPM package. Yields instances of LMI_SoftwareIdentityFileCheck.

Parameters:
Returns:

Instances of LMI_SoftwareIdentityFileCheck.

Return type:

generator over lmi.shell.LMIInstance

lmi.scripts.software.list_repositories(ns, enabled=True)

Yields instances of LMI_SoftwareIdentityResource representing software repositories.

Parameters:enabled (boolean or None) – Whether to list only enabled repositories. If False only disabled repositories shall be listed. If None, all repositories shall be listed.
Returns:Instances of LMI_SoftwareIdentityResource
Return type:generator over lmi.shell.LMIInstance
lmi.scripts.software.pkg_spec_to_filter(pkg_spec)

Converts package specification to a set of keys, that can be used to query package properties.

Parameters:pkg_spec (string) – Package specification (see Package specification). Only keys given in this string will appear in resulting dictionary.
Returns:Dictionary with possible keys being a subset of following: {'name', 'epoch', 'version', 'release', 'arch'}. Values are non-empty parts of pkg_spec string.
Return type:dictionary
lmi.scripts.software.remove_package(ns, package)

Uninstall given package from system.

Raises:LmiFailed` will be raised on failure.
Parameters:package (lmi.shell.LMIInstance or lmi.shell.LMIInstanceName) – Instance or instance name of LMI_SoftwareIdentity representing package to remove.
lmi.scripts.software.render_failed_flags(failed_flags)

Make one liner string representing failed flags list of file that did not pass the verification.

Parameters:failed_flags (list) – Value of FailedFlags property of some LMI_SoftwareIdentityFileCheck.
Returns:Verification string with format matching the output of rpm -V command.
Return type:string
lmi.scripts.software.set_repository_enabled(ns, repository, enable=True)

Enable or disable repository.

Parameters:
Returns:

Previous value of repository’s EnabledState.

Return type:

boolean

lmi.scripts.software.verify_package(ns, package)

Returns the instances of LMI_SoftwareIdentityFileCheck representing files, that did not pass the verification.

Parameters:package (lmi.shell.LMIInstance or lmi.shell.LMIInstanceName) – Instance or instance name of LMI_SoftwareIdentity representing package to verify.
Returns:List of instances of LMI_SoftwareIdentityFileCheck with non-empty FailedFlags property.
Return type:list