Skip to content

Commit c2441e8

Browse files
authored
Merge pull request #33 from delphi-hub/feature/newMatchingInterface
Adapt WebApi to latest changes in the registry
2 parents 7b5e1f2 + d2f3ac7 commit c2441e8

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

src/main/scala/de/upb/cs/swt/delphi/instancemanagement/Instance.scala

+3-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ trait JsonSupport extends SprayJsonSupport with DefaultJsonProtocol {
5454
}
5555
}
5656

57-
implicit val instanceFormat : JsonFormat[Instance] = jsonFormat7(Instance)
57+
implicit val instanceFormat : JsonFormat[Instance] = jsonFormat8(Instance)
5858
}
5959

6060
final case class Instance (
@@ -64,7 +64,8 @@ final case class Instance (
6464
name: String,
6565
componentType: InstanceEnums.ComponentType,
6666
dockerId: Option[String],
67-
instanceState: InstanceEnums.State
67+
instanceState: InstanceEnums.State,
68+
labels: List[String]
6869
)
6970
object InstanceEnums {
7071
type ComponentType = ComponentType.Value

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

+8-7
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ object InstanceRegistry extends JsonSupport with AppLogging
147147
if(!configuration.usingInstanceRegistry) {
148148
Failure(new RuntimeException("Cannot get ElasticSearch instance from Instance Registry, no Instance Registry available."))
149149
} else {
150-
val request = HttpRequest(method = HttpMethods.GET, configuration.instanceRegistryUri + "/matchingInstance?ComponentType=ElasticSearch")
150+
val request = HttpRequest(method = HttpMethods.GET,
151+
configuration.instanceRegistryUri +
152+
s"/matchingInstance?Id=${configuration.assignedID.getOrElse(-1)}&ComponentType=ElasticSearch")
151153

152154
Await.result(Http(system).singleRequest(request) map {response =>
153155
response.status match {
@@ -189,18 +191,17 @@ object InstanceRegistry extends JsonSupport with AppLogging
189191
val idToPost = configuration.elasticsearchInstance.id.getOrElse(-1L)
190192
val request = HttpRequest(
191193
method = HttpMethods.POST,
192-
configuration.instanceRegistryUri + s"/matchingResult?Id=$idToPost&MatchingSuccessful=$isElasticSearchReachable")
194+
configuration.instanceRegistryUri +
195+
s"/matchingResult?CallerId=${configuration.assignedID.getOrElse(-1)}&MatchedInstanceId=$idToPost&MatchingSuccessful=$isElasticSearchReachable")
193196

194197
Await.result(Http(system).singleRequest(request) map {response =>
195-
val status=response.status
196198
if(response.status == StatusCodes.OK){
197199
log.info(s"Successfully posted matching result to Instance Registry.")
198200
Success()
199201
}
200202
else {
201-
val statuscode = response.status
202-
log.warning(s"Failed to post matching result to Instance Registry, server returned $statuscode")
203-
Failure(new RuntimeException(s"Failed to post matching result to Instance Registry, server returned $statuscode"))
203+
log.warning(s"Failed to post matching result to Instance Registry, server returned ${response.status}")
204+
Failure(new RuntimeException(s"Failed to post matching result to Instance Registry, server returned ${response.status}"))
204205
}
205206

206207
} recover {case ex =>
@@ -252,7 +253,7 @@ object InstanceRegistry extends JsonSupport with AppLogging
252253

253254
private def createInstance(id: Option[Long], controlPort : Int, name : String) : Instance =
254255
Instance(id, InetAddress.getLocalHost.getHostAddress,
255-
controlPort, name, ComponentType.WebApi, None, InstanceState.Running)
256+
controlPort, name, ComponentType.WebApi, None, InstanceState.Running, List.empty[String])
256257

257258
def reportStart(id: String, configuration: Configuration):Try[ResponseEntity] ={
258259
val request = HttpRequest(method = HttpMethods.GET, configuration.instanceRegistryUri + "/reportStart")

src/main/scala/de/upb/cs/swt/delphi/webapi/Configuration.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class Configuration( //Server and Elasticsearch configuration
4949
"Default ElasticSearch instance",
5050
ComponentType.ElasticSearch,
5151
None,
52-
InstanceState.Running)
52+
InstanceState.Running,
53+
List.empty[String])
5354
}
5455
val defaultElasticSearchPort: Int = 9200
5556
val defaultElasticSearchHost: String = "elasticsearch://localhost"

0 commit comments

Comments
 (0)