Skip to content

Commit e668109

Browse files
author
Johannes Duesing
committed
Adapted registry interface to newest API version
1 parent e9b8daf commit e668109

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/main/scala/de/upb/cs/swt/delphi/crawler/instancemanagement/InstanceRegistry.scala

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
127127
private def register(configuration: Configuration) : Try[Long] = {
128128
val instance = createInstance(None,configuration.controlServerPort, configuration.instanceName)
129129

130-
Await.result(postInstance(instance, configuration.instanceRegistryUri + "/register")(configuration) map {response =>
130+
Await.result(postInstance(instance, configuration.instanceRegistryUri + "/instances/register")(configuration) map {response =>
131131
if(response.status == StatusCodes.OK){
132132
Await.result(Unmarshal(response.entity).to[String] map { assignedID =>
133133
val id = assignedID.toLong
@@ -155,7 +155,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
155155
Failure(new RuntimeException("Cannot get ElasticSearch instance from Instance Registry, no Instance Registry available."))
156156
} else {
157157
val request = HttpRequest(method = HttpMethods.GET, configuration.instanceRegistryUri +
158-
s"/matchingInstance?Id=${configuration.instanceId.getOrElse(-1)}&ComponentType=ElasticSearch")
158+
s"/instances/${configuration.instanceId.getOrElse(-1)}/matchingInstance?ComponentType=ElasticSearch")
159159

160160
Await.result(Http(system).singleRequest(request
161161
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt()(configuration)}"))) map {response =>
@@ -193,13 +193,17 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
193193
Failure(new RuntimeException("The ElasticSearch instance was not assigned by the Instance Registry, so no matching result will be posted."))
194194
} else {
195195
val idToPost = configuration.elasticSearchInstance.id.getOrElse(-1L)
196+
197+
val MatchingData = JsObject("MatchingSuccessful" -> JsBoolean(isElasticSearchReachable),
198+
"SenderId" -> JsNumber(configuration.instanceId.getOrElse(-1L)))
199+
196200
val request = HttpRequest(
197201
method = HttpMethods.POST,
198-
configuration.instanceRegistryUri +
199-
s"/matchingResult?CallerId=${configuration.instanceId.getOrElse(-1)}&MatchedInstanceId=$idToPost&MatchingSuccessful=$isElasticSearchReachable")
202+
configuration.instanceRegistryUri + s"/instances/$idToPost/matchingResult")
200203

201204
Await.result(Http(system).singleRequest(request
202-
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt()(configuration)}"))) map {response =>
205+
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt()(configuration)}"))
206+
.withEntity(ContentTypes.`application/json`, ByteString(MatchingData.toJson.toString))) map {response =>
203207
if(response.status == StatusCodes.OK){
204208
log.info("Successfully posted matching result to Instance Registry.")
205209
Success()
@@ -225,7 +229,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
225229
} else {
226230
val id : Long = configuration.instanceId.getOrElse(-1L)
227231

228-
val request = HttpRequest(method = HttpMethods.POST, configuration.instanceRegistryUri + s"/deregister?Id=$id")
232+
val request = HttpRequest(method = HttpMethods.POST, configuration.instanceRegistryUri + s"/instances/$id/deregister")
229233

230234
Await.result(Http(system).singleRequest(request
231235
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt()(configuration)}"))) map {response =>
@@ -247,10 +251,11 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
247251
}
248252

249253
def postInstance(instance : Instance, uri: String) (implicit configuration: Configuration) : Future[HttpResponse] = {
250-
Try(HttpRequest(method = HttpMethods.POST, uri = uri, entity = instance.toJson(instanceFormat).toString())) match {
254+
Try(HttpRequest(method = HttpMethods.POST, uri = uri)) match {
251255
//use generic name for startup, no id present at this point
252256
case Success(request) => Http(system).singleRequest(request
253-
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt(useGenericName = true)(configuration)}")))
257+
.withHeaders(RawHeader("Authorization", s"Bearer ${AuthProvider.generateJwt(useGenericName = true)(configuration)}"))
258+
.withEntity(ContentTypes.`application/json`, ByteString(instance.toJson(instanceFormat).toString)))
254259
case Failure(dx) =>
255260
log.warning(s"Failed to deregister to Instance Registry, exception: $dx")
256261
Future.failed(dx)
@@ -273,11 +278,11 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
273278
def toOperationUriString(operation: ReportOperationType.Value, id: Long) : String = {
274279
operation match {
275280
case Start =>
276-
s"/reportStart?Id=$id"
281+
s"/instances/$id/reportStart"
277282
case Stop =>
278-
s"/reportStop?Id=$id"
283+
s"/instances/$id/reportStop"
279284
case _ =>
280-
s"/reportFailure?Id=$id"
285+
s"/instances/$id/reportFailure"
281286
}
282287
}
283288
}

0 commit comments

Comments
 (0)