override fun doHandle()

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
    }