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]