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
e3e54541
Commit
e3e54541
authored
Nov 09, 2012
by
Jan-Piet Mens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Redis GET $LOOKUP plugin
renamed
parent
35d841f7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
0 deletions
+67
-0
lib/ansible/runner/lookup_plugins/redis_kv.py
+67
-0
No files found.
lib/ansible/runner/lookup_plugins/redis_kv.py
0 → 100644
View file @
e3e54541
# (c) 2012, Jan-Piet Mens <jpmens(at)gmail.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
from
ansible
import
utils
,
errors
import
os
HAVE_REDIS
=
False
try
:
import
redis
# https://github.com/andymccurdy/redis-py/
HAVE_REDIS
=
True
except
ImportError
:
pass
import
re
# ==============================================================
# REDISGET: Obtain value from a GET on a Redis key. Terms
# expected: 0 = URL, 1 = Key
# URL may be empty, in which case redis://localhost:6379 assumed
# --------------------------------------------------------------
class
LookupModule
(
object
):
def
__init__
(
self
,
basedir
=
None
,
**
kwargs
):
self
.
basedir
=
basedir
if
HAVE_REDIS
==
False
:
raise
errors
.
AnsibleError
(
"Can't LOOKUP(redis_kv): module redis is not installed"
)
def
run
(
self
,
terms
,
**
kwargs
):
(
url
,
key
)
=
terms
.
split
(
','
)
if
url
==
""
:
url
=
'redis://localhost:6379'
# urlsplit on Python 2.6.1 is broken. Hmm. Probably also the reason
# Redis' from_url() doesn't work here.
p
=
'(?P<scheme>[^:]+)://?(?P<host>[^:/ ]+).?(?P<port>[0-9]*).*'
try
:
m
=
re
.
search
(
p
,
url
)
host
=
m
.
group
(
'host'
)
port
=
int
(
m
.
group
(
'port'
))
except
AttributeError
:
raise
errors
.
AnsibleError
(
"Bad URI in redis lookup"
)
try
:
conn
=
redis
.
Redis
(
host
=
host
,
port
=
port
)
res
=
conn
.
get
(
key
)
if
res
is
None
:
res
=
""
return
res
except
:
return
""
# connection failed or key not found
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