@@ -2,24 +2,25 @@ package de.upb.cs.swt.delphi.instancemanagement
22
33import java .net .InetAddress
44
5+ import akka .actor .ActorSystem
56import akka .http .scaladsl .Http
67import akka .http .scaladsl .marshalling .Marshal
78import akka .http .scaladsl .model ._
89import akka .http .scaladsl .unmarshalling .Unmarshal
10+ import akka .stream .ActorMaterializer
911import de .upb .cs .swt .delphi .instancemanagement .InstanceEnums .ComponentType
1012import de .upb .cs .swt .delphi .webapi .{AppLogging , Configuration , Server }
1113
12-
13- import scala .concurrent .{Await , Future }
14+ import scala .concurrent .{Await , ExecutionContext , Future }
1415import scala .concurrent .duration .Duration
1516import scala .util .{Failure , Success , Try }
1617
1718object InstanceRegistry extends JsonSupport with AppLogging
1819{
1920
20- implicit val system = Server .system
21- implicit val ec = system.dispatcher
22- implicit val materializer = Server .materializer
21+ implicit val system : ActorSystem = Server .system
22+ implicit val ec : ExecutionContext = system.dispatcher
23+ implicit val materializer : ActorMaterializer = Server .materializer
2324
2425
2526 def register (configuration : Configuration ) : Try [Long ] = {
@@ -59,8 +60,8 @@ object InstanceRegistry extends JsonSupport with AppLogging
5960 if (status == StatusCodes .OK ) {
6061
6162 Await .result(Unmarshal (response.entity).to[Instance ] map {instance =>
62- val elasticIP = instance.iP
63- log.info(s " Instance Registry assigned ElasticSearch instance at ${ elasticIP.getOrElse( " None " )} " )
63+ val elasticIP = instance.host
64+ log.info(s " Instance Registry assigned ElasticSearch instance at $elasticIP" )
6465 Success (instance)
6566 } recover {case ex =>
6667 log.warning(s " Failed to read response from Instance Registry, exception: $ex" )
@@ -85,10 +86,10 @@ object InstanceRegistry extends JsonSupport with AppLogging
8586 if (configuration.elasticsearchInstance.iD.isEmpty) {
8687 Failure (new RuntimeException (" Cannot post matching result to Instance Registry, assigned ElasticSearch instance has no ID." ))
8788 } else {
88- val IdToPost = configuration.elasticsearchInstance.iD.get
89+ val idToPost = configuration.elasticsearchInstance.iD.getOrElse( - 1L )
8990 val request = HttpRequest (
9091 method = HttpMethods .POST ,
91- configuration.instanceRegistryUri + s " /matchingResult?Id= $IdToPost &MatchingSuccessful= $isElasticSearchReachable" )
92+ configuration.instanceRegistryUri + s " /matchingResult?Id= $idToPost &MatchingSuccessful= $isElasticSearchReachable" )
9293
9394 Await .result(Http (system).singleRequest(request) map {response =>
9495 if (response.status == StatusCodes .OK ){
@@ -114,7 +115,7 @@ object InstanceRegistry extends JsonSupport with AppLogging
114115 if (! configuration.usingInstanceRegistry){
115116 Failure (new RuntimeException (" Cannot deregister from Instance Registry, no Instance Registry available." ))
116117 } else {
117- val id : Long = configuration.assignedID.get
118+ val id : Long = configuration.assignedID.getOrElse( - 1L )
118119
119120 val request = HttpRequest (method = HttpMethods .POST , configuration.instanceRegistryUri + s " /deregister?Id= $id" )
120121
@@ -144,5 +145,5 @@ object InstanceRegistry extends JsonSupport with AppLogging
144145
145146
146147 private def createInstance (id : Option [Long ], controlPort : Int , name : String ) : Instance =
147- Instance (id, Option ( InetAddress .getLocalHost.getHostAddress), Option ( controlPort), Option ( name), Option ( ComponentType .Crawler ) )
148+ Instance (id, InetAddress .getLocalHost.getHostAddress, controlPort, name, ComponentType .WebApi )
148149}
0 commit comments