[ 
https://issues.apache.org/jira/browse/NIFI-4224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118900#comment-16118900
 ] 

ASF GitHub Bot commented on NIFI-4224:
--------------------------------------

Github user mcgilman commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2051#discussion_r131999511
  
    --- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java
 ---
    @@ -325,6 +441,859 @@ public Response updateProcessGroup(
             );
         }
     
    +
    +    @GET
    +    @Consumes(MediaType.WILDCARD)
    +    @Produces(MediaType.APPLICATION_JSON)
    +    @Path("{groupId}/variable-registry/update-requests/{updateId}")
    +    @ApiOperation(value = "Gets a process group's variable registry", 
response = VariableRegistryUpdateRequestEntity.class, authorizations = {
    +        @Authorization(value = "Read - /process-groups/{uuid}", type = "")
    +    })
    +    @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 = 404, message = "The specified resource could 
not be found."),
    +        @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 getVariableRegistryUpdateRequest(
    +        @ApiParam(value = "The process group id.", required = true) 
@PathParam("groupId") final String groupId,
    +        @ApiParam(value = "The ID of the Variable Registry Update 
Request", required = true) @PathParam("updateId") final String updateId) {
    +
    +        if (groupId == null || updateId == null) {
    +            throw new IllegalArgumentException("Group ID and Update ID 
must both be specified.");
    +        }
    +
    +        if (isReplicateRequest()) {
    +            return replicate(HttpMethod.GET);
    +        }
    +
    +        // authorize access
    +        serviceFacade.authorizeAccess(lookup -> {
    +            final Authorizable processGroup = 
lookup.getProcessGroup(groupId).getAuthorizable();
    +            processGroup.authorize(authorizer, RequestAction.READ, 
NiFiUserUtils.getNiFiUser());
    +        });
    +
    +        final VariableRegistryUpdateRequest request = 
varRegistryUpdateRequests.get(updateId);
    +        if (request == null) {
    +            throw new ResourceNotFoundException("Could not find a Variable 
Registry Update Request with identifier " + updateId);
    +        }
    +
    +        if (!groupId.equals(request.getProcessGroupId())) {
    +            throw new ResourceNotFoundException("Could not find a Variable 
Registry Update Request with identifier " + updateId + " for Process Group with 
identifier " + groupId);
    +        }
    +
    +        final VariableRegistryUpdateRequestEntity entity = new 
VariableRegistryUpdateRequestEntity();
    +        entity.setId(request.getRequestId());
    +        
entity.setRequestDto(dtoFactory.createVariableRegistryUpdateRequestDto(request));
    +        entity.setUri(generateResourceUri("process-groups", groupId, 
"variable-registry", updateId));
    +        return generateOkResponse(entity).build();
    +    }
    +
    +
    +    @DELETE
    +    @Consumes(MediaType.WILDCARD)
    +    @Produces(MediaType.APPLICATION_JSON)
    +    @Path("{groupId}/variable-registry/update-requests/{updateId}")
    +    @ApiOperation(value = "Deletes an update request for a process group's 
variable registry. If the request is not yet complete, it will automatically be 
cancelled.",
    +        response = VariableRegistryUpdateRequestEntity.class, 
authorizations = {
    +            @Authorization(value = "Read - /process-groups/{uuid}", type = 
"")
    +    })
    +    @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 = 404, message = "The specified resource could 
not be found."),
    +        @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 deleteVariableRegistryUpdateRequest(
    +        @ApiParam(value = "The process group id.", required = true) 
@PathParam("groupId") final String groupId,
    +        @ApiParam(value = "The ID of the Variable Registry Update 
Request", required = true) @PathParam("updateId") final String updateId) {
    +
    +        if (groupId == null || updateId == null) {
    +            throw new IllegalArgumentException("Group ID and Update ID 
must both be specified.");
    +        }
    +
    +        if (isReplicateRequest()) {
    +            return replicate(HttpMethod.DELETE);
    +        }
    +
    +        // authorize access
    +        serviceFacade.authorizeAccess(lookup -> {
    +            final Authorizable processGroup = 
lookup.getProcessGroup(groupId).getAuthorizable();
    +            processGroup.authorize(authorizer, RequestAction.READ, 
NiFiUserUtils.getNiFiUser());
    --- End diff --
    
    This should require WRITE permissions, right?


> Add Variable Registry at Process Group level
> --------------------------------------------
>
>                 Key: NIFI-4224
>                 URL: https://issues.apache.org/jira/browse/NIFI-4224
>             Project: Apache NiFi
>          Issue Type: New Feature
>          Components: Core Framework
>            Reporter: Mark Payne
>            Assignee: Mark Payne
>
> Currently, NiFi exposes a variable registry that is configurable by adding 
> the name of a properties file to nifi.properties and then treating the 
> referenced properties file as key/value pairs for the variable registry. 
> This, however, is very limiting, as it provides a global scope for all 
> variables, and it requires a restart of NiFi in order to pick up any updates 
> to the file. We should expose a Process Group-level Variable Registry.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to