Skip to content

Commit 7d6094f

Browse files
author
Johannes Duesing
committed
Adapted registry interface to newest API version
1 parent c86bd33 commit 7d6094f

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

app/utils/instancemanagement/InstanceRegistry.scala

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
121121
def register(configuration: Configuration) : Try[Long] = {
122122
val instance = createInstance(None,configuration.bindPort, configuration.instanceName, None, InstanceState.Running)
123123

124-
Await.result(postInstance(instance, configuration.instanceRegistryUri + "/register") map {response =>
124+
Await.result(postInstance(instance, configuration.instanceRegistryUri + "/instances/register") map {response =>
125125
if(response.status == StatusCodes.OK){
126126
Await.result(Unmarshal(response.entity).to[String] map { assignedID =>
127127
val id = assignedID.toLong
@@ -149,7 +149,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
149149
Failure(new RuntimeException("Cannot get WebApi instance from Instance Registry, no Instance Registry available."))
150150
} else {
151151
val request = HttpRequest(method = HttpMethods.GET, configuration.instanceRegistryUri +
152-
s"/matchingInstance?Id=${configuration.assignedID.getOrElse(-1)}&ComponentType=WebApi")
152+
s"/instances/${configuration.assignedID.getOrElse(-1)}/matchingInstance?ComponentType=WebApi")
153153

154154
Await.result(Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}"))) map {response =>
155155
response.status match {
@@ -187,12 +187,18 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
187187
Failure(new RuntimeException("The WebApi instance was not assigned by the Instance Registry, so no matching result will be posted."))
188188
} else {
189189
val idToPost = configuration.webApiInstance.id.getOrElse(-1L)
190+
191+
val MatchingData = JsObject("MatchingSuccessful" -> JsBoolean(isWebApiReachable),
192+
"SenderId" -> JsNumber(configuration.assignedID.getOrElse(-1L)))
193+
190194
val request = HttpRequest(
191195
method = HttpMethods.POST,
192-
configuration.instanceRegistryUri +
193-
s"/matchingResult?CallerId=${configuration.assignedID.getOrElse(-1)}&MatchedInstanceId=$idToPost&MatchingSuccessful=$isWebApiReachable")
196+
configuration.instanceRegistryUri + s"/instances/$idToPost/matchingResult")
197+
198+
Await.result(Http(system).singleRequest(request
199+
.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}"))
200+
.withEntity(ContentTypes.`application/json`, ByteString(MatchingData.toJson.toString))) map {response =>
194201

195-
Await.result(Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}"))) map {response =>
196202
if(response.status == StatusCodes.OK){
197203
log.info("Successfully posted matching result to Instance Registry.")
198204
Success()
@@ -238,7 +244,7 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
238244
} else {
239245
val id : Long = configuration.assignedID.getOrElse(-1L)
240246

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

243249
Await.result(Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt()}"))) map {response =>
244250
if(response.status == StatusCodes.OK){
@@ -259,9 +265,11 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
259265
}
260266

261267
def postInstance(instance : Instance, uri: String) () : Future[HttpResponse] = {
262-
val request = HttpRequest(method = HttpMethods.POST, uri = uri, entity = instance.toJson(instanceFormat).toString())
268+
val request = HttpRequest(method = HttpMethods.POST, uri = uri)
263269
//use generic name for startup, no id present at this point
264-
Try(Http(system).singleRequest(request.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt(useGenericName = true)}")))) match {
270+
Try(Http(system).singleRequest(request
271+
.withHeaders(RawHeader("Authorization",s"Bearer ${AuthProvider.generateJwt(useGenericName = true)}"))
272+
.withEntity(ContentTypes.`application/json`, ByteString(instance.toJson(instanceFormat).toString)))) match {
265273
case Success(res) =>
266274
res
267275
case Failure(ex) =>
@@ -285,11 +293,11 @@ object InstanceRegistry extends InstanceJsonSupport with AppLogging
285293
def toOperationUriString(operation: ReportOperationType.Value, id: Long) : String = {
286294
operation match {
287295
case Start =>
288-
s"/reportStart?Id=$id"
296+
s"/instances/$id/reportStart"
289297
case Stop =>
290-
s"/reportStop?Id=$id"
298+
s"/instances/$id/reportStop"
291299
case _ =>
292-
s"/reportFailure?Id=$id"
300+
s"/instances/$id/reportFailure"
293301
}
294302
}
295303
}

0 commit comments

Comments
 (0)