Search in sources :

Example 1 with V3Link

use of org.ovirt.engine.api.v3.types.V3Link in project ovirt-engine by oVirt.

the class V3SystemServer method replaceLinkHeader.

private Response replaceLinkHeader(Response response) {
    Object entity = response.getEntity();
    if (entity != null && entity instanceof V3API) {
        V3API api = (V3API) entity;
        List<V3Link> links = api.getLinks();
        if (links != null) {
            String root = CurrentManager.get().getRoot();
            String header = links.stream().map(link -> String.format("<%s%s>; rel=%s", root, link.getHref(), link.getRel())).collect(joining(","));
            response = Response.fromResponse(response).header("Link", null).header("Link", header).build();
        }
    }
    return response;
}
Also used : PathParam(javax.ws.rs.PathParam) SystemResource(org.ovirt.engine.api.resource.SystemResource) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) V3Action(org.ovirt.engine.api.v3.types.V3Action) Path(javax.ws.rs.Path) CurrentManager(org.ovirt.engine.api.restapi.invocation.CurrentManager) Actionable(org.ovirt.engine.api.model.Actionable) V3Server(org.ovirt.engine.api.v3.V3Server) RsdlLoader(org.ovirt.engine.api.restapi.rsdl.RsdlLoader) Consumes(javax.ws.rs.Consumes) POST(javax.ws.rs.POST) Context(javax.ws.rs.core.Context) IOException(java.io.IOException) ParametersHelper(org.ovirt.engine.api.restapi.util.ParametersHelper) Collectors.joining(java.util.stream.Collectors.joining) V3RSDL(org.ovirt.engine.api.v3.types.V3RSDL) List(java.util.List) V3API(org.ovirt.engine.api.v3.types.V3API) HttpHeaders(javax.ws.rs.core.HttpHeaders) Response(javax.ws.rs.core.Response) WebApplicationException(javax.ws.rs.WebApplicationException) UriInfo(javax.ws.rs.core.UriInfo) V3Link(org.ovirt.engine.api.v3.types.V3Link) HEAD(javax.ws.rs.HEAD) V3Link(org.ovirt.engine.api.v3.types.V3Link) V3API(org.ovirt.engine.api.v3.types.V3API)

Example 2 with V3Link

use of org.ovirt.engine.api.v3.types.V3Link in project ovirt-engine by oVirt.

the class V3LinkHelper method addLink.

/**
 * Adds to the given list a link composed from the given {@code rel} and an {@code href} calculated using the given
 * segments. For example, if the rel is {@code import} and the segments are {@code vms}, {@code 123} and
 * {@code disks} the link added will be {@code <link rel="disks" href="/ovirt-engine/api/v3/vms/123/disks"/>}.
 */
public static void addLink(List<V3Link> links, String rel, String... segments) {
    V3Link link = new V3Link();
    link.setHref(linkHref(segments));
    link.setRel(rel);
    links.add(link);
}
Also used : V3Link(org.ovirt.engine.api.v3.types.V3Link)

Example 3 with V3Link

use of org.ovirt.engine.api.v3.types.V3Link in project ovirt-engine by oVirt.

the class V3ApiOutAdapter method makeCapabilitiesLink.

private V3Link makeCapabilitiesLink() {
    // Calculate the href:
    Current current = CurrentManager.get();
    String href = current.getAbsolutePath("capabilities");
    // Make the link:
    V3Link link = new V3Link();
    link.setRel("capabilities");
    link.setHref(href);
    return link;
}
Also used : V3Link(org.ovirt.engine.api.v3.types.V3Link) Current(org.ovirt.engine.api.restapi.invocation.Current)

Example 4 with V3Link

use of org.ovirt.engine.api.v3.types.V3Link in project ovirt-engine by oVirt.

the class V3LinkInAdapter method adapt.

@Override
public Link adapt(V3Link from) {
    Link to = new Link();
    to.setHref(from.getHref());
    to.setRel(from.getRel());
    return to;
}
Also used : Link(org.ovirt.engine.api.model.Link) V3Link(org.ovirt.engine.api.v3.types.V3Link)

Example 5 with V3Link

use of org.ovirt.engine.api.v3.types.V3Link in project ovirt-engine by oVirt.

the class V3SpecialObjectsOutAdapter method adapt.

@Override
public V3SpecialObjects adapt(SpecialObjects from) {
    V3SpecialObjects to = new V3SpecialObjects();
    Template blankTemplate = from.getBlankTemplate();
    if (blankTemplate != null) {
        V3Link blankTemplateLink = new V3Link();
        blankTemplateLink.setRel("templates/blank");
        blankTemplateLink.setHref(blankTemplate.getHref());
        to.getLinks().add(blankTemplateLink);
    }
    Tag rootTag = from.getRootTag();
    if (rootTag != null) {
        V3Link rootTagLink = new V3Link();
        rootTagLink.setRel("tags/root");
        rootTagLink.setHref(rootTag.getHref());
        to.getLinks().add(rootTagLink);
    }
    return to;
}
Also used : V3Link(org.ovirt.engine.api.v3.types.V3Link) V3SpecialObjects(org.ovirt.engine.api.v3.types.V3SpecialObjects) Tag(org.ovirt.engine.api.model.Tag) Template(org.ovirt.engine.api.model.Template)

Aggregations

V3Link (org.ovirt.engine.api.v3.types.V3Link)8 V3Actions (org.ovirt.engine.api.v3.types.V3Actions)2 IOException (java.io.IOException)1 List (java.util.List)1 Collectors.joining (java.util.stream.Collectors.joining)1 Consumes (javax.ws.rs.Consumes)1 GET (javax.ws.rs.GET)1 HEAD (javax.ws.rs.HEAD)1 POST (javax.ws.rs.POST)1 Path (javax.ws.rs.Path)1 PathParam (javax.ws.rs.PathParam)1 Produces (javax.ws.rs.Produces)1 WebApplicationException (javax.ws.rs.WebApplicationException)1 Context (javax.ws.rs.core.Context)1 HttpHeaders (javax.ws.rs.core.HttpHeaders)1 Response (javax.ws.rs.core.Response)1 UriInfo (javax.ws.rs.core.UriInfo)1 Actionable (org.ovirt.engine.api.model.Actionable)1 Link (org.ovirt.engine.api.model.Link)1 Tag (org.ovirt.engine.api.model.Tag)1