Skip to content

Commit

Permalink
Implement SSL option for command line app
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris O'Meara committed Jul 9, 2016
1 parent 8a21143 commit df71620
Show file tree
Hide file tree
Showing 10 changed files with 901 additions and 6 deletions.
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,21 @@ application.conf might look like the following:
acceptance_test {
cassandra-seed-address: "127.0.0.1"
cassandra-keyspace-name: "pillar_acceptance_test"
cassandra-port: "9042"
cassandra-ssl: "true"
}
}

[typesafeconfig]:https://github.com/typesafehub/config

Alternatively, Pillar accepts the Cassandra seed address from the CASSANDRA_SEED_ADDRESS environment variable. If set,
the CASSANDRA_SEED_ADDRESS environment variable takes precedence over application.conf.
Alternatively, Pillar accepts environment variable overrides according to the following table.

| Key | Environment Variable | Default |
|------------------------------------------------|----------------------|---------|
| pillar.\<store>.\<env>.cassandra-seed-address | PILLAR_SEED_ADDRESS | |
| pillar.\<store>.\<env>.cassandra-keyspace-name | | |
| pillar.\<store>.\<env>.cassandra-port | PILLAR_PORT | 9042 |
| pillar.\<store>.\<env>.cassandra-ssl | PILLAR_SSL | false |

Reference the acceptance spec suite for details.

Expand Down
18 changes: 14 additions & 4 deletions src/main/scala/com/chrisomeara/pillar/cli/App.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,21 @@ class App(reporter: Reporter) {
case Some(s) => s
case _ => getFromConfiguration(configuration, dataStoreName, environment, "cassandra-seed-address")
}
val port = Integer.valueOf(getFromConfiguration(configuration, dataStoreName, environment, "cassandra-port", Some(9042.toString)))
val builder = Cluster.builder().addContactPoint(seedAddress).withPort(port).build()
val port = Integer.valueOf(sys.env.get("PILLAR_PORT") match {
case Some(s) => s
case _ => getFromConfiguration(configuration, dataStoreName, environment, "cassandra-port", Some(9042.toString))
})
val builder = Cluster.builder().addContactPoint(seedAddress).withPort(port)
if(sys.env.get("PILLAR_SSL") match {
case Some(s) => s.toBoolean
case None => getFromConfiguration(configuration, dataStoreName, environment, "cassandra-ssl", Some("false")).toBoolean
}) {
builder.withSSL()
}
val cluster = builder.build()
val session = commandLineConfiguration.command match {
case Initialize => builder.connect()
case _ => builder.connect(keyspace)
case Initialize => cluster.connect()
case _ => cluster.connect(keyspace)
}
val command = Command(commandLineConfiguration.command, session, keyspace, commandLineConfiguration.timeStampOption, registry)

Expand Down
3 changes: 3 additions & 0 deletions src/test/resources/docker/cassandra-2.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM cassandra:2.1

