package com.intrbiz.bergamot.ui.router.admin; import java.util.stream.Collectors; import com.intrbiz.balsa.engine.route.Router; import com.intrbiz.balsa.metadata.WithDataAdapter; import com.intrbiz.bergamot.config.model.ClusterCfg; import com.intrbiz.bergamot.data.BergamotDB; import com.intrbiz.bergamot.metadata.GetBergamotSite; import com.intrbiz.bergamot.model.Site; import com.intrbiz.bergamot.ui.BergamotApp; import com.intrbiz.configuration.Configuration; import com.intrbiz.metadata.Any; import com.intrbiz.metadata.Prefix; import com.intrbiz.metadata.RequirePermission; import com.intrbiz.metadata.RequireValidPrincipal; import com.intrbiz.metadata.Template; @Prefix("/admin/cluster") @Template("layout/main") @RequireValidPrincipal() @RequirePermission("ui.admin") public class ClusterAdminRouter extends Router<BergamotApp> { @Any("/") @WithDataAdapter(BergamotDB.class) public void index(BergamotDB db, @GetBergamotSite() Site site) { model("clusters", db.listClusters(site.getId()).stream().filter((c) -> permission("read.config", c.getId())).collect(Collectors.toList())); model("cluster_templates", db.listConfigTemplates(site.getId(), Configuration.getRootElement(ClusterCfg.class)).stream().filter((c) -> permission("read.config", c.getId())).collect(Collectors.toList())); encode("admin/cluster/index"); } }