SDAP-292: Add cassandra auth support to delete_by_query.py script, and include the script in nexus-webapp docker image (#111)
diff --git a/docker/nexus-webapp/Dockerfile b/docker/nexus-webapp/Dockerfile
index e4f3b20..92df8d4 100644
--- a/docker/nexus-webapp/Dockerfile
+++ b/docker/nexus-webapp/Dockerfile
@@ -89,6 +89,8 @@
WORKDIR /incubator-sdap-nexus/analysis
RUN python setup.py install
+COPY tools /incubator-sdap-nexus/tools
+
# Upgrade kubernetes client jar from the default version
RUN rm /opt/spark/jars/kubernetes-client-4.1.2.jar
ADD https://repo1.maven.org/maven2/io/fabric8/kubernetes-client/4.4.2/kubernetes-client-4.4.2.jar /opt/spark/jars
diff --git a/tools/deletebyquery/deletebyquery.py b/tools/deletebyquery/deletebyquery.py
index f703448..6e24367 100644
--- a/tools/deletebyquery/deletebyquery.py
+++ b/tools/deletebyquery/deletebyquery.py
@@ -20,6 +20,7 @@
import uuid
from random import sample
+from cassandra.auth import PlainTextAuthProvider
import cassandra.concurrent
from cassandra.cluster import Cluster
from cassandra.policies import RoundRobinPolicy, TokenAwarePolicy
@@ -52,10 +53,16 @@
dc_policy = RoundRobinPolicy()
token_policy = TokenAwarePolicy(dc_policy)
+ if args.cassandraUsername and args.cassandraPassword:
+ auth_provider = PlainTextAuthProvider(username=args.cassandraUsername, password=args.cassandraPassword)
+ else:
+ auth_provider = None
+
global cassandra_cluster
cassandra_cluster = Cluster(contact_points=args.cassandra, port=args.cassandraPort,
protocol_version=int(args.cassandraProtocolVersion),
- load_balancing_policy=token_policy)
+ load_balancing_policy=token_policy,
+ auth_provider=auth_provider)
global cassandra_session
cassandra_session = cassandra_cluster.connect(keyspace=args.cassandraKeyspace)
@@ -237,6 +244,14 @@
required=False,
default='9042')
+ parser.add_argument('--cassandraUsername',
+ help='The username used to connect to Cassandra.',
+ required=False)
+
+ parser.add_argument('--cassandraPassword',
+ help='The password used to connect to Cassandra.',
+ required=False)
+
parser.add_argument('-pv', '--cassandraProtocolVersion',
help='The version of the Cassandra protocol the driver should use.',
required=False,