override fun doHandle()

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
    }