Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rahasak.cminer.db
- import java.io.File
- import com.datastax.driver.core.{Cluster, _}
- import io.netty.handler.ssl.SslContextBuilder
- import org.apache.commons.io.FileUtils
- trait CassandraCluster {
- lazy val cluster: Cluster = {
- val builder = Cluster.builder()
- builder.addContactPoint("10.4.1.5")
- builder.withPort(9042)
- addSsl(builder)
- addAuth(builder, "rahasak", "rahasak")
- builder.build()
- }
- lazy val session: Session = cluster.connect()
- // add ssl config
- def addSsl(builder: Cluster.Builder): Unit = {
- val pem = File.createTempFile("cacert", "pem")
- val is = getClass.getResourceAsStream("/ca.pem")
- FileUtils.copyInputStreamToFile(is, pem)
- is.close()
- val sslCtxBuilder = SslContextBuilder.forClient().trustManager(pem)
- builder.withSSL(new RemoteEndpointAwareNettySSLOptions(sslCtxBuilder.build()))
- }
- // add cassandra username/password
- def addAuth(builder: Cluster.Builder, username: String, password: String): Unit = {
- builder.withCredentials(username, password)
- }
- }
Add Comment
Please, Sign In to add comment