salt.modules.cassandra_cql

Cassandra Database Module

New in version 2015.5.0.

depends:

DataStax Python Driver for Apache Cassandra https://github.com/datastax/python-driver pip install cassandra-driver

referenced by:

Salt's cassandra_cql returner

configuration:

The Cassandra cluster members and connection port can either be specified in the master or minion config, the minion's pillar or be passed to the module.

Example configuration in the config for a single node:

cassandra:
  cluster: 192.168.50.10
  port: 9000

Example configuration in the config for a cluster:

cassandra:
  cluster:
    - 192.168.50.10
    - 192.168.50.11
    - 192.168.50.12
  port: 9000
  username: cas_admin
salt.modules.cassandra_cql.cql_query(query, contact_points=None, port=None, cql_user=None, cql_pass=None)

Run a query on a Cassandra cluster and return a dictionary.

Parameters:
  • query (str) -- The query to execute.
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
  • params (str) -- The parameters for the query, optional.
Returns:

A dictionary from the return values of the query

Return type:

list[dict]

salt.modules.cassandra_cql.create_keyspace(keyspace, replication_strategy='SimpleStrategy', replication_factor=1, replication_datacenters=None, contact_points=None, port=None, cql_user=None, cql_pass=None)

Create a new keyspace in Cassandra.

Parameters:
  • keyspace (str) -- The keyspace name
  • replication_strategy (str) -- either SimpleStrategy or NetworkTopologyStrategy
  • replication_factor (int) -- number of replicas of data on multiple nodes. not used if using NetworkTopologyStrategy
  • replication_datacenters (str | dict[str, int]) -- string or dict of datacenter names to replication factors, required if using NetworkTopologyStrategy (will be a dict if coming from state file).
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The info for the keyspace or False if it does not exist.

Return type:

dict

salt 'minion1' cassandra_cql.create_keyspace keyspace=newkeyspace

salt 'minion1' cassandra_cql.create_keyspace keyspace=newkeyspace replication_strategy=NetworkTopologyStrategy         replication_datacenters='{"datacenter_1": 3, "datacenter_2": 2}'
salt.modules.cassandra_cql.create_user(username, password, superuser=False, contact_points=None, port=None, cql_user=None, cql_pass=None)

Create a new cassandra user with credentials and superuser status.

Parameters:
  • username (str) -- The name of the new user.
  • password (str) -- The password of the new user.
  • superuser (bool) -- Is the new user going to be a superuser? default: False
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

Return type:

salt 'minion1' cassandra_cql.create_user username=joe password=secret

salt 'minion1' cassandra_cql.create_user username=joe password=secret superuser=True

salt 'minion1' cassandra_cql.create_user username=joe password=secret superuser=True contact_points=minion1
salt.modules.cassandra_cql.drop_keyspace(keyspace, contact_points=None, port=None, cql_user=None, cql_pass=None)

Drop a keyspace if it exists in a Cassandra cluster.

Parameters:
  • keyspace (str) -- The keyspace to drop.
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The info for the keyspace or False if it does not exist.

Return type:

dict

CLI Example:

salt 'minion1' cassandra_cql.drop_keyspace keyspace=test

salt 'minion1' cassandra_cql.drop_keyspace keyspace=test contact_points=minion1
salt.modules.cassandra_cql.grant_permission(username, resource=None, resource_type='keyspace', permission=None, contact_points=None, port=None, cql_user=None, cql_pass=None)

Grant permissions to a user.

Parameters:
  • username (str) -- The name of the user to grant permissions to.
  • resource (str) -- The resource (keyspace or table), if None, permissions for all resources are granted.
  • resource_type (str) -- The resource_type (keyspace or table), defaults to 'keyspace'.
  • permission (str) -- A permission name (e.g. select), if None, all permissions are granted.
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

Return type:

salt 'minion1' cassandra_cql.grant_permission

salt 'minion1' cassandra_cql.grant_permission username=joe resource=test_keyspace permission=select

salt 'minion1' cassandra_cql.grant_permission username=joe resource=test_table resource_type=table         permission=select contact_points=minion1
salt.modules.cassandra_cql.info(contact_points=None, port=None, cql_user=None, cql_pass=None)