ADD contents /

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Bag Attributes
friendlyName: test
localKeyID: 54 69 6D 65 20 31 34 36 38 30 32 34 39 32 31 35 32 39
subject=/C=None/L=None/O=None/OU=None/CN=test
issuer=/C=None/L=None/O=None/OU=None/CN=test
-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIEf319JjANBgkqhkiG9w0BAQsFADBLMQ0wCwYDVQQGEwRO
b25lMQ0wCwYDVQQHEwROb25lMQ0wCwYDVQQKEwROb25lMQ0wCwYDVQQLEwROb25l
MQ0wCwYDVQQDEwR0ZXN0MCAXDTE2MDcwOTAwMzg1M1oYDzIxMTYwNjE1MDAzODUz
WjBLMQ0wCwYDVQQGEwROb25lMQ0wCwYDVQQHEwROb25lMQ0wCwYDVQQKEwROb25l
MQ0wCwYDVQQLEwROb25lMQ0wCwYDVQQDEwR0ZXN0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAuUNTV3cmlGigfag9xUix3GHR8FAgIfDad1eHDo4TJxBe
0hJC/xagqdyo1xXzw5c2UA6e1/7+MN+EV1mxkleIRBFv8n4o7RfKl5xck8oz88lk
z9Y6gm0atjHXLrnIz8jChZ2pcobg4szd9QdATb34OAH81NjY3Cnm1cbl4Vcl8wQh
m2mTdMwpq1lMZhq/Lu0UONKk6K+0IhhStxoFm3pzF8VCzwMWLGC427Flp3ElnU1A
S/oy8YqMFkD1vYHrCK7oisQN3KOHqTtylFJeURCpNRQtVOQPJnOp9jHYOjNVoRrx
xbH7KwAc7JlKnKGmG7pHoAEMZpnv0jCvh01SUGQ+BQIDAQABoyEwHzAdBgNVHQ4E
FgQURAWuX8QHoxhRcw05hr9Vu5Kh+AgwDQYJKoZIhvcNAQELBQADggEBAJAULPGP
Q1Vx3KL6FVk2zs7WkySQ2JALl13p32B/Yr/5iMfkKHloC5rFc3mtWmA66gRLJ6+5
QIgaad8mrQEOMVEy4bDXhAQkPFBqRRGNHhkLT1phlJ2jfzZrp4InhH6JSD/0jXAB
wgrGs5VR6sBmrVyosPw8qeAFUIkv2m4VrwwyTNTgz6+dbHbThCrxrPoJd6v7fKIG
3ZrAlfd7CVMWvEVr59UGpByzSLwwOiLYQe06HGBGmGEqjW4w2/brSI2UObTvkKty
MLHlac5T+o4yMbPhqqw3+ErOZQ/MuiLSossjw2MRR/oR4kzkMZvcxevBwWLrouj1
I4ouw52O8gQPHPg=
-----END CERTIFICATE-----
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Bag Attributes
friendlyName: test
localKeyID: 54 69 6D 65 20 31 34 36 38 30 32 34 39 32 31 35 32 39
Key Attributes: <No Attributes>
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAuUNTV3cmlGigfag9xUix3GHR8FAgIfDad1eHDo4TJxBe0hJC
/xagqdyo1xXzw5c2UA6e1/7+MN+EV1mxkleIRBFv8n4o7RfKl5xck8oz88lkz9Y6
gm0atjHXLrnIz8jChZ2pcobg4szd9QdATb34OAH81NjY3Cnm1cbl4Vcl8wQhm2mT
dMwpq1lMZhq/Lu0UONKk6K+0IhhStxoFm3pzF8VCzwMWLGC427Flp3ElnU1AS/oy
8YqMFkD1vYHrCK7oisQN3KOHqTtylFJeURCpNRQtVOQPJnOp9jHYOjNVoRrxxbH7
KwAc7JlKnKGmG7pHoAEMZpnv0jCvh01SUGQ+BQIDAQABAoIBAEKqXnAn+SMIb1Ao
XWoDmbUjIiemvZlZEVRGk9wB9hRliKlxVthyLQhS1hLn3Fryq+GtES3KnW+6zuWb
6hEuHGPaHn2VNmby270o0AuChKViQDul7FIIrscHMlanFgLnTFBGhrYmoQAcFnbY
0CPpi0ukM3XoPkkjbuRYeVpYQNisc7UkVFkeKwG08CzIBVImOaH55P1v/Pt/CKcF
wSqonvCJRcDUtPJ1wOKlimQrq0RO00iqm1gn+IIx2DELwVr1cCbrFN00u8e5xiR3
PAEsMxCSixTEeRCcfceCePCuwRpGqUsPJXjwe18chUQhHaGLaur97IPO47/doq9W
qP9erYECgYEA6ynk9QVHHsURln0t9wY6SaN1GSp4DKENdpeFUbFDTH0q6orN21xF
GPJYTwLEWUpdUkPza8Qx7xHSH7AV3eggZtgWzsqn2XHbd3CxI0igDjWAwqJb+vdT
TveZfGTr8PjIL+U/7kcXIRmEY9q67jiyS6BIfOMofS3M2OimjTZd5aECgYEAya2O
5L2KtSp5O9AQcLqOCalKPBVaWqS5Of/Kza5L7qHlNeL7qqctCGOjkOuUvPQBv2yf
nsa/31SVoPMZPiym1QTp7gLB7jxZ+r7r2wN81jdjF8VDAi9kSJV92ynxR9Yfzq2b
AGUZZ9xU3hDvMunTeO2HenfNScvgl5KTnhkrteUCgYBARAS0CSs0d3qk+7SyC1um
gCsiI38HRIQfYq0mdCEGKDawPhqf1gl0FdaYURNDq5TxRGyjiMx0nxQjYMW5DRS9
xlQFU1Cnlfv6GivujoxfFbQIfMJSRYDY1cV2P0ZTZkme/TGJdpgVjZmmiEIJlCj1
jeoBZzrLatbOeFX7xV3HwQKBgGglQxwmMSHa3B4iFMtR2xVsIZSjZjRWyfwEdoL+
VeHWIppQK6v1hpDFe2rT7MwiqWBjxI3mjqDSei5SOx/bSQ/J6M9rByByc/jDbOJ9
i5LHqVlWGYNgW8YLxKFPqHRzQ5ukFN4AVz1GD2FZl1xQWU8iQgrhINbR/JnpLGfB
EcxtAoGBAKa/4+p/EpyTpTrdIsNpnATxglXr281Z8OqQW12SGi/cZHknKx6uj99g
IEb09CAJ5OEce947pOqmgoF4uuQ9rfFqghjMDkU+NYheofFpJtiKnzr7wefVwmLN
x53zt/MdzSsw5cYlHDGu2QrcvZqat/i+2Bs6fQ3XUjkh9nZyXmA6
-----END RSA PRIVATE KEY-----
Binary file not shown.
Binary file not shown.

0 comments on commit df71620

Please sign in to comment.