gresockj commented on a change in pull request #5452:
URL: https://github.com/apache/nifi/pull/5452#discussion_r728904268



##########
File path: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java
##########
@@ -841,14 +843,74 @@ public Response updateRunStatus(
         );
     }
 
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/{id}/config/analysis")
+    @ApiOperation(
+        value = "Performs analysis of the component's configuration, providing 
information about which attributes are referenced.",
+        response = ConfigurationAnalysisEntity.class,
+        authorizations = {
+            @Authorization(value = "Read - /controller-services/{uuid}")
+        }
+    )
+    @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 analyzeConfiguration(
+        @ApiParam(value = "The controller service id.", required = true) 
@PathParam("id") final String controllerServiceId,
+        @ApiParam(value = "The configuration verification request.", required 
= true) final ConfigurationAnalysisEntity configurationAnalysis) {

Review comment:
       Perhaps "configuration analysis request"

##########
File path: 
nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/ControllerServicesClient.java
##########
@@ -43,10 +43,10 @@
 
     ControllerServiceReferencingComponentsEntity 
updateControllerServiceReferences(UpdateControllerServiceReferenceRequestEntity 
referencesEntity) throws NiFiClientException, IOException;
 
-    VerifyControllerServiceConfigRequestEntity 
submitConfigVerificationRequest(VerifyControllerServiceConfigRequestEntity 
configRequestEntity) throws NiFiClientException, IOException;
+    VerifyConfigRequestEntity 
submitConfigVerificationRequest(VerifyConfigRequestEntity configRequestEntity) 
throws NiFiClientException, IOException;
 
-    VerifyControllerServiceConfigRequestEntity 
getConfigVerificationRequest(String serviceId, String verificationRequestId) 
throws NiFiClientException, IOException;
+    VerifyConfigRequestEntity getConfigVerificationRequest(String serviceId, 
String verificationRequestId) throws NiFiClientException, IOException;
 
-    VerifyControllerServiceConfigRequestEntity 
deleteConfigVerificationRequest(String serviceId, String verificationRequestId) 
throws NiFiClientException, IOException;
+    VerifyConfigRequestEntity deleteConfigVerificationRequest(String 
serviceId, String verificationRequestId) throws NiFiClientException, 
IOException;
 

Review comment:
       What do you think about adding `submitConfigAnalysisRequest` here and in 
the other clients in order to support some new system tests?

##########
File path: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
##########
@@ -765,8 +772,54 @@ public ProcessorEntity updateProcessor(final Revision 
revision, final ProcessorD
     }
 
     @Override
-    public List<ConfigVerificationResultDTO> 
verifyProcessorConfiguration(final String processorId, final ProcessorConfigDTO 
processorConfig, final Map<String, String> attributes) {
-        return processorDAO.verifyProcessorConfiguration(processorId, 
processorConfig, attributes);
+    public List<ConfigVerificationResultDTO> 
verifyProcessorConfiguration(final String processorId, final Map<String, 
String> properties, final Map<String, String> attributes) {
+        return processorDAO.verifyProcessorConfiguration(processorId, 
properties, attributes);
+    }
+
+    @Override
+    public ConfigurationAnalysisEntity analyzeProcessorConfiguration(final 
String processorId, final Map<String, String> properties) {
+        final ProcessorNode processorNode = 
processorDAO.getProcessor(processorId);
+        final ProcessGroup processGroup = processorNode.getProcessGroup();
+        final ParameterContext parameterContext = 
processGroup.getParameterContext();
+
+        final Map<String, String> referencedAttributes = 
determineReferencedAttributes(properties, processorNode, parameterContext);
+
+        final ConfigurationAnalysisDTO dto = new ConfigurationAnalysisDTO();
+        dto.setComponentId(processorId);
+        dto.setProperties(properties);
+        dto.setReferencedAttributes(referencedAttributes);
+
+        final ConfigurationAnalysisEntity entity = new 
ConfigurationAnalysisEntity();
+        entity.setConfigurationAnalysis(dto);
+        return entity;

Review comment:
       It seems that this whole section could be reused between the three 
`analyzeXConfiguration` methods.

##########
File path: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java
##########
@@ -646,14 +648,74 @@ public Response updateRunStatus(
         );
     }
 
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/{id}/config/analysis")
+    @ApiOperation(
+        value = "Performs analysis of the component's configuration, providing 
information about which attributes are referenced.",
+        response = ConfigurationAnalysisEntity.class,
+        authorizations = {
+            @Authorization(value = "Read - /reporting-tasks/{uuid}")
+        }
+    )
+    @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 analyzeConfiguration(
+        @ApiParam(value = "The reporting task id.", required = true) 
@PathParam("id") final String reportingTaskId,
+        @ApiParam(value = "The configuration verification request.", required 
= true) final ConfigurationAnalysisEntity configurationAnalysis) {

Review comment:
       Same as above

##########
File path: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java
##########
@@ -547,13 +549,75 @@ public Response clearState(
     }
 
 
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/{id}/config/analysis")
+    @ApiOperation(
+        value = "Performs analysis of the component's configuration, providing 
information about which attributes are referenced.",
+        response = ConfigurationAnalysisEntity.class,
+        authorizations = {
+            @Authorization(value = "Read - /processors/{uuid}")
+        }
+    )
+    @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 analyzeConfiguration(
+        @ApiParam(value = "The processor id.", required = true) 
@PathParam("id") final String processorId,
+        @ApiParam(value = "The processor configuration verification request.", 
required = true) final ConfigurationAnalysisEntity configurationAnalysis) {

Review comment:
       "configuration analysis request"




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to