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

bbende pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
     new f98fbb2530 NiFi CLI - add possibility to set 'Maximum Timer Driven 
Thread Count' (#7165)
f98fbb2530 is described below

commit f98fbb2530f6c6891f666cef1976c78345a98497
Author: timeabarna <[email protected]>
AuthorDate: Tue Apr 18 16:18:44 2023 +0200

    NiFi CLI - add possibility to set 'Maximum Timer Driven Thread Count' 
(#7165)
---
 .../cli/impl/client/nifi/ControllerClient.java     |  9 ++-
 .../client/nifi/impl/JerseyControllerClient.java   | 34 +++++++++-
 .../cli/impl/command/nifi/NiFiCommandGroup.java    |  4 ++
 .../nifi/flow/GetControllerConfiguration.java      | 48 ++++++++++++++
 .../nifi/flow/UpdateControllerConfiguration.java   | 76 ++++++++++++++++++++++
 .../result/nifi/ControllerConfigurationResult.java | 46 +++++++++++++
 6 files changed, 213 insertions(+), 4 deletions(-)

diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/ControllerClient.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/ControllerClient.java
index 39763409ed..f2880c317f 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/ControllerClient.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/ControllerClient.java
@@ -17,11 +17,12 @@
 package org.apache.nifi.toolkit.cli.impl.client.nifi;
 
 import org.apache.nifi.web.api.entity.ClusterEntity;
+import org.apache.nifi.web.api.entity.ControllerConfigurationEntity;
 import org.apache.nifi.web.api.entity.ControllerServiceEntity;
-import org.apache.nifi.web.api.entity.NodeEntity;
-import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 import org.apache.nifi.web.api.entity.FlowRegistryClientEntity;
 import org.apache.nifi.web.api.entity.FlowRegistryClientsEntity;
+import org.apache.nifi.web.api.entity.NodeEntity;
+import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 import org.apache.nifi.web.api.entity.ReportingTaskEntity;
 
 import java.io.IOException;
@@ -57,4 +58,8 @@ public interface ControllerClient {
 
     ParameterProviderEntity createParamProvider(ParameterProviderEntity 
paramProvider) throws NiFiClientException, IOException;
 
+    ControllerConfigurationEntity getControllerConfiguration() throws 
NiFiClientException, IOException;
+
+    ControllerConfigurationEntity 
updateControllerConfiguration(ControllerConfigurationEntity 
controllerConfiguration) throws NiFiClientException, IOException;
+
 }
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/impl/JerseyControllerClient.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/impl/JerseyControllerClient.java
index e6c0ee4cd8..b48381cbfd 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/impl/JerseyControllerClient.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/impl/JerseyControllerClient.java
@@ -21,11 +21,12 @@ import 
org.apache.nifi.toolkit.cli.impl.client.nifi.ControllerClient;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.NiFiClientException;
 import org.apache.nifi.toolkit.cli.impl.client.nifi.RequestConfig;
 import org.apache.nifi.web.api.entity.ClusterEntity;
+import org.apache.nifi.web.api.entity.ControllerConfigurationEntity;
 import org.apache.nifi.web.api.entity.ControllerServiceEntity;
-import org.apache.nifi.web.api.entity.NodeEntity;
-import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 import org.apache.nifi.web.api.entity.FlowRegistryClientEntity;
 import org.apache.nifi.web.api.entity.FlowRegistryClientsEntity;
+import org.apache.nifi.web.api.entity.NodeEntity;
+import org.apache.nifi.web.api.entity.ParameterProviderEntity;
 import org.apache.nifi.web.api.entity.ReportingTaskEntity;
 
 import javax.ws.rs.client.Entity;
@@ -240,4 +241,33 @@ public class JerseyControllerClient extends 
AbstractJerseyClient implements Cont
             );
         });
     }
