# salt.modules.mongodb

Module to provide MongoDB functionality to Salt

configuration:

  This module uses PyMongo, and accepts configuration details as parameters as well as configuration settings:

      mongodb.host: 'localhost'
      mongodb.port: 27017
      mongodb.user: ''
      mongodb.password: ''

  This data can also be passed into pillar. Options passed into opts will overwrite options passed into pillar.

salt.modules.mongodb.collection_create(collection, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Added in version 3006.0.

  Create a collection in the specified database.

  collection

    The name of the collection to create.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.collection_create mycollection <user> <password> <host> <port> <database>

salt.modules.mongodb.collection_drop(collection, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Added in version 3006.0.

  Drop a collection in the specified database.

  collection

    The name of the collection to drop.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.collection_drop mycollection <user> <password> <host> <port> <database>

salt.modules.mongodb.collections_list(user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Added in version 3006.0.

  List the collections available in the specified database.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.collections_list mycollection <user> <password> <host> <port> <database>

salt.modules.mongodb.db_exists(name, user=None, password=None, host=None, port=None, authdb=None)

  Checks if a database exists in MongoDB

  name

    The name of the database to check for.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.db_exists <name> <user> <password> <host> <port>

salt.modules.mongodb.db_list(user=None, password=None, host=None, port=None, authdb=None)

  List all MongoDB databases

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.db_list <user> <password> <host> <port>

salt.modules.mongodb.db_remove(name, user=None, password=None, host=None, port=None, authdb=None)

  Remove a MongoDB database

  name

    The name of the database to remove.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.db_remove <name> <user> <password> <host> <port>

salt.modules.mongodb.find(collection, query=None, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Find an object or list of objects in a collection

  collection

    The collection to find the objects in.

  query

    The query to use when locating objects in the collection.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.find mycollection '[{"foo": "FOO", "bar": "BAR"}]' <user> <password> <host> <port> <database>

salt.modules.mongodb.insert(objects, collection, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Insert an object or list of objects into a collection

  objects

    The objects to insert into the collection, should be provided as a list.

  collection

    The collection to insert the objects into.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.insert '[{"foo": "FOO", "bar": "BAR"}, {"foo": "BAZ", "bar": "BAM"}]' mycollection <user> <password> <host> <port> <database>

salt.modules.mongodb.remove(collection, query=None, user=None, password=None, host=None, port=None, database='admin', w=1, authdb=None)

  Remove an object or list of objects from a collection

  collection

    The collection to remove objects from based on the query.

  query

    Query to determine which objects to remove.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  database

    The database where the collection is.

  w

    The number of matches to remove from the collection.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.remove mycollection '[{"foo": "FOO", "bar": "BAR"}, {"foo": "BAZ", "bar": "BAM"}]' <user> <password> <host> <port> <database>

salt.modules.mongodb.update_one(objects, collection, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Update an object into a collection http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_one

  Added in version 2016.11.0.

  objects

    The objects to update in the collection, should be provided as a list.

  collection

    The collection to insert the objects into.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.update_one '{"_id": "my_minion"} {"bar": "BAR"}' mycollection <user> <password> <host> <port> <database>

salt.modules.mongodb.user_create(name, passwd, user=None, password=None, host=None, port=None, database='admin', authdb=None, roles=None)

  Create a MongoDB user

  name

    The name of the user to create.

  passwd

    The password for the user that is being created.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  database

    The MongoDB database to use when checking if the user exists. Default is `admin`.

  authdb

    The MongoDB database to use for authentication. Default is None.

  roles

    The roles that should be associated with the user. Default is None.

  CLI Example:

      salt '*' mongodb.user_create <user_name> <user_password> <roles> <user> <password> <host> <port> <database>

salt.modules.mongodb.user_exists(name, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Checks if a user exists in MongoDB

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  database

    The MongoDB database to use when checking if the user exists. Default is `admin`.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.user_exists <name> <user> <password> <host> <port> <database>

salt.modules.mongodb.user_find(name, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Get single user from MongoDB

  name

    The name of the user to find.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  database

    The MongoDB database to use when looking for the user. Default is `admin`.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.user_find <name> <user> <password> <host> <port> <database> <authdb>

salt.modules.mongodb.user_grant_roles(name, roles, database, user=None, password=None, host=None, port=None, authdb=None)

  Grant one or many roles to a MongoDB user

  name

    The user to grant the specified roles to.

  roles

    The roles to grant to the specified user.

  database

    The database to great the roles against for the specified user.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Examples:

      salt '*' mongodb.user_grant_roles johndoe '["readWrite"]' dbname admin adminpwd localhost 27017

      salt '*' mongodb.user_grant_roles janedoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017

salt.modules.mongodb.user_list(user=None, password=None, host=None, port=None, database='admin', authdb=None)

  List users of a MongoDB database

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  database

    The MongoDB database to use when listing users. Default is `admin`.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.user_list <user> <password> <host> <port> <database>

salt.modules.mongodb.user_remove(name, user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Remove a MongoDB user

  name

    The name of the user that should be removed.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.user_remove <name> <user> <password> <host> <port> <database>

salt.modules.mongodb.user_revoke_roles(name, roles, database, user=None, password=None, host=None, port=None, authdb=None)

  Revoke one or many roles to a MongoDB user

  user

    The user to connect to MongoDB as. Default is None.

  roles

    The roles to revoke from the specified user.

  database

    The database to revoke the roles from for the specified user.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Examples:

      salt '*' mongodb.user_revoke_roles johndoe '["readWrite"]' dbname admin adminpwd localhost 27017

      salt '*' mongodb.user_revoke_roles janedoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017

salt.modules.mongodb.user_roles_exists(name, roles, database, user=None, password=None, host=None, port=None, authdb=None)

  Checks if a user of a MongoDB database has specified roles

  name

    The name of the user to check for the specified roles.

  roles

    The roles to check are associated with the specified user.

  database

    The database to check has the specified roles for the specified user.

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Examples:

      salt '*' mongodb.user_roles_exists johndoe '["readWrite"]' dbname admin adminpwd localhost 27017

      salt '*' mongodb.user_roles_exists johndoe '[{"role": "readWrite", "db": "dbname" }, {"role": "read", "db": "otherdb"}]' dbname admin adminpwd localhost 27017

salt.modules.mongodb.version(user=None, password=None, host=None, port=None, database='admin', authdb=None)

  Get MongoDB instance version

  user

    The user to connect to MongoDB as. Default is None.

  password

    The password to use to connect to MongoDB as. Default is None.

  host

    The host where MongoDB is running. Default is None.

  port

    The host where MongoDB is running. Default is None.

  authdb

    The MongoDB database to use for authentication. Default is None.

  CLI Example:

      salt '*' mongodb.version <user> <password> <host> <port> <database>