Search in sources :

Example 1 with ControllerEntity

use of org.apache.nifi.web.api.entity.ControllerEntity in project nifi by apache.

the class TestSiteToSiteResource method testGetController.

@Test
public void testGetController() throws Exception {
    final HttpServletRequest req = createCommonHttpServletRequest();
    final NiFiServiceFacade serviceFacade = mock(NiFiServiceFacade.class);
    final ControllerEntity controllerEntity = new ControllerEntity();
    final ControllerDTO controller = new ControllerDTO();
    controllerEntity.setController(controller);
    controller.setRemoteSiteHttpListeningPort(8080);
    controller.setRemoteSiteListeningPort(9990);
    doReturn(controller).when(serviceFacade).getSiteToSiteDetails();
    final SiteToSiteResource resource = getSiteToSiteResource(serviceFacade);
    final Response response = resource.getSiteToSiteDetails(req);
    ControllerEntity resultEntity = (ControllerEntity) response.getEntity();
    assertEquals(200, response.getStatus());
    assertEquals("remoteSiteHttpListeningPort should be retained", new Integer(8080), resultEntity.getController().getRemoteSiteHttpListeningPort());
    assertEquals("Other fields should be retained.", new Integer(9990), controllerEntity.getController().getRemoteSiteListeningPort());
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) Response(javax.ws.rs.core.Response) NiFiServiceFacade(org.apache.nifi.web.NiFiServiceFacade) ControllerEntity(org.apache.nifi.web.api.entity.ControllerEntity) ControllerDTO(org.apache.nifi.web.api.dto.ControllerDTO) Test(org.junit.Test)

Example 2 with ControllerEntity

use of org.apache.nifi.web.api.entity.ControllerEntity in project nifi by apache.

the class SiteToSiteResource method getSiteToSiteDetails.

/**
 * Returns the details of this NiFi.
 *
 * @return A controllerEntity.
 */
@GET
@Consumes(MediaType.WILDCARD)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Returns the details about this NiFi necessary to communicate via site to site", response = ControllerEntity.class, authorizations = { @Authorization(value = "Read - /site-to-site") })
@ApiResponses(value = { @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."), @ApiResponse(code = 401, message = "Client could not be authenticated."), @ApiResponse(code = 403, message = "Client is not authorized to make this request."), @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.") })
public Response getSiteToSiteDetails(@Context HttpServletRequest req) {
    authorizeSiteToSite();
    if (isReplicateRequest()) {
        return replicate(HttpMethod.GET);
    }
    // get the controller dto
    final ControllerDTO controller = serviceFacade.getSiteToSiteDetails();
    // build the response entity
    final ControllerEntity entity = new ControllerEntity();
    entity.setController(controller);
    if (isEmpty(req.getHeader(HttpHeaders.PROTOCOL_VERSION))) {
        // This indicates the client uses older NiFi version,
        // which strictly read JSON properties and fail with unknown properties.
        // Convert result entity so that old version clients can understand.
        logger.debug("Converting result to provide backward compatibility...");
        controller.setRemoteSiteHttpListeningPort(null);
    }
    // generate the response
    return noCache(Response.ok(entity)).build();
}
Also used : ControllerEntity(org.apache.nifi.web.api.entity.ControllerEntity) ControllerDTO(org.apache.nifi.web.api.dto.ControllerDTO) Consumes(javax.ws.rs.Consumes) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Example 3 with ControllerEntity

use of org.apache.nifi.web.api.entity.ControllerEntity in project nifi by apache.

the class TestSiteToSiteResource method testGetControllerForOlderVersion.

@Test
public void testGetControllerForOlderVersion() throws Exception {
    final HttpServletRequest req = mock(HttpServletRequest.class);
    final NiFiServiceFacade serviceFacade = mock(NiFiServiceFacade.class);
    final ControllerEntity controllerEntity = new ControllerEntity();
    final ControllerDTO controller = new ControllerDTO();
    controllerEntity.setController(controller);
    controller.setRemoteSiteHttpListeningPort(8080);
    controller.setRemoteSiteListeningPort(9990);
    doReturn(controller).when(serviceFacade).getSiteToSiteDetails();
    final SiteToSiteResource resource = getSiteToSiteResource(serviceFacade);
    final Response response = resource.getSiteToSiteDetails(req);
    ControllerEntity resultEntity = (ControllerEntity) response.getEntity();
    assertEquals(200, response.getStatus());
    assertNull("remoteSiteHttpListeningPort should be null since older version doesn't recognize this field" + " and throws JSON mapping exception.", resultEntity.getController().getRemoteSiteHttpListeningPort());
    assertEquals("Other fields should be retained.", new Integer(9990), controllerEntity.getController().getRemoteSiteListeningPort());
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) Response(javax.ws.rs.core.Response) NiFiServiceFacade(org.apache.nifi.web.NiFiServiceFacade) ControllerEntity(org.apache.nifi.web.api.entity.ControllerEntity) ControllerDTO(org.apache.nifi.web.api.dto.ControllerDTO) Test(org.junit.Test)

Aggregations

ControllerDTO (org.apache.nifi.web.api.dto.ControllerDTO)3 ControllerEntity (org.apache.nifi.web.api.entity.ControllerEntity)3 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 Response (javax.ws.rs.core.Response)2 NiFiServiceFacade (org.apache.nifi.web.NiFiServiceFacade)2 Test (org.junit.Test)2 ApiOperation (io.swagger.annotations.ApiOperation)1 ApiResponses (io.swagger.annotations.ApiResponses)1 Consumes (javax.ws.rs.Consumes)1 GET (javax.ws.rs.GET)1 Produces (javax.ws.rs.Produces)1