in aws-ecs-server/src/main/kotlin/jetbrains/buildServer/clouds/ecs/web/EcsTaskDefinitionChooserController.kt [28:48]
override fun doHandle(request: HttpServletRequest, response: HttpServletResponse): ModelAndView? {
val launchType = request.getParameter("launchType")
val propsBean = BasePropertiesBean(null)
PluginPropertiesUtil.bindPropertiesFromRequest(request, propsBean, true)
val props = propsBean.properties
val modelAndView = ModelAndView(pluginDescriptor.getPluginResourcesPath("taskDefs.jsp"))
try {
val api = EcsApiConnectorImpl(props.toAwsCredentialsProvider(), AWSCommonParams.getRegionName(props))
val sortedTasDefs = api.listTaskDefinitions()
.mapNotNull { taskDefArn -> api.describeTaskDefinition(taskDefArn) }
.filter { taskDef -> taskDef.isCompatibleWithLaunchType(launchType) }
.sortedBy { taskDef -> taskDef.displayName }
modelAndView.model["taskDefs"] = sortedTasDefs
modelAndView.model["error"] = ""
} catch (ex: Exception){
modelAndView.model["taskDefs"] = emptyList<EcsTaskDefinition>()
modelAndView.model["error"] = ex.localizedMessage
}
return modelAndView
}