package org.ovirt.engine.api.utils; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; import java.util.List; import org.ovirt.engine.api.model.DetailedLink; import org.ovirt.engine.api.model.Link; import org.ovirt.engine.api.model.Parameter; import org.ovirt.engine.api.model.ParametersSet; import org.ovirt.engine.api.utils.LinkCreator.LinkFlags; public class ApiRootLinksCreator { public static List<String> getAllRels(String baseUri) { List<String> rels = new ArrayList<>(); for (Link link : getLinks(baseUri)) { rels.add(link.getRel()); } return rels; } public static List<String> getGlusterRels(String baseUri) { List<String> rels = new ArrayList<>(); for (Link link : getGlusterLinks(baseUri)) { rels.add(link.getRel()); } return rels; } public static Collection<DetailedLink> getLinks(String baseUri) { Collection<DetailedLink> links = new LinkedList<>(); links.add(createLink("clusters", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("datacenters", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("events", LinkFlags.SEARCHABLE, getEventParams(), baseUri)); links.add(createLink("hosts", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("networks", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("roles", baseUri)); links.add(createLink("storagedomains", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("tags", baseUri)); links.add(createLink("bookmarks", baseUri)); links.add(createLink("icons", baseUri)); links.add(createLink("templates", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("instancetypes", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("users", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("groups", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("domains", baseUri)); links.add(createLink("vmpools", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("vms", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("disks", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("jobs", baseUri)); links.add(createLink("storageconnections", baseUri)); links.add(createLink("vnicprofiles", baseUri)); links.add(createLink("diskprofiles", baseUri)); links.add(createLink("cpuprofiles", baseUri)); links.add(createLink("schedulingpolicyunits", baseUri)); links.add(createLink("schedulingpolicies", baseUri)); links.add(createLink("permissions", baseUri)); links.add(createLink("macpools", baseUri)); links.add(createLink("networkfilters", baseUri)); links.add(createLink("operatingsystems", baseUri)); links.add(createLink("externalhostproviders", baseUri)); links.add(createLink("openstackimageproviders", baseUri)); links.add(createLink("openstackvolumeproviders", baseUri)); links.add(createLink("openstacknetworkproviders", baseUri)); links.add(createLink("katelloerrata", baseUri)); links.add(createLink("affinitylabels", baseUri)); links.add(createLink("clusterlevels", baseUri)); links.add(createLink("imagetransfers", baseUri)); links.add(createLink("externalvmimports", baseUri)); return links; } public static Collection<DetailedLink> getGlusterLinks(String baseUri) { Collection<DetailedLink> links = new LinkedList<>(); links.add(createLink("clusters", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("events", LinkFlags.SEARCHABLE, getEventParams(), baseUri)); links.add(createLink("hosts", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("networks", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("roles", baseUri)); links.add(createLink("tags", baseUri)); links.add(createLink("users", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("groups", LinkFlags.SEARCHABLE, baseUri)); links.add(createLink("domains", baseUri)); return links; } private static DetailedLink createLink(String rel, LinkFlags flags, String baseUri) { return LinkCreator.createLink(baseUri, rel, flags); } private static DetailedLink createLink(String rel, LinkFlags flags, ParametersSet params, String baseUri) { return LinkCreator.createLink(baseUri, rel, flags, params); } private static DetailedLink createLink(String rel, String baseUri) { return LinkCreator.createLink(baseUri, rel, LinkFlags.NONE); } private static ParametersSet getEventParams() { ParametersSet ps = new ParametersSet(); Parameter param = new Parameter(); param.setName("from"); param.setValue("event_id"); ps.getParameters().add(param); return ps; } }