in aws-ecs-server/src/main/kotlin/jetbrains/buildServer/clouds/ecs/web/EcsClusterChooserController.kt [28:45]
override fun doHandle(request: HttpServletRequest, response: HttpServletResponse): ModelAndView? {
val propsBean = BasePropertiesBean(null)
PluginPropertiesUtil.bindPropertiesFromRequest(request, propsBean, true)
val props = propsBean.properties
val modelAndView = ModelAndView(pluginDescriptor.getPluginResourcesPath("clusters.jsp"))
try {
val api = EcsApiConnectorImpl(props.toAwsCredentialsProvider(), AWSCommonParams.getRegionName(props))
modelAndView.model["clusters"] = api.listClusters()
.mapNotNull { clusterArn -> api.describeCluster(clusterArn) }
.sortedBy { cluster -> cluster.name }
modelAndView.model["error"] = ""
} catch (ex: Exception){
modelAndView.model["clusters"] = emptyList<EcsCluster>()
modelAndView.model["error"] = ex.localizedMessage
}
return modelAndView
}