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
4f5bcd70
Commit
4f5bcd70
authored
May 05, 2013
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'devel_apt-cache_valid_time' of
git://github.com/gottwald/ansible
into devel
parents
43156f3b
9b3d52cb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
2 deletions
+42
-2
library/packaging/apt
+42
-2
No files found.
library/packaging/apt
View file @
4f5bcd70
...
...
@@ -44,6 +44,11 @@ options:
required: false
default: "no"
choices: [ "yes", "no" ]
cache_valid_time:
description:
- If C(update_cache) is specified and the last run is less or equal than I(cache_valid_time) seconds ago, the C(update_cache) gets skipped.
required: false
default: "no"
purge:
description:
- Will force purging of configuration files if the module state is set to I(absent).
...
...
@@ -96,6 +101,8 @@ examples:
description
:
Update
all
packages
to
the
latest
version
-
code
:
"apt: update_cache=yes"
description
:
Run
the
equivalent
of
C
(
apt
-
get
update
)
as
a
separate
step
-
code
:
"apt: update_cache=yes cache_valid_time=3600"
description
:
Only
run
C
(
update_cache
=
yes
)
if
the
last
one
is
more
than
more
than
3600
seconds
ago
requirements
:
[
python
-
apt
,
aptitude
]
'''
...
...
@@ -104,6 +111,9 @@ import traceback
import warnings
warnings.filterwarnings('
ignore
', "apt API not stable yet", FutureWarning)
import os
import datetime
# APT related constants
APTITUDE_CMD = "aptitude"
APT_GET_CMD = "apt-get"
...
...
@@ -111,6 +121,8 @@ APT_ENVVARS = "DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical"
DPKG_OPTIONS = '
-
o
"Dpkg::Options::=--force-confdef"
-
o
"Dpkg::Options::=--force-confold"
'
APT_GET_ZERO = "0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded."
APTITUDE_ZERO = "0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded."
APT_LISTS_PATH = "/var/lib/apt/lists"
APT_UPDATE_SUCCESS_STAMP_PATH = "/var/lib/apt/periodic/update-success-stamp"
def package_split(pkgspec):
parts = pkgspec.split('
=
')
...
...
@@ -232,6 +244,7 @@ def main():
argument_spec = dict(
state = dict(default='
installed
', choices=['
installed
', '
latest
', '
removed
', '
absent
', '
present
']),
update_cache = dict(aliases=['
update
-
cache
'], type='
bool
'),
cache_valid_time = dict(type='
int
'),
purge = dict(default='
no
', type='
bool
'),
package = dict(default=None, aliases=['
pkg
', '
name
']),
default_release = dict(default=None, aliases=['
default
-
release
']),
...
...
@@ -261,8 +274,35 @@ def main():
cache.open(progress=None)
if p['
update_cache
']:
cache.update()
cache.open(progress=None)
# Default is: always update the cache
cache_valid = False
if p['
cache_valid_time
']:
tdelta = datetime.timedelta(seconds=p['
cache_valid_time
'])
try:
mtime = os.stat(APT_UPDATE_SUCCESS_STAMP_PATH).st_mtime
except:
mtime = False
if mtime is False:
# Looks like the update-success-stamp is not available
# Fallback: Checking the mtime of the lists
try:
mtime = os.stat(APT_LISTS_PATH).st_mtime
except:
mtime = False
if mtime is False:
# No mtime could be read - looks like lists are not there
# We update the cache to be safe
cache_valid = False
else:
mtimestamp = datetime.datetime.fromtimestamp(mtime)
if mtimestamp + tdelta >= datetime.datetime.now():
# dont update the cache
# the old cache is less than cache_valid_time seconds old - so still valid
cache_valid = True
if cache_valid is not True:
cache.update()
cache.open(progress=None)
if not p['
package
'] and not p['
upgrade
']:
module.exit_json(changed=False)
...
...
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