salt.modules.win_pkg

A module to manage software on Windows

Important

If you feel that Salt should be using this module to manage packages on a minion, and it is using a different module (or gives an error similar to 'pkg.install' is not available), see here.

depends:
  • win32com
  • win32con
  • win32api
  • pywintypes
salt.modules.win_pkg.get_repo_data(saltenv='base')

Returns the cached winrepo data

CLI Example:

salt '*' pkg.get_repo_data
salt.modules.win_pkg.install(name=None, refresh=False, pkgs=None, saltenv='base', **kwargs)

Install the passed package from the winrepo

Parameters:
  • name (str or None) -- The name of the package to install
  • refresh (bool) -- Boolean value representing whether or not to refresh the winrepo db
  • pkgs (list or None) -- A list of packages to install from a software repository. All packages listed under pkgs will be installed via a single command.
  • saltenv (str) -- The salt environment to use. Default is base.
  • kwargs (dict) -- Any additional argument that may be passed from the state module. If they don't apply, they are ignored.
Returns:

Return a dict containing the new package names and versions:

{'<package>': {'old': '<old-version>',

'new': '<new-version>'}}

CLI Example:

salt '*' pkg.install <package name>
salt.modules.win_pkg.latest_version(*names, **kwargs)

Return the latest version of the named package available for upgrade or installation. If more than one package name is specified, a dict of name/version pairs is returned.

If the latest version of a given package is already installed, an empty string will be returned for that package.

CLI Example:

salt '*' pkg.latest_version <package name>
salt '*' pkg.latest_version <package1> <package2> <package3> ...
salt.modules.win_pkg.list_available(*names)

Return a list of available versions of the specified package.

CLI Example:

salt '*' pkg.list_available <package name>
salt '*' pkg.list_available <package name01> <package name02>
salt.modules.win_pkg.list_pkgs(versions_as_list=False, **kwargs)

List the packages currently installed in a dict:

{'<package_name>': '<version>'}

CLI Example:

salt '*' pkg.list_pkgs
salt '*' pkg.list_pkgs versions_as_list=True
salt.modules.win_pkg.list_upgrades(refresh=True, **kwargs)

List all available package upgrades on this system

CLI Example:

salt '*' pkg.list_upgrades
salt.modules.win_pkg.purge(name=None, pkgs=None, version=None, **kwargs)

Package purges are not supported, this function is identical to remove().

name
The name of the package to be deleted.
version
The version of the package to be deleted. If this option is used in combination with the pkgs option below, then this version will be applied to all targeted packages.

Multiple Package Options:

pkgs
A list of packages to delete. Must be passed as a python list. The name parameter will be ignored if this option is passed.

New in version 0.16.0.

Returns a dict containing the changes.

CLI Example:

salt '*' pkg.purge <package name>
salt '*' pkg.purge <package1>,<package2>,<package3>
salt '*' pkg.purge pkgs='["foo", "bar"]'
salt.modules.win_pkg.refresh_db(saltenv='base')

Just recheck the repository and return a dict:

{'<database name>': Bool}

CLI Example:

salt '*' pkg.refresh_db
salt.modules.win_pkg.remove(name=None, pkgs=None, version=None, extra_uninstall_flags=None, **kwargs)

Remove packages.

name
The name of the package to be deleted.
version
The version of the package to be deleted. If this option is used in combination with the pkgs option below, then this version will be applied to all targeted packages.

Multiple Package Options:

pkgs
A list of packages to delete. Must be passed as a python list. The name parameter will be ignored if this option is passed.

New in version 0.16.0.

Returns a dict containing the changes.

CLI Example:

salt '*' pkg.remove <package name>
salt '*' pkg.remove <package1>,<package2>,<package3>
salt '*' pkg.remove pkgs='["foo", "bar"]'
salt.modules.win_pkg.upgrade(refresh=True)

Run a full system upgrade

Return a dict containing the new package names and versions:

{'<package>': {'old': '<old-version>',
               'new': '<new-version>'}}

CLI Example:

salt '*' pkg.upgrade
salt.modules.win_pkg.upgrade_available(name)

Check whether or not an upgrade is available for a given package

CLI Example:

salt '*' pkg.upgrade_available <package name>
salt.modules.win_pkg.version(*names, **kwargs)

Returns a version if the package is installed, else returns an empty string

CLI Example:

salt '*' pkg.version <package name>