diff --git a/salt/states/pkg.py b/salt/states/pkg.py index 88a9265aa6..686928efbe 100644 --- a/salt/states/pkg.py +++ b/salt/states/pkg.py @@ -2512,32 +2512,26 @@ def latest( 'result': None, 'comment': '\n'.join(comments)} + if salt.utils.is_windows(): + # pkg.install execution module on windows ensures the software + # package is installed when no version is specified, it does not + # upgrade the software to the latest. This is per the design. + # Build updated list of pkgs *with verion number*, exclude + # non-targeted ones + targeted_pkgs = [{x: targets[x]} for x in targets.keys()] + else: + # Build updated list of pkgs to exclude non-targeted ones + targeted_pkgs = list(targets.keys()) if pkgs else None + # No need to refresh, if a refresh was necessary it would have been # performed above when pkg.latest_version was run. try: - if salt.utils.is_windows(): - # pkg.install execution module on windows ensures the - # software package is installed when no version is - # specified, it does not upgrade the software to the - # latest. This is per the design. - # Build updated list of pkgs *with verion number*, exclude - # non-targeted ones - targeted_pkgs = [{x: targets[x]} for x in targets.keys()] - changes = __salt__['pkg.install'](name=None, - refresh=False, - fromrepo=fromrepo, - skip_verify=skip_verify, - pkgs=targeted_pkgs, - **kwargs) - else: - # Build updated list of pkgs to exclude non-targeted ones - targeted_pkgs = list(targets.keys()) if pkgs else None - changes = __salt__['pkg.install'](name, - refresh=False, - fromrepo=fromrepo, - skip_verify=skip_verify, - pkgs=targeted_pkgs, - **kwargs) + changes = __salt__['pkg.install'](name=None, + refresh=False, + fromrepo=fromrepo, + skip_verify=skip_verify, + pkgs=targeted_pkgs, + **kwargs) except CommandExecutionError as exc: return {'name': name, 'changes': {},