Search in sources :

Example 1 with AlignNiFiComponents

use of com.thinkbiganalytics.nifi.rest.client.layout.AlignNiFiComponents in project kylo by Teradata.

the class NifiIntegrationRestController method autoAlign.

@GET
@Path("/auto-align/{processGroupId}")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation("Organizes the components of the specified process group.")
@ApiResponses(@ApiResponse(code = 200, message = "The result of the operation.", response = RestResponseStatus.class))
public Response autoAlign(@PathParam("processGroupId") String processGroupId) {
    accessController.checkPermission(AccessController.SERVICES, FeedServicesAccessControl.ADMIN_FEEDS);
    RestResponseStatus status;
    if ("all".equals(processGroupId)) {
        AlignNiFiComponents alignNiFiComponents = new AlignNiFiComponents();
        alignNiFiComponents.setNiFiRestClient(legacyNifiRestClient.getNiFiRestClient());
        alignNiFiComponents.autoLayout();
        String message = "";
        if (alignNiFiComponents.isAligned()) {
            message = "Aligned All of NiFi.  " + alignNiFiComponents.getAlignedProcessGroups() + " process groups were aligned ";
        } else {
            message = "Alignment failed while attempting to align all of NiFi. " + alignNiFiComponents.getAlignedProcessGroups() + " were successfully aligned. Please look at the logs for more information";
        }
        status = new RestResponseStatus.ResponseStatusBuilder().message(message).buildSuccess();
    } else {
        AlignProcessGroupComponents alignProcessGroupComponents = new AlignProcessGroupComponents(legacyNifiRestClient.getNiFiRestClient(), processGroupId);
        ProcessGroupDTO alignedGroup = alignProcessGroupComponents.autoLayout();
        String message = "";
        if (alignProcessGroupComponents.isAligned()) {
            message = "Aligned " + alignedGroup.getContents().getProcessGroups().size() + " process groups under " + alignedGroup.getName();
        } else {
            message = "Alignment failed for process group " + processGroupId + ". Please look at the logs for more information";
        }
        status = new RestResponseStatus.ResponseStatusBuilder().message(message).buildSuccess();
    }
    return Response.ok(status).build();
}
Also used : AlignNiFiComponents(com.thinkbiganalytics.nifi.rest.client.layout.AlignNiFiComponents) AlignProcessGroupComponents(com.thinkbiganalytics.nifi.rest.client.layout.AlignProcessGroupComponents) ProcessGroupDTO(org.apache.nifi.web.api.dto.ProcessGroupDTO) RestResponseStatus(com.thinkbiganalytics.rest.model.RestResponseStatus) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Aggregations

AlignNiFiComponents (com.thinkbiganalytics.nifi.rest.client.layout.AlignNiFiComponents)1 AlignProcessGroupComponents (com.thinkbiganalytics.nifi.rest.client.layout.AlignProcessGroupComponents)1 RestResponseStatus (com.thinkbiganalytics.rest.model.RestResponseStatus)1 ApiOperation (io.swagger.annotations.ApiOperation)1 ApiResponses (io.swagger.annotations.ApiResponses)1 GET (javax.ws.rs.GET)1 Path (javax.ws.rs.Path)1 Produces (javax.ws.rs.Produces)1 ProcessGroupDTO (org.apache.nifi.web.api.dto.ProcessGroupDTO)1