diff --git a/lib/ansible/plugins/lookup/mongodb.py b/lib/ansible/plugins/lookup/mongodb.py index 08b7a892368..e8d380ba103 100644 --- a/lib/ansible/plugins/lookup/mongodb.py +++ b/lib/ansible/plugins/lookup/mongodb.py @@ -15,6 +15,77 @@ # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . +''' +DOCUMENTATION: + author: 'Marcos Diez ' + lookup: mongodb + version_added: "2.3" + short_description: lookup info from MongoDB + description: + - 'The ``MongoDB`` lookup runs the *find()* command on a given *collection* on a given *MongoDB* server.' + - 'The result is a list of jsons, so slightly different from what PyMongo returns. In particular, *timestamps* are converted to epoch integers.' + options: + connect_string: + description: + - "Can be any valid MongoDB connection string, supporting authentication, replicasets, etc. More info at https://docs.mongodb.org/manual/reference/connection-string/" + default: "mongodb://localhost/" + database: + description: + - Name of the database which the query will be made + required: True + collection: + description: + - Name of the collection which the query will be made + required: True + filter: + description: + - Criteria of the output + type: 'dict' + default: '{}' + projection: + description: + - Fields you want returned + type: dict + default: "{}" + skip: + description: + - How many results should be skept + type: integer + limit: + description: + - How many results should be shown + type: integer + sort: + description: + - Sorting rules. Please notice the constats are replaced by strings. + type: list + default: "[]" + notes: + - "Please check https://api.mongodb.org/python/current/api/pymongo/collection.html?highlight=find#pymongo.collection.Collection.find for more detais." + requirements: + - pymongo >= 2.4 +EXAMPLES: +- hosts: all + gather_facts: false + vars: + mongodb_parameters: + #mandatory parameters + database: 'local' + #optional + collection: "startup_log" + connection_string: "mongodb://localhost/" + extra_connection_parameters: { "ssl" : True , "ssl_certfile": /etc/self_signed_certificate.pem" } + #optional query parameters, we accept any parameter from the normal mongodb query. + filter: { "hostname": "batman" } + projection: { "pid": True , "_id" : False , "hostname" : True } + skip: 0 + limit: 1 + sort: [ [ "startTime" , "ASCENDING" ] , [ "age", "DESCENDING" ] ] + tasks: + - debug: msg="Mongo has already started with the following PID [{{ item.pid }}]" + with_mongodb: "{{mongodb_parameters}}" +''' + from __future__ import (absolute_import, division, print_function) from __future__ import unicode_literals from ansible.module_utils.six import string_types