+
+    @Override
+    public ControllerConfigurationEntity getControllerConfiguration() throws 
NiFiClientException, IOException {
+        return executeAction("Error retrieving controller configuration", () 
-> {
+            final WebTarget target = controllerTarget.path("config");
+            return 
getRequestBuilder(target).get(ControllerConfigurationEntity.class);
+        });
+    }
+
+    @Override
+    public ControllerConfigurationEntity 
updateControllerConfiguration(ControllerConfigurationEntity 
controllerConfiguration) throws NiFiClientException, IOException {
+        if (controllerConfiguration == null || 
controllerConfiguration.getComponent() == null) {
+            throw new IllegalArgumentException("Controller configuration must 
be specified");
+        }
+
+        if (controllerConfiguration.getRevision() == null) {
+            throw new IllegalArgumentException("Revision must be specified.");
+        }
+
+        return executeAction("Error updating controller configuration", () -> {
+            final WebTarget target = controllerTarget
+                    .path("config");
+
+            return getRequestBuilder(target).put(
+                    Entity.entity(controllerConfiguration, 
MediaType.APPLICATION_JSON),
+                    ControllerConfigurationEntity.class
+            );
+        });
+    }
 }
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
index b5cde99715..c715a1a97e 100644
--- 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/NiFiCommandGroup.java
@@ -29,11 +29,13 @@ import 
org.apache.nifi.toolkit.cli.impl.command.nifi.cs.GetControllerServices;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.ClusterSummary;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.CreateReportingTask;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.CurrentUser;
+import 
org.apache.nifi.toolkit.cli.impl.command.nifi.flow.GetControllerConfiguration;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.GetReportingTask;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.GetReportingTasks;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.GetRootId;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.StartReportingTasks;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.flow.StopReportingTasks;
+import 
org.apache.nifi.toolkit.cli.impl.command.nifi.flow.UpdateControllerConfiguration;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.nodes.ConnectNode;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.nodes.DeleteNode;
 import org.apache.nifi.toolkit.cli.impl.command.nifi.nodes.DisconnectNode;
