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
58e8a97e
Commit
58e8a97e
authored
Jun 16, 2013
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3225 from eest/openbsd_pkg-check_mode
openbsd_pkg: Add check_mode support.
parents
613df1d6
9dfc4209
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
24 deletions
+53
-24
library/packaging/openbsd_pkg
+53
-24
No files found.
library/packaging/openbsd_pkg
View file @
58e8a97e
...
@@ -102,16 +102,26 @@ def get_package_state(name, specific_version):
...
@@ -102,16 +102,26 @@ def get_package_state(name, specific_version):
return
False
return
False
# Function used to make sure a package is present.
# Function used to make sure a package is present.
def
package_present
(
name
,
installed_state
):
def
package_present
(
name
,
installed_state
,
module
):
install_cmd
=
'pkg_add -I'
if
module
.
check_mode
:
install_cmd
=
'pkg_add -In'
else
:
install_cmd
=
'pkg_add -I'
if
installed_state
is
False
:
if
installed_state
is
False
:
rc
,
stdout
,
stderr
=
execute_command
(
"
%
s
%
s"
%
(
install_cmd
,
name
),
syslogging
)
# Attempt to install the package
(
rc
,
stdout
,
stderr
)
=
execute_command
(
"
%
s
%
s"
%
(
install_cmd
,
name
),
syslogging
)
# pkg_add returns 0 even if the package does not exist
# pkg_add returns 0 even if the package does not exist
# so depend on stderr instead if something bad happened.
# so depend on stderr instead if something bad happened.
if
stderr
:
if
stderr
:
rc
=
1
rc
=
1
changed
=
False
changed
=
False
else
:
else
:
if
module
.
check_mode
:
module
.
exit_json
(
changed
=
True
)
changed
=
True
changed
=
True
else
:
else
:
rc
=
0
rc
=
0
...
@@ -122,47 +132,65 @@ def package_present(name, installed_state):
...
@@ -122,47 +132,65 @@ def package_present(name, installed_state):
return
(
rc
,
stdout
,
stderr
,
changed
)
return
(
rc
,
stdout
,
stderr
,
changed
)
# Function used to make sure a package is the latest available version.
# Function used to make sure a package is the latest available version.
def
package_latest
(
name
,
installed_state
,
specific_version
):
def
package_latest
(
name
,
installed_state
,
specific_version
,
module
):
if
module
.
check_mode
:
upgrade_cmd
=
'pkg_add -umn'
else
:
upgrade_cmd
=
'pkg_add -um'
upgrade_cmd
=
'pkg_add -u'
pre_upgrade_name
=
''
pre_upgrade_name
=
''
post_upgrade_name
=
''
if
installed_state
is
True
:
if
installed_state
is
True
:
# pkg_add -u exits 0 even if no update was needed, so compare the
# Fetch name of currently installed package
# installed package before and after to know if we changed anything.
pre_upgrade_name
=
get_current_name
(
name
,
specific_version
)
pre_upgrade_name
=
get_current_name
(
name
,
specific_version
)
# Attempt to upgrade the package
(
rc
,
stdout
,
stderr
)
=
execute_command
(
"
%
s
%
s"
%
(
upgrade_cmd
,
name
),
syslogging
)
(
rc
,
stdout
,
stderr
)
=
execute_command
(
"
%
s
%
s"
%
(
upgrade_cmd
,
name
),
syslogging
)
# 'pkg_add -u' returns 0 even when something strange happened, stdout
# Look for output looking something like "nmap-6.01->6.25: ok" to see if
# should be empty if everything went fine.
# something changed (or would have changed). Use \W to delimit the match
if
stdout
:
# from progress meter output.
rc
=
1
match
=
re
.
search
(
"
\
W
%
s->.+: ok
\
W"
%
pre_upgrade_name
,
stdout
)
if
match
:
post_upgrade_name
=
get_current_name
(
name
,
specific_version
)
if
module
.
check_mode
:
module
.
exit_json
(
changed
=
True
)
if
pre_upgrade_name
==
post_upgrade_name
:
changed
=
False
else
:
changed
=
True
changed
=
True
else
:
changed
=
False
# 'pkg_add -u' returns 0 even when something strange happened, stderr
# should be empty if everything went fine.
if
stderr
:
rc
=
1
return
(
rc
,
stdout
,
stderr
,
changed
)
return
(
rc
,
stdout
,
stderr
,
changed
)
else
:
else
:
# If package was not installed at all just make it present.
# If package was not installed at all just make it present.
return
package_present
(
name
,
installed_state
)
return
package_present
(
name
,
installed_state
,
module
)
# Function used to make sure a package is not installed.
# Function used to make sure a package is not installed.
def
package_absent
(
name
,
installed_state
):
def
package_absent
(
name
,
installed_state
,
module
):
remove_cmd
=
'pkg_delete -I'
if
module
.
check_mode
:
remove_cmd
=
'pkg_delete -In'
else
:
remove_cmd
=
'pkg_delete -I'
if
installed_state
is
True
:
if
installed_state
is
True
:
# Attempt to remove the package
rc
,
stdout
,
stderr
=
execute_command
(
"
%
s
%
s"
%
(
remove_cmd
,
name
),
syslogging
)
rc
,
stdout
,
stderr
=
execute_command
(
"
%
s
%
s"
%
(
remove_cmd
,
name
),
syslogging
)
if
rc
==
0
:
if
rc
==
0
:
if
module
.
check_mode
:
module
.
exit_json
(
changed
=
True
)
changed
=
True
changed
=
True
else
:
else
:
changed
=
False
changed
=
False
else
:
else
:
rc
=
0
rc
=
0
stdout
=
''
stdout
=
''
...
@@ -179,7 +207,8 @@ def main():
...
@@ -179,7 +207,8 @@ def main():
argument_spec
=
dict
(
argument_spec
=
dict
(
name
=
dict
(
required
=
True
),
name
=
dict
(
required
=
True
),
state
=
dict
(
required
=
True
,
choices
=
[
'absent'
,
'installed'
,
'latest'
,
'present'
,
'removed'
]),
state
=
dict
(
required
=
True
,
choices
=
[
'absent'
,
'installed'
,
'latest'
,
'present'
,
'removed'
]),
)
),
supports_check_mode
=
True
)
)
name
=
module
.
params
[
'name'
]
name
=
module
.
params
[
'name'
]
...
@@ -205,11 +234,11 @@ def main():
...
@@ -205,11 +234,11 @@ def main():
# Perform requested action
# Perform requested action
if
state
in
[
'installed'
,
'present'
]:
if
state
in
[
'installed'
,
'present'
]:
(
rc
,
stdout
,
stderr
,
changed
)
=
package_present
(
name
,
installed_state
)
(
rc
,
stdout
,
stderr
,
changed
)
=
package_present
(
name
,
installed_state
,
module
)
elif
state
in
[
'absent'
,
'removed'
]:
elif
state
in
[
'absent'
,
'removed'
]:
(
rc
,
stdout
,
stderr
,
changed
)
=
package_absent
(
name
,
installed_state
)
(
rc
,
stdout
,
stderr
,
changed
)
=
package_absent
(
name
,
installed_state
,
module
)
elif
state
==
'latest'
:
elif
state
==
'latest'
:
(
rc
,
stdout
,
stderr
,
changed
)
=
package_latest
(
name
,
installed_state
,
specific_version
)
(
rc
,
stdout
,
stderr
,
changed
)
=
package_latest
(
name
,
installed_state
,
specific_version
,
module
)
if
rc
!=
0
:
if
rc
!=
0
:
if
stderr
:
if
stderr
:
...
...
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