Loading app/controllers/GetIndexSettings.scala→app/controllers/GetIndexSettingsController.scala +1 −1 Original line number Diff line number Diff line package controllers class GetIndexSettings extends ElasticActionController { class GetIndexSettingsController extends ElasticActionController { def processElasticRequest = (request, client) => client.getIndexSettings(request.get("index"), request.host) Loading conf/routes +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ POST /apis/optimize_indices @controllers.OptimizeIndexControlle POST /apis/clear_indices_cache @controllers.ClearIndexCacheController.execute POST /apis/refresh_indices @controllers.RefreshIndexController.execute POST /apis/delete_indices @controllers.DeleteIndexController.execute POST /apis/get_index_settings @controllers.GetIndexSettings.execute POST /apis/get_index_settings @controllers.GetIndexSettingsController.execute POST /apis/get_index_mapping @controllers.GetIndexMappingController.execute POST /apis/update_cluster_settings @controllers.PutClusterSettings.execute POST /apis/get_node_stats @controllers.NodeStatsController.execute Loading test/controllers/GetIndexSettingsControllerSpec.scala 0 → 100644 +61 −0 Original line number Diff line number Diff line package controllers import elastic.{ElasticResponse, ElasticClient} import exceptions.MissingRequiredParamException import models.CerebroRequest import org.specs2.Specification import org.specs2.mock.Mockito import play.api.libs.json.Json import play.api.test.FakeApplication import scala.concurrent.duration.Duration import scala.concurrent.{Await, Future} object GetIndexSettingsControllerSpec extends Specification with Mockito { def is = s2""" GetIndexSettingsController should ${step(play.api.Play.start(FakeApplication()))} invoke getIndexSettings $getIndexSettings should throw exception if index param is missing $missingIndex ${step(play.api.Play.stop(FakeApplication()))} """ val controller = new GetIndexSettingsController def getIndexSettings = { val expectedResponse = Json.parse( """ |{ | "someIndex": { | "settings": { | "index": { | "creation_date": "1459675569309", | "number_of_shards": "5", | "number_of_replicas": "1", | "uuid": "6sN-tL30Sfyz_tW0iVqVPQ", | "version": { | "created": "2030099" | } | } | } | } |} """.stripMargin ) val body = Json.obj("host" -> "somehost", "index" -> "someIndex") val client = mock[ElasticClient] client.getIndexSettings("someIndex", "somehost") returns Future.successful(ElasticResponse(200, expectedResponse)) val response = Await.result(controller.processElasticRequest(CerebroRequest(body), client), Duration("1s")) there was one(client).getIndexSettings("someIndex", "somehost") response.body mustEqual expectedResponse response.status mustEqual 200 } def missingIndex = { val body = Json.obj("host" -> "somehost") val client = mock[ElasticClient] controller.processElasticRequest(CerebroRequest(body), client) must throwA[MissingRequiredParamException] } } Loading
app/controllers/GetIndexSettings.scala→app/controllers/GetIndexSettingsController.scala +1 −1 Original line number Diff line number Diff line package controllers class GetIndexSettings extends ElasticActionController { class GetIndexSettingsController extends ElasticActionController { def processElasticRequest = (request, client) => client.getIndexSettings(request.get("index"), request.host) Loading
conf/routes +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ POST /apis/optimize_indices @controllers.OptimizeIndexControlle POST /apis/clear_indices_cache @controllers.ClearIndexCacheController.execute POST /apis/refresh_indices @controllers.RefreshIndexController.execute POST /apis/delete_indices @controllers.DeleteIndexController.execute POST /apis/get_index_settings @controllers.GetIndexSettings.execute POST /apis/get_index_settings @controllers.GetIndexSettingsController.execute POST /apis/get_index_mapping @controllers.GetIndexMappingController.execute POST /apis/update_cluster_settings @controllers.PutClusterSettings.execute POST /apis/get_node_stats @controllers.NodeStatsController.execute Loading
test/controllers/GetIndexSettingsControllerSpec.scala 0 → 100644 +61 −0 Original line number Diff line number Diff line package controllers import elastic.{ElasticResponse, ElasticClient} import exceptions.MissingRequiredParamException import models.CerebroRequest import org.specs2.Specification import org.specs2.mock.Mockito import play.api.libs.json.Json import play.api.test.FakeApplication import scala.concurrent.duration.Duration import scala.concurrent.{Await, Future} object GetIndexSettingsControllerSpec extends Specification with Mockito { def is = s2""" GetIndexSettingsController should ${step(play.api.Play.start(FakeApplication()))} invoke getIndexSettings $getIndexSettings should throw exception if index param is missing $missingIndex ${step(play.api.Play.stop(FakeApplication()))} """ val controller = new GetIndexSettingsController def getIndexSettings = { val expectedResponse = Json.parse( """ |{ | "someIndex": { | "settings": { | "index": { | "creation_date": "1459675569309", | "number_of_shards": "5", | "number_of_replicas": "1", | "uuid": "6sN-tL30Sfyz_tW0iVqVPQ", | "version": { | "created": "2030099" | } | } | } | } |} """.stripMargin ) val body = Json.obj("host" -> "somehost", "index" -> "someIndex") val client = mock[ElasticClient] client.getIndexSettings("someIndex", "somehost") returns Future.successful(ElasticResponse(200, expectedResponse)) val response = Await.result(controller.processElasticRequest(CerebroRequest(body), client), Duration("1s")) there was one(client).getIndexSettings("someIndex", "somehost") response.body mustEqual expectedResponse response.status mustEqual 200 } def missingIndex = { val body = Json.obj("host" -> "somehost") val client = mock[ElasticClient] controller.processElasticRequest(CerebroRequest(body), client) must throwA[MissingRequiredParamException] } }