Show the Cassandra information for this cluster.

Parameters:
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The information for this Cassandra cluster.

Return type:

dict

CLI Example:

salt 'minion1' cassandra_cql.info

salt 'minion1' cassandra_cql.info contact_points=minion1
salt.modules.cassandra_cql.keyspace_exists(keyspace, contact_points=None, port=None, cql_user=None, cql_pass=None)

Check if a keyspace exists in a Cassandra cluster.

:param keyspace The keyspace name to check for. :type keyspace: str :param contact_points: The Cassandra cluster addresses, can either be a string or a list of IPs. :type contact_points: str | list[str] :param cql_user: The Cassandra user if authentication is turned on. :type cql_user: str :param cql_pass: The Cassandra user password if authentication is turned on. :type cql_pass: str :param port: The Cassandra cluster port, defaults to None. :type port: int :return: The info for the keyspace or False if it does not exist. :rtype: dict

CLI Example:

salt 'minion1' cassandra_cql.keyspace_exists keyspace=system

salt 'minion1' cassandra_cql.list_keyspaces keyspace=system contact_points=minion1
salt.modules.cassandra_cql.list_column_families(keyspace=None, contact_points=None, port=None, cql_user=None, cql_pass=None)

List column families in a Cassandra cluster for all keyspaces or just the provided one.

Parameters:
  • keyspace (str) -- The keyspace to provide the column families for, optional.
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The column families in this Cassandra cluster.

Return type:

list[dict]

CLI Example:

salt 'minion1' cassandra_cql.list_column_families

salt 'minion1' cassandra_cql.list_column_families contact_points=minion1

salt 'minion1' cassandra_cql.list_column_families keyspace=system
salt.modules.cassandra_cql.list_keyspaces(contact_points=None, port=None, cql_user=None, cql_pass=None)

List keyspaces in a Cassandra cluster.

Parameters:
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The keyspaces in this Cassandra cluster.

Return type:

list[dict]

CLI Example:

salt 'minion1' cassandra_cql.list_keyspaces

salt 'minion1' cassandra_cql.list_keyspaces contact_points=minion1 port=9000
salt.modules.cassandra_cql.list_permissions(username=None, resource=None, resource_type='keyspace', permission=None, contact_points=None, port=None, cql_user=None, cql_pass=None)

List permissions.

Parameters:
  • username (str) -- The name of the user to list permissions for.
  • resource (str) -- The resource (keyspace or table), if None, permissions for all resources are listed.
  • resource_type (str) -- The resource_type (keyspace or table), defaults to 'keyspace'.
  • permission (str) -- A permission name (e.g. select), if None, all permissions are listed.
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

Dictionary of permissions.

Return type:

dict

salt 'minion1' cassandra_cql.list_permissions

salt 'minion1' cassandra_cql.list_permissions username=joe resource=test_keyspace permission=select

salt 'minion1' cassandra_cql.list_permissions username=joe resource=test_table resource_type=table         permission=select contact_points=minion1
salt.modules.cassandra_cql.list_users(contact_points=None, port=None, cql_user=None, cql_pass=None)

List existing users in this Cassandra cluster.

Parameters:
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • port (int) -- The Cassandra cluster port, defaults to None.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
Returns:

The list of existing users.

Return type:

dict

salt 'minion1' cassandra_cql.list_users

salt 'minion1' cassandra_cql.list_users contact_points=minion1
salt.modules.cassandra_cql.version(contact_points=None, port=None, cql_user=None, cql_pass=None)

Show the Cassandra version.

Parameters:
  • contact_points (str | list[str]) -- The Cassandra cluster addresses, can either be a string or a list of IPs.
  • cql_user (str) -- The Cassandra user if authentication is turned on.
  • cql_pass (str) -- The Cassandra user password if authentication is turned on.
  • port (int) -- The Cassandra cluster port, defaults to None.
Returns:

The version for this Cassandra cluster.

Return type:

str

CLI Example:

salt 'minion1' cassandra_cql.version

salt 'minion1' cassandra_cql.version contact_points=minion1