Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
cbd1da64
Commit
cbd1da64
authored
Feb 16, 2014
by
Cove Schneider
Committed by
Richard C Isaacson
Mar 07, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add yum module downgrade support
parent
c7d1c1a3
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
2 deletions
+22
-2
library/packaging/yum
+22
-2
No files found.
library/packaging/yum
View file @
cbd1da64
...
...
@@ -28,6 +28,7 @@ import yum
try
:
from
yum.misc
import
find_unfinished_transactions
,
find_ts_remaining
from
rpmUtils.miscutils
import
splitFilename
from
rpmUtils.miscutils
import
compareEVR
transaction_helpers
=
True
except
:
transaction_helpers
=
False
...
...
@@ -38,7 +39,7 @@ module: yum
version_added: historical
short_description: Manages packages with the I(yum) package manager
description:
- Installs, upgrade
, removes,
and lists packages and groups with the I(yum) package manager.
- Installs, upgrade
s, downgrades, removes
and lists packages and groups with the I(yum) package manager.
options:
name:
description:
...
...
@@ -461,6 +462,7 @@ def install(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos):
res
[
'msg'
]
=
''
res
[
'rc'
]
=
0
res
[
'changed'
]
=
False
downgrade
=
False
for
spec
in
items
:
pkg
=
None
...
...
@@ -535,12 +537,30 @@ def install(module, items, repoq, yum_basecmd, conf_file, en_repos, dis_repos):
if
found
:
continue
# downgrade - the yum install command will only install or upgrade to a spec version, it will
# not install an older version of an RPM even if specifed by the install spec. So we need to
# determine if this is a downgrade, and then use the yum downgrade command to install the RPM.
pkg_name
=
splitFilename
(
spec
)[
0
]
pkgs
=
is_installed
(
module
,
repoq
,
pkg_name
,
conf_file
,
en_repos
=
en_repos
,
dis_repos
=
dis_repos
,
is_pkg
=
True
)
if
pkgs
:
(
cur_name
,
cur_ver
,
cur_rel
,
cur_epoch
,
cur_arch
)
=
splitFilename
(
pkgs
[
0
])
(
new_name
,
new_ver
,
new_rel
,
new_epoch
,
new_arch
)
=
splitFilename
(
spec
)
compare
=
compareEVR
((
cur_epoch
,
cur_ver
,
cur_rel
),
(
new_epoch
,
new_ver
,
new_rel
))
if
compare
>
0
:
downgrade
=
True
# if not - then pass in the spec as what to install
# we could get here if nothing provides it but that's not
# the error we're catching here
pkg
=
spec
cmd
=
yum_basecmd
+
[
'install'
,
pkg
]
operation
=
'install'
if
downgrade
:
operation
=
'downgrade'
cmd
=
yum_basecmd
+
[
operation
,
pkg
]
if
module
.
check_mode
:
module
.
exit_json
(
changed
=
True
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment