Skip to content

Commit df6cef9

Browse files
authored
Merge pull request cfpb#1109 from jmarin/cluster-roles
Cluster roles
2 parents 95d70d6 + da74714 commit df6cef9

File tree

81 files changed

+758
-642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+758
-642
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ cache:
88

99
language: scala
1010

11-
scala: 2.12.1
11+
scala: 2.12.3
1212

1313
jdk:
1414
- oraclejdk8

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ $ sbt
181181

182182
```shell
183183

184-
> project api
184+
> project cluster
185185
> clean
186186
> ~re-start
187187
```

api/src/main/resources/application-dev.conf

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,6 @@ akka {
55
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
66
http.parsing.max-content-length = 1G
77
http.server.default-host-header = "cfpb.gov"
8-
9-
actor {
10-
provider = cluster
11-
}
12-
13-
remote {
14-
log-remote-lifecycle-events = error
15-
netty.tcp {
16-
hostname = ${clustering.ip}
17-
port = ${clustering.port}
18-
}
19-
}
20-
21-
cluster {
22-
failure-detector.threshold = 12 //Increase value for AWS environments
23-
metrics.enabled = off
24-
}
25-
26-
extensions = ["de.heikoseeberger.constructr.ConstructrExtension"]
27-
28-
}
29-
30-
constructr.coordination.nodes = [${hmda.zookeeperHost}":"${hmda.zookeeperPort}]
31-
32-
clustering {
33-
name = "hmda"
34-
name = ${?HMDA_CLUSTER_NAME}
35-
ip = "127.0.0.1"
36-
port = 0
37-
port = ${?APP_PORT}
388
}
399

4010
hmda {
@@ -59,10 +29,6 @@ hmda {
5929
}
6030
isDemo = true
6131
actor-flow-parallelism = 4
62-
zookeeperHost = "192.168.99.100"
63-
zookeeperHost = ${?ZOOKEEPER_HOST}
64-
zookeeperPort = 2181
65-
zookeeperPort = ${?ZOOKEEPER_PORT}
6632
}
6733

6834

api/src/main/resources/application.conf

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,46 +5,6 @@ akka {
55
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
66
http.parsing.max-content-length = 1G
77
http.server.default-host-header = "cfpb.gov"
8-
9-
actor {
10-
provider = cluster
11-
}
12-
13-
remote {
14-
log-remote-lifecycle-events = error
15-
netty.tcp {
16-
hostname = ${clustering.ip}
17-
port = ${clustering.port}
18-
}
19-
}
20-
21-
cluster {
22-
failure-detector.threshold = 12 //Increase value for AWS environments
23-
metrics.enabled = off
24-
25-
retry-unsuccessful-join-after = 20s
26-
27-
http {
28-
management {
29-
hostname = "127.0.0.1"
30-
port = 9999
31-
}
32-
}
33-
34-
}
35-
36-
extensions = ["de.heikoseeberger.constructr.ConstructrExtension"]
37-
38-
}
39-
40-
constructr.coordination.nodes = [${hmda.zookeeperHost}":"${hmda.zookeeperPort}]
41-
42-
clustering {
43-
name = "hmda"
44-
name = ${?HMDA_CLUSTER_NAME}
45-
ip = "127.0.0.1"
46-
port = 0
47-
port = ${?APP_PORT}
488
}
499

5010
hmda {
@@ -69,10 +29,6 @@ hmda {
6929
}
7030
isDemo = false
7131
isDemo = ${?HMDA_IS_DEMO}
72-
zookeeperHost = "192.168.99.100"
73-
zookeeperHost = ${?ZOOKEEPER_HOST}
74-
zookeeperPort = 2181
75-
zookeeperPort = ${?ZOOKEEPER_PORT}
7632
}
7733

7834
api-dispatcher {

api/src/main/scala/hmda/api/HmdaAdminApi.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hmda.api
22

3-
import akka.actor.{ ActorSystem, Props }
3+
import akka.actor.{ ActorSystem, Props, ActorRef }
44
import akka.event.Logging
55
import akka.pattern.pipe
66
import akka.http.scaladsl.Http
@@ -16,10 +16,10 @@ import scala.concurrent.duration._
1616
import scala.concurrent.{ ExecutionContext, Future }
1717

1818
object HmdaAdminApi {
19-
def props(): Props = Props(new HmdaAdminApi)
19+
def props(supervisor: ActorRef, querySupervisor: ActorRef): Props = Props(new HmdaAdminApi(supervisor, querySupervisor))
2020
}
2121

22-
class HmdaAdminApi extends HttpApi with BaseHttpApi with InstitutionAdminHttpApi {
22+
class HmdaAdminApi(supervisor: ActorRef, querySupervisor: ActorRef) extends HttpApi with BaseHttpApi with InstitutionAdminHttpApi {
2323

2424
val config = ConfigFactory.load()
2525

@@ -36,7 +36,7 @@ class HmdaAdminApi extends HttpApi with BaseHttpApi with InstitutionAdminHttpApi
3636
override implicit val ec: ExecutionContext = context.dispatcher
3737
override val log = Logging(system, getClass)
3838

39-
override val paths: Route = routes(s"$name") ~ institutionAdminRoutes
39+
override val paths: Route = routes(s"$name") ~ institutionAdminRoutes(supervisor, querySupervisor)
4040

4141
override val http: Future[ServerBinding] = Http(system).bindAndHandle(
4242
paths,

api/src/main/scala/hmda/api/HmdaFilingApi.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package hmda.api
22

3-
import akka.actor.{ ActorSystem, Props }
3+
import akka.actor.{ ActorRef, ActorSystem, Props }
44
import akka.event.Logging
55
import akka.http.scaladsl.Http
66
import akka.http.scaladsl.Http.ServerBinding
@@ -10,15 +10,17 @@ import akka.pattern.pipe
1010
import akka.stream.ActorMaterializer
1111
import akka.util.Timeout
1212
import hmda.api.http.{ BaseHttpApi, HmdaCustomDirectives, InstitutionsHttpApi, LarHttpApi }
13-
import hmda.api.HmdaConfig._
13+
1414
import scala.concurrent.duration._
1515
import scala.concurrent.{ ExecutionContext, Future }
16+
import HmdaConfig._
1617

1718
object HmdaFilingApi {
18-
def props(): Props = Props(new HmdaFilingApi)
19+
def props(supervisor: ActorRef, querySupervisor: ActorRef, validationStats: ActorRef): Props =
20+
Props(new HmdaFilingApi(supervisor, querySupervisor, validationStats))
1921
}
2022

21-
class HmdaFilingApi
23+
class HmdaFilingApi(supervisor: ActorRef, querySupervisor: ActorRef, validationStats: ActorRef)
2224
extends HttpApi
2325
with BaseHttpApi
2426
with LarHttpApi
@@ -40,7 +42,7 @@ class HmdaFilingApi
4042
implicit val ec: ExecutionContext = context.dispatcher
4143
override val log = Logging(system, getClass)
4244

43-
val paths: Route = routes(s"$name") ~ larRoutes ~ institutionsRoutes
45+
val paths: Route = routes(s"$name") ~ institutionsRoutes(supervisor, querySupervisor, validationStats) ~ larRoutes(supervisor)
4446

4547
override val http: Future[ServerBinding] = Http(system).bindAndHandle(
4648
paths,

api/src/main/scala/hmda/api/HmdaPlatform.scala

Lines changed: 0 additions & 130 deletions
This file was deleted.

api/src/main/scala/hmda/api/HmdaPublicApi.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package hmda.api
22

33
import akka.actor.{ ActorRef, ActorSystem, Props }
44
import akka.event.Logging
5-
import akka.pattern.{ pipe, ask }
5+
import akka.pattern.{ ask, pipe }
66
import akka.http.scaladsl.Http
77
import akka.http.scaladsl.Http.ServerBinding
88
import akka.http.scaladsl.server.Route
@@ -14,7 +14,6 @@ import hmda.api.http.public.{ InstitutionSearchPaths, PublicHttpApi }
1414
import hmda.persistence.model.HmdaSupervisorActor.FindActorByName
1515
import hmda.query.view.institutions.InstitutionView
1616
import akka.http.scaladsl.server.Directives._
17-
1817
import scala.concurrent.duration._
1918
import scala.concurrent.{ ExecutionContext, Future }
2019

api/src/main/scala/hmda/api/http/InstitutionsHttpApi.scala

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package hmda.api.http
22

3+
import akka.actor.ActorRef
34
import akka.actor.ActorSystem
45
import akka.event.LoggingAdapter
56
import akka.http.scaladsl.server.Directives._
@@ -31,29 +32,29 @@ trait InstitutionsHttpApi
3132

3233
implicit val timeout: Timeout
3334

34-
val institutionsRoutes =
35+
def institutionsRoutes(supervisor: ActorRef, querySupervisor: ActorRef, validationStats: ActorRef) =
3536
extractExecutionContext { executor =>
3637
implicit val ec: ExecutionContext = executor
3738
encodeResponse {
3839
headerAuthorize {
39-
institutionsPath ~
40+
institutionsPath(querySupervisor) ~
4041
pathPrefix("institutions" / Segment) { instId =>
4142
institutionAuthorize(instId) {
42-
institutionByIdPath(instId) ~
43-
filingByPeriodPath(instId) ~
44-
submissionPath(instId) ~
45-
submissionLatestPath(instId) ~
46-
uploadPath(instId) ~
47-
submissionEditsPath(instId) ~
48-
submissionParseErrorsPath(instId) ~
49-
submissionEditCsvPath(instId) ~
50-
submissionSingleEditPath(instId) ~
51-
editFailureDetailsPath(instId) ~
52-
verifyEditsPath(instId) ~
53-
submissionIrsPath(instId) ~
54-
submissionIrsCsvPath(instId) ~
55-
submissionSignPath(instId) ~
56-
submissionSummaryPath(instId)
43+
institutionByIdPath(supervisor, querySupervisor, instId) ~
44+
filingByPeriodPath(supervisor, instId) ~
45+
submissionPath(supervisor, instId) ~
46+
submissionLatestPath(supervisor, instId) ~
47+
uploadPath(supervisor, querySupervisor, instId) ~
48+
submissionEditsPath(supervisor, querySupervisor, instId) ~
49+
submissionParseErrorsPath(supervisor, querySupervisor, instId) ~
50+
submissionEditCsvPath(supervisor, querySupervisor, instId) ~
51+
submissionSingleEditPath(supervisor, querySupervisor, instId) ~
52+
editFailureDetailsPath(supervisor, querySupervisor, instId) ~
53+
verifyEditsPath(supervisor, querySupervisor, instId) ~
54+
submissionIrsPath(supervisor, querySupervisor, validationStats, instId) ~
55+
submissionIrsCsvPath(supervisor, querySupervisor, validationStats, instId) ~
56+
submissionSignPath(supervisor, querySupervisor, instId) ~
57+
submissionSummaryPath(supervisor, querySupervisor, instId)
5758
}
5859
}
5960
}

0 commit comments

Comments
 (0)