@@ -180,6 +182,8 @@ public class NiFiCommandGroup extends AbstractCommandGroup {
         commands.add(new GetAccessToken());
         commands.add(new GetAccessTokenSpnego());
         commands.add(new LogoutAccessToken());
+        commands.add(new GetControllerConfiguration());
+        commands.add(new UpdateControllerConfiguration());
         return new ArrayList<>(commands);
     }
 }
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/GetControllerConfiguration.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/GetControllerConfiguration.java
new file mode 100644
index 0000000000..8e2aed6ebf
--- /dev/null
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/GetControllerConfiguration.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.toolkit.cli.impl.command.nifi.flow;
+
+import org.apache.commons.cli.MissingOptionException;
+import org.apache.nifi.toolkit.cli.api.CommandException;
+import org.apache.nifi.toolkit.cli.impl.client.nifi.ControllerClient;
+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.command.nifi.AbstractNiFiCommand;
+import 
org.apache.nifi.toolkit.cli.impl.result.nifi.ControllerConfigurationResult;
+import org.apache.nifi.web.api.entity.ControllerConfigurationEntity;
+
+import java.io.IOException;
+import java.util.Properties;
+
+public class GetControllerConfiguration extends 
AbstractNiFiCommand<ControllerConfigurationResult> {
+    public GetControllerConfiguration() {
+        super("get-controller-configuration", 
ControllerConfigurationResult.class);
+    }
+
+    @Override
+    public String getDescription() {
+        return "Retrieves controller configuration.";
+    }
+
+    @Override
+    public ControllerConfigurationResult doExecute(final NiFiClient client, 
final Properties properties) throws NiFiClientException, IOException, 
MissingOptionException, CommandException {
+        final ControllerClient controllerClient = client.getControllerClient();
+
+        final ControllerConfigurationEntity controllerConfigurationEntity = 
controllerClient.getControllerConfiguration();
+        return new ControllerConfigurationResult(getResultType(properties), 
controllerConfigurationEntity);
+    }
+}
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/UpdateControllerConfiguration.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/UpdateControllerConfiguration.java
new file mode 100644
index 0000000000..3855ef09b0
--- /dev/null
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/nifi/flow/UpdateControllerConfiguration.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.toolkit.cli.impl.command.nifi.flow;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.commons.cli.MissingOptionException;
+import org.apache.commons.io.IOUtils;
+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.ControllerClient;
+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.command.CommandOption;
+import org.apache.nifi.toolkit.cli.impl.command.nifi.AbstractNiFiCommand;
+import 
org.apache.nifi.toolkit.cli.impl.result.nifi.ControllerConfigurationResult;
+import org.apache.nifi.toolkit.cli.impl.util.JacksonUtils;
+import org.apache.nifi.web.api.dto.RevisionDTO;
+import org.apache.nifi.web.api.entity.ControllerConfigurationEntity;
+
+import java.io.IOException;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
+import java.util.Properties;
+
+public class UpdateControllerConfiguration extends 
AbstractNiFiCommand<ControllerConfigurationResult> {
+    public UpdateControllerConfiguration() {
+        super("update-controller-configuration", 
ControllerConfigurationResult.class);
+    }
+
+    @Override
+    public String getDescription() {
+        return "Updates controller configuration from a local file.";
+    }
+
+    @Override
+    protected void doInitialize(final Context context) {
+        addOption(CommandOption.INPUT_SOURCE.createOption());
+    }
+
+    @Override
+    public ControllerConfigurationResult doExecute(final NiFiClient client, 
final Properties properties) throws NiFiClientException, IOException, 
MissingOptionException, CommandException {
+        final String inputFile = getRequiredArg(properties, 
CommandOption.INPUT_SOURCE);
+        final URI uri = Paths.get(inputFile).toAbsolutePath().toUri();
+        final String contents = IOUtils.toString(uri, StandardCharsets.UTF_8);
+
+        final ObjectMapper objectMapper = JacksonUtils.getObjectMapper();
+        final ControllerConfigurationEntity controllerConfiguration = 
objectMapper.readValue(contents, ControllerConfigurationEntity.class);
+
+        if (controllerConfiguration == null || 
controllerConfiguration.getComponent() == null) {
+            throw new IllegalArgumentException("Controller configuration must 
be specified");
+        }
+
+        final ControllerClient controllerClient = client.getControllerClient();
+        final RevisionDTO revisionDTO = 
client.getControllerClient().getControllerConfiguration().getRevision();
+        controllerConfiguration.setRevision(revisionDTO);
+
+        final ControllerConfigurationEntity createdEntity = 
controllerClient.updateControllerConfiguration(controllerConfiguration);
+
+        return new ControllerConfigurationResult(getResultType(properties), 
createdEntity);
+    }
+}
diff --git 
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ControllerConfigurationResult.java
 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ControllerConfigurationResult.java
new file mode 100644
index 0000000000..dfb51670bd
--- /dev/null
+++ 
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/nifi/ControllerConfigurationResult.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.toolkit.cli.impl.result.nifi;
+
+import org.apache.commons.lang3.Validate;
+import org.apache.nifi.toolkit.cli.api.ResultType;
+import org.apache.nifi.toolkit.cli.impl.result.AbstractWritableResult;
+import org.apache.nifi.toolkit.cli.impl.util.JacksonUtils;
+import org.apache.nifi.web.api.entity.ControllerConfigurationEntity;
+
+import java.io.IOException;
+import java.io.PrintStream;
+
+public class ControllerConfigurationResult extends 
AbstractWritableResult<ControllerConfigurationEntity> {
+    private final ControllerConfigurationEntity controllerConfigurationEntity;
+
+    public ControllerConfigurationResult(final ResultType resultType, final 
ControllerConfigurationEntity controllerConfigurationEntity) {
+        super(resultType);
+        this.controllerConfigurationEntity = controllerConfigurationEntity;
+        Validate.notNull(controllerConfigurationEntity);
+    }
+
+    @Override
+    public ControllerConfigurationEntity getResult() {
+        return controllerConfigurationEntity;
+    }
+
+    @Override
+    protected void writeSimpleResult(final PrintStream output) throws 
IOException {
+        JacksonUtils.write(getResult(), output);
+    }
+}

Reply via email to