This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new d1f4048b06 NIFI-13904 Fixed CLI commands to set/remove parameter 
context inheritance (#9437)
d1f4048b06 is described below

commit d1f4048b061b91f93856287c238682b364f74ed4
Author: Pierre Villard <[email protected]>
AuthorDate: Thu Oct 24 21:41:50 2024 +0200

    NIFI-13904 Fixed CLI commands to set/remove parameter context inheritance 
(#9437)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../cli/impl/command/nifi/params/FetchParams.java      |  6 +++++-
 .../cli/impl/command/nifi/params/GetParamProvider.java |  6 +++++-
 .../nifi/params/RemoveInheritedParamContexts.java      |  8 ++++++++
 .../command/nifi/params/SetInheritedParamContexts.java |  8 ++++++++
 .../cli/impl/result/nifi/ParamProviderResult.java      | 18 +++++++++++++++++-
 5 files changed, 43 insertions(+), 3 deletions(-)

diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/FetchParams.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/FetchParams.java
index 761e06a268..938c890f4f 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/FetchParams.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/FetchParams.java
@@ -23,11 +23,13 @@ import org.apache.nifi.toolkit.cli.api.CommandException;
 import org.apache.nifi.toolkit.cli.api.Context;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClient;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClientException;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.ParamContextClient;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.ParamProviderClient;
 import org.apache.nifi.toolkit.cli.impl.command.CommandOption;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.AbstractNiFiCommand;
 import org.apache.nifi.toolkit.cli.impl.result.nifi.ParamProviderResult;
 import org.apache.nifi.toolkit.cli.impl.util.JacksonUtils;
+import org.apache.nifi.web.api.entity.ParameterContextsEntity;
 import 
org.apache.nifi.web.api.entity.ParameterProviderApplyParametersRequestEntity;
 import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 import 
org.apache.nifi.web.api.entity.ParameterProviderParameterApplicationEntity;
@@ -81,6 +83,8 @@ public class FetchParams extends 
AbstractNiFiCommand<ParamProviderResult> {
             parameterApplicationEntity = 
objectMapper.readValue(parameterApplicationJson, 
ParameterProviderParameterApplicationEntity.class);
         }
         final ParamProviderClient paramProviderClient = 
client.getParamProviderClient();
+        final ParamContextClient paramContextClient = 
client.getParamContextClient();
+        final ParameterContextsEntity paramContextEntity = 
paramContextClient.getParamContexts();
         final ParameterProviderEntity existingParameterProvider = 
paramProviderClient.getParamProvider(paramProviderId);
 
         final ParameterProviderParameterFetchEntity fetchEntity = new 
ParameterProviderParameterFetchEntity();
@@ -92,7 +96,7 @@ public class FetchParams extends 
AbstractNiFiCommand<ParamProviderResult> {
             applyParametersAndWait(paramProviderClient, 
fetchedParameterProvider, parameterApplicationEntity, sensitiveParamPattern);
         }
 
-        return new ParamProviderResult(getResultType(properties), 
fetchedParameterProvider);
+        return new ParamProviderResult(getResultType(properties), 
fetchedParameterProvider, paramContextEntity);
     }
 
     private void applyParametersAndWait(final ParamProviderClient 
paramProviderClient, final ParameterProviderEntity fetchedParameterProvider,
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/GetParamProvider.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/GetParamProvider.java
index 32444dc14a..696cbc9119 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/GetParamProvider.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/GetParamProvider.java
@@ -21,10 +21,12 @@ import org.apache.nifi.toolkit.cli.api.CommandException;
 import org.apache.nifi.toolkit.cli.api.Context;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClient;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClientException;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.ParamContextClient;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.ParamProviderClient;
 import org.apache.nifi.toolkit.cli.impl.command.CommandOption;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.AbstractNiFiCommand;
 import org.apache.nifi.toolkit.cli.impl.result.nifi.ParamProviderResult;
+import org.apache.nifi.web.api.entity.ParameterContextsEntity;
 import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 
 import java.io.IOException;
@@ -51,7 +53,9 @@ public class GetParamProvider extends 
AbstractNiFiCommand<ParamProviderResult> {
             throws NiFiClientException, IOException, MissingOptionException, 
CommandException {
         final String paramProviderId = getRequiredArg(properties, 
CommandOption.PARAM_PROVIDER_ID);
         final ParamProviderClient paramProviderClient = 
client.getParamProviderClient();
+        final ParamContextClient paramContextClient = 
client.getParamContextClient();
+        final ParameterContextsEntity paramContextEntity = 
paramContextClient.getParamContexts();
         final ParameterProviderEntity parameterProvider = 
paramProviderClient.getParamProvider(paramProviderId);
-        return new ParamProviderResult(getResultType(properties), 
parameterProvider);
+        return new ParamProviderResult(getResultType(properties), 
parameterProvider, paramContextEntity);
     }
 }
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/RemoveInheritedParamContexts.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/RemoveInheritedParamContexts.java
index d48897f551..51e58997ed 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/RemoveInheritedParamContexts.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/RemoveInheritedParamContexts.java
@@ -69,6 +69,14 @@ public class RemoveInheritedParamContexts extends 
AbstractUpdateParamContextComm
         parameterContextDTO.setId(existingParameterContextEntity.getId());
         
parameterContextDTO.setParameters(existingParameterContextEntity.getComponent().getParameters());
 
+        // we need to explicitly set null for the sensitive parameters as we 
are getting **** for the values
+        // on the client side. This is the only way for the server side to 
know that the values are not changed
+        // during the update parameter context request
+        parameterContextDTO.getParameters()
+            .stream()
+            .filter(t -> t.getParameter().getSensitive().booleanValue())
+            .forEach(t -> t.getParameter().setValue(null));
+
         final ParameterContextEntity updatedParameterContextEntity = new 
ParameterContextEntity();
         updatedParameterContextEntity.setId(paramContextId);
         updatedParameterContextEntity.setComponent(parameterContextDTO);
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/SetInheritedParamContexts.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/SetInheritedParamContexts.java
index 78953d7616..569a66ddb8 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/SetInheritedParamContexts.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/params/SetInheritedParamContexts.java
@@ -87,6 +87,14 @@ public class SetInheritedParamContexts extends 
AbstractUpdateParamContextCommand
         parameterContextDTO.setId(existingParameterContextEntity.getId());
         
parameterContextDTO.setParameters(existingParameterContextEntity.getComponent().getParameters());
 
+        // we need to explicitly set null for the sensitive parameters as we 
are getting **** for the values
+        // on the client side. This is the only way for the server side to 
know that the values are not changed
+        // during the update parameter context request
+        parameterContextDTO.getParameters()
+            .stream()
+            .filter(t -> t.getParameter().getSensitive().booleanValue())
+            .forEach(t -> t.getParameter().setValue(null));
+
         final ParameterContextEntity updatedParameterContextEntity = new 
ParameterContextEntity();
         updatedParameterContextEntity.setId(paramContextId);
         updatedParameterContextEntity.setComponent(parameterContextDTO);
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ParamProviderResult.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ParamProviderResult.java
index 6f9383bef4..a7827243c2 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ParamProviderResult.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ParamProviderResult.java
@@ -22,6 +22,7 @@ import 
org.apache.nifi.toolkit.cli.impl.result.writer.DynamicTableWriter;
 import org.apache.nifi.toolkit.cli.impl.result.writer.Table;
 import org.apache.nifi.toolkit.cli.impl.result.writer.TableWriter;
 import org.apache.nifi.web.api.dto.ParameterProviderDTO;
+import org.apache.nifi.web.api.entity.ParameterContextsEntity;
 import org.apache.nifi.web.api.entity.ParameterGroupConfigurationEntity;
 import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 
@@ -35,10 +36,13 @@ import java.util.List;
 public class ParamProviderResult extends 
AbstractWritableResult<ParameterProviderEntity> {
 
     private final ParameterProviderEntity parameterProvider;
+    private final ParameterContextsEntity parameterContexts;
 
-    public ParamProviderResult(final ResultType resultType, final 
ParameterProviderEntity parameterProvider) {
+    public ParamProviderResult(final ResultType resultType, final 
ParameterProviderEntity parameterProvider,
+            final ParameterContextsEntity paramContextEntity) {
         super(resultType);
         this.parameterProvider = parameterProvider;
+        this.parameterContexts = paramContextEntity;
     }
 
     @Override
@@ -59,6 +63,7 @@ public class ParamProviderResult extends 
AbstractWritableResult<ParameterProvide
         }
         final Table fetchedParametersTable = new Table.Builder()
                 .column("Parameter Group", 20, 60, false)
+                .column("Parameter Context Id", 36, 36, false)
                 .column("Parameter Context Name", 20, 60, false)
                 .column("Fetched Parameter Name", 20, 60, false)
                 .build();
@@ -67,6 +72,7 @@ public class ParamProviderResult extends 
AbstractWritableResult<ParameterProvide
                 group.getParameterSensitivities().keySet().stream().sorted()
                         .forEach(param -> fetchedParametersTable.addRow(new 
String[] {
                                 group.getGroupName(),
+                                
getParameterContextId(group.getParameterContextName()),
                                 group.getParameterContextName(),
                                 param
                         }));
@@ -83,6 +89,16 @@ public class ParamProviderResult extends 
AbstractWritableResult<ParameterProvide
         }
     }
 
+    private String getParameterContextId(final String name) {
+        return parameterContexts.getParameterContexts()
+                .stream()
+                .filter(t -> t.getComponent().getName().equals(name))
+                .findFirst()
+                .get()
+                .getComponent()
+                .getId();
+    }
+
     @Override
     public ParameterProviderEntity getResult() {
         return parameterProvider;

Reply via email to