Cassandra Database Module
New in version 2015.5.0.
This module works with Cassandra v2 and v3 and hence generates queries based on the internal schema of said version.
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 Changed in version 2016.11.0. Added support for Example configuration with ssl options: If cassandra: cluster: - 192.168.50.10 - 192.168.50.11 - 192.168.50.12 port: 9000 username: cas_admin ssl_options: ca_certs: /etc/ssl/certs/ca-bundle.trust.crt # SSL version should be one from the ssl module # This is an optional parameter ssl_version: PROTOCOL_TLSv1 Additionally you can also specify the cassandra:
cluster:
- 192.168.50.10
- 192.168.50.11
- 192.168.50.12
port: 9000
username: cas_admin
# defaults to 4, if not set
protocol_version: 3
|
Run a query on a Cassandra cluster and return a dictionary.
Parameters: |
|
---|---|
Returns: |
A dictionary from the return values of the query |
Return type: |
CLI Example:
salt 'cassandra-server' cassandra_cql.cql_query "SELECT * FROM users_by_name WHERE first_name = 'jane'"
Run a query on a Cassandra cluster and return a dictionary.
This function should not be used asynchronously for SELECTs -- it will not return anything and we don't currently have a mechanism for handling a future that will return results.
Parameters: |
|
---|---|
Returns: |
A dictionary from the return values of the query |
Return type: |
CLI Example:
# Insert data asynchronously salt this-node cassandra_cql.cql_query_with_prepare "name_insert" "INSERT INTO USERS (first_name, last_name) VALUES (?, ?)" statement_arguments=['John','Doe'], asynchronous=True # Select data, should not be asynchronous because there is not currently a facility to return data from a future salt this-node cassandra_cql.cql_query_with_prepare "name_select" "SELECT * FROM USERS WHERE first_name=?" statement_arguments=['John']
Create a new keyspace in Cassandra.
Parameters: |
|
---|---|
Returns: |
The info for the keyspace or False if it does not exist. |
Return type: |
CLI Example:
# CLI Example: 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}'
Create a new cassandra user with credentials and superuser status.
Parameters: |
|
---|---|
Returns: | |
Return type: |
CLI Example:
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
Drop a keyspace if it exists in a Cassandra cluster.
Parameters: |
|
---|---|
Returns: |
The info for the keyspace or False if it does not exist. |
Return type: |
CLI Example:
salt 'minion1' cassandra_cql.drop_keyspace keyspace=test salt 'minion1' cassandra_cql.drop_keyspace keyspace=test contact_points=minion1
Grant permissions to a user.
Parameters: |
|
---|---|
Returns: | |
Return type: |
CLI Example:
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
Show the Cassandra information for this cluster.
Parameters: |
|
---|---|
Returns: |
The information for this Cassandra cluster. |
Return type: |
CLI Example:
salt 'minion1' cassandra_cql.info salt 'minion1' cassandra_cql.info contact_points=minion1
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
List column families in a Cassandra cluster for all keyspaces or just the provided one.
Parameters: |
|
---|---|
Returns: |
The column families in this Cassandra cluster. |
Return type: |
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
List keyspaces in a Cassandra cluster.
Parameters: |
|
---|---|
Returns: |
The keyspaces in this Cassandra cluster. |
Return type: |
CLI Example:
salt 'minion1' cassandra_cql.list_keyspaces salt 'minion1' cassandra_cql.list_keyspaces contact_points=minion1 port=9000
List permissions.
Parameters: |
|
---|---|
Returns: |
Dictionary of permissions. |
Return type: |
CLI Example:
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
List existing users in this Cassandra cluster.
Parameters: |
|
---|---|
Returns: |
The list of existing users. |
Return type: |
CLI Example:
salt 'minion1' cassandra_cql.list_users salt 'minion1' cassandra_cql.list_users contact_points=minion1
Show the Cassandra version.
Parameters: |
|
---|---|
Returns: |
The version for this Cassandra cluster. |
Return type: |
CLI Example:
salt 'minion1' cassandra_cql.version salt 'minion1' cassandra_cql.version contact_points=minion1
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cassandra_cql.html