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);
+ }
+}