This is an automated email from the ASF dual-hosted git repository.
mcgilman pushed a commit to branch NIFI-15258
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/NIFI-15258 by this push:
new 9366f351ac NIFI-15445: Removed 'disabled' state from Connectors; also
fixed bug … (#10749)
9366f351ac is described below
commit 9366f351acbaf7f46c61760b0d59556357af3c41
Author: Mark Payne <[email protected]>
AuthorDate: Fri Jan 9 17:27:48 2026 -0500
NIFI-15445: Removed 'disabled' state from Connectors; also fixed bug …
(#10749)
* NIFI-15445: Removed 'disabled' state from Connectors; also fixed bug to
ensure that if we fail to apply an update to a Connector that we stop it.
* NIFI-15445: Addressed review feedback
* NIFI-15445: Fixed checkstyle
---
.../org/apache/nifi/web/api/dto/ConnectorDTO.java | 4 +-
.../flow/mapping/VersionedComponentFlowMapper.java | 5 +-
.../nifi/components/connector/ConnectorNode.java | 9 ---
.../nifi/components/connector/ConnectorState.java | 1 -
.../apache/nifi/controller/ProcessScheduler.java | 4 --
.../connector/StandardConnectorNode.java | 78 +++++++---------------
.../scheduling/StandardProcessScheduler.java | 27 --------
.../connector/StandardConnectorNodeIT.java | 3 +-
.../connector/TestStandardConnectorNode.java | 68 +------------------
.../org/apache/nifi/audit/ConnectorAuditor.java | 52 ---------------
.../apache/nifi/web/StandardNiFiServiceFacade.java | 1 -
.../java/org/apache/nifi/web/dao/ConnectorDAO.java | 4 --
.../nifi/web/dao/impl/StandardConnectorDAO.java | 12 ----
.../scheduling/StatelessProcessScheduler.java | 10 ---
14 files changed, 32 insertions(+), 246 deletions(-)
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectorDTO.java
b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectorDTO.java
index a2253fdfeb..d2d08590a3 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectorDTO.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectorDTO.java
@@ -29,7 +29,7 @@ public class ConnectorDTO extends ComponentDTO {
private String name;
private String type;
private BundleDTO bundle;
- private String state; // RUNNING, STOPPED, DISABLED
+ private String state; // RUNNING, STOPPED
private String managedProcessGroupId;
private ConnectorConfigurationDTO activeConfiguration;
private ConnectorConfigurationDTO workingConfiguration;
@@ -69,7 +69,7 @@ public class ConnectorDTO extends ComponentDTO {
this.bundle = bundle;
}
- @Schema(description = "The state of the Connector.", allowableValues =
{"RUNNING", "STOPPED", "DISABLED"})
+ @Schema(description = "The state of the Connector.", allowableValues =
{"RUNNING", "STOPPED"})
public String getState() {
return state;
}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/VersionedComponentFlowMapper.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/VersionedComponentFlowMapper.java
index 655dcf99ca..4a0245ad02 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/VersionedComponentFlowMapper.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/registry/flow/mapping/VersionedComponentFlowMapper.java
@@ -21,17 +21,17 @@ import org.apache.commons.lang3.ClassUtils;
import org.apache.nifi.asset.Asset;
import org.apache.nifi.bundle.BundleCoordinate;
import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.components.listen.ListenPortDefinition;
import org.apache.nifi.components.connector.AssetReference;
-import org.apache.nifi.components.connector.NamedStepConfiguration;
import org.apache.nifi.components.connector.ConnectorConfiguration;
import org.apache.nifi.components.connector.ConnectorNode;
import org.apache.nifi.components.connector.ConnectorState;
import org.apache.nifi.components.connector.ConnectorValueReference;
import org.apache.nifi.components.connector.FrameworkFlowContext;
+import org.apache.nifi.components.connector.NamedStepConfiguration;
import org.apache.nifi.components.connector.SecretReference;
import org.apache.nifi.components.connector.StepConfiguration;
import org.apache.nifi.components.connector.StringLiteralValue;
+import org.apache.nifi.components.listen.ListenPortDefinition;
import org.apache.nifi.components.resource.ResourceCardinality;
import org.apache.nifi.components.resource.ResourceDefinition;
import org.apache.nifi.connectable.Connectable;
@@ -1106,7 +1106,6 @@ public class VersionedComponentFlowMapper {
}
return switch (connectorState) {
- case DISABLED -> org.apache.nifi.flow.ScheduledState.DISABLED;
case RUNNING, STARTING ->
org.apache.nifi.flow.ScheduledState.RUNNING;
default -> org.apache.nifi.flow.ScheduledState.ENABLED;
};
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
index d4121b2db9..146be70d73 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
@@ -161,15 +161,6 @@ public interface ConnectorNode extends
ComponentAuthorizable, VersionedComponent
*/
Collection<ValidationResult> getValidationErrors();
- /**
- * Enables the Connector. This method should only be invoked via the
ConnectorRepository.
- */
- void enable();
-
- /**
- * Disables the Connector. This method should only be invoked via the
ConnectorRepository.
- */
- void disable();
ValidationState getValidationState();
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorState.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorState.java
index ad30ab832b..c13999c4fa 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorState.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorState.java
@@ -22,7 +22,6 @@ public enum ConnectorState {
RUNNING,
STOPPING,
STOPPED,
- DISABLED,
DRAINING,
PURGING,
PREPARING_FOR_UPDATE,
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java
index fba71ebca8..94ca3da1b1 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java
@@ -269,10 +269,6 @@ public interface ProcessScheduler {
CompletableFuture<Void> stopConnector(ConnectorNode connectorNode);
- void enableConnector(ConnectorNode connectorNode);
-
- void disableConnector(ConnectorNode connectorNode);
-
void onConnectorRemoved(ConnectorNode connectorNode);
/**
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
index 671e88efea..5edd2d3fb1 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
@@ -37,6 +37,7 @@ import org.apache.nifi.connectable.FlowFileActivity;
import org.apache.nifi.connectable.FlowFileTransferCounts;
import org.apache.nifi.controller.flow.FlowManager;
import org.apache.nifi.controller.queue.DropFlowFileStatus;
+import org.apache.nifi.controller.queue.QueueSize;
import org.apache.nifi.engine.FlowEngine;
import org.apache.nifi.flow.Bundle;
import org.apache.nifi.flow.VersionedConfigurationStep;
@@ -227,7 +228,19 @@ public class StandardConnectorNode implements
ConnectorNode {
@Override
public void applyUpdate() throws FlowUpdateException {
- applyUpdate(workingFlowContext);
+ try {
+ applyUpdate(workingFlowContext);
+ } catch (final FlowUpdateException e) {
+ // Since we failed to update, make sure that we stop the
Connector. Note that we do not do this for all
+ // throwables because IllegalStateException for example indicates
that we did not even attempt to perform the update.
+ try (final NarCloseable ignored =
NarCloseable.withComponentNarLoader(extensionManager,
connectorDetails.getConnector().getClass(), getIdentifier())) {
+ connectorDetails.getConnector().stop(activeFlowContext);
+ } catch (final Throwable stopThrowable) {
+ e.addSuppressed(stopThrowable);
+ }
+
+ throw e;
+ }
}
private void applyUpdate(final FrameworkFlowContext contextToInherit)
throws FlowUpdateException {
@@ -321,39 +334,6 @@ public class StandardConnectorNode implements
ConnectorNode {
return stateTransition.getDesiredState();
}
- @Override
- public void enable() {
- if (getCurrentState() == ConnectorState.STOPPED) {
- return;
- }
- if (getCurrentState() != ConnectorState.DISABLED) {
- throw new IllegalStateException("Cannot enable " + this + "
because its desired state is currently " + getCurrentState()
- + "; it must be DISABLED in order
to be enabled.");
- }
-
- stateTransition.setDesiredState(ConnectorState.STOPPED);
- if (stateTransition.trySetCurrentState(ConnectorState.DISABLED,
ConnectorState.STOPPED)) {
- logger.info("Transitioned current state for {} to {}", this,
ConnectorState.STOPPED);
- return;
- }
-
- logger.info("{} enabled but not currently DISABLED so set desired
state to STOPPED; current state is {}", this,
stateTransition.getCurrentState());
- }
-
- @Override
- public void disable() {
- stateTransition.setDesiredState(ConnectorState.DISABLED);
-
- final ConnectorState currentState = getCurrentState();
- if (currentState == ConnectorState.DISABLED || currentState ==
ConnectorState.STOPPED || currentState == ConnectorState.UPDATE_FAILED) {
- if (stateTransition.trySetCurrentState(currentState,
ConnectorState.DISABLED)) {
- logger.info("Transitioned current state for {} to {}", this,
ConnectorState.DISABLED);
- return;
- }
- }
-
- logger.info("{} disabled but not in a state that can immediately
transition to DISABLED so set desired state to DISABLED; current state is {}",
this, currentState);
- }
@Override
public Optional<Duration> getIdleDuration() {
@@ -424,7 +404,7 @@ public class StandardConnectorNode implements ConnectorNode
{
boolean stateUpdated = false;
while (!stateUpdated) {
final ConnectorState currentState = getCurrentState();
- if (currentState == ConnectorState.STOPPED || currentState ==
ConnectorState.DISABLED) {
+ if (currentState == ConnectorState.STOPPED) {
logger.debug("{} is already {}; will not attempt to stop",
this, currentState);
stopCompleteFuture.complete(null);
return stopCompleteFuture;
@@ -504,18 +484,9 @@ public class StandardConnectorNode implements
ConnectorNode {
stopCompleteFuture.complete(null);
final ConnectorState desiredState = getDesiredState();
- switch (desiredState) {
- case DISABLED -> {
- logger.info("{} was requested to be DISABLED while it was
stopping so will now transition to DISABLED", this);
- disable();
- }
- case RUNNING -> {
- logger.info("{} was requested to be RUNNING while it was
stopping so will attempt to start again", this);
- start(scheduler, new CompletableFuture<>());
- }
- default -> {
- // No action needed for other states
- }
+ if (desiredState == ConnectorState.RUNNING) {
+ logger.info("{} was requested to be RUNNING while it was stopping
so will attempt to start again", this);
+ start(scheduler, new CompletableFuture<>());
}
}
@@ -541,8 +512,14 @@ public class StandardConnectorNode implements
ConnectorNode {
@Override
public void verifyCanDelete() {
+ final QueueSize queueSize =
getActiveFlowContext().getManagedProcessGroup().getQueueSize();
+ if (queueSize.getObjectCount() > 0) {
+ throw new IllegalStateException("Cannot delete " + this + "
because its Process Group has " + queueSize.getObjectCount()
+ + " FlowFiles queued; all FlowFiles must be removed before it
can be deleted.");
+ }
+
final ConnectorState currentState = getCurrentState();
- if (currentState == ConnectorState.STOPPED || currentState ==
ConnectorState.DISABLED) {
+ if (currentState == ConnectorState.STOPPED || currentState ==
ConnectorState.UPDATE_FAILED || currentState == ConnectorState.UPDATED) {
return;
}
@@ -551,11 +528,6 @@ public class StandardConnectorNode implements
ConnectorNode {
@Override
public void verifyCanStart() {
- final ConnectorState currentState = getCurrentState();
- if (currentState == ConnectorState.DISABLED) {
- throw new IllegalStateException("Cannot start " + this + " because
its state is currently " + currentState + "; it must be fully stopped before it
can be started.");
- }
-
final ValidationState state = performValidation();
if (state.getStatus() != ValidationStatus.VALID) {
throw new IllegalStateException("Cannot start " + this + " because
it is not valid: " + state.getValidationErrors());
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
index eb9a0e2101..1b0f89a0db 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java
@@ -23,7 +23,6 @@ import org.apache.nifi.annotation.lifecycle.OnUnscheduled;
import org.apache.nifi.annotation.notification.PrimaryNodeState;
import org.apache.nifi.authorization.resource.ComponentAuthorizable;
import org.apache.nifi.components.connector.ConnectorNode;
-import org.apache.nifi.components.connector.ConnectorState;
import org.apache.nifi.components.state.StateManager;
import org.apache.nifi.components.state.StateManagerProvider;
import org.apache.nifi.components.validation.ValidationStatus;
@@ -924,32 +923,6 @@ public final class StandardProcessScheduler implements
ProcessScheduler {
throw new UnsupportedOperationException();
}
- @Override
- public void enableConnector(final ConnectorNode connectorNode) {
- final ConnectorState currentState = connectorNode.getCurrentState();
- if (currentState != ConnectorState.DISABLED) {
- throw new IllegalStateException("Connector cannot be enabled
because its state is set to " + currentState
- + " but transition to STOPPED state is allowed only from
the DISABLED state");
- }
-
- connectorNode.enable();
- }
-
- @Override
- public void disableConnector(final ConnectorNode connectorNode) {
- final ConnectorState currentState = connectorNode.getCurrentState();
- if (currentState == ConnectorState.DISABLED) {
- return;
- }
-
- if (currentState != ConnectorState.STOPPED) {
- throw new IllegalStateException("Connector cannot be disabled
because its state is set to " + currentState
- + " but transition to DISABLED state is allowed only from
the STOPPED state");
- }
-
- connectorNode.disable();
- }
-
@Override
public void onConnectorRemoved(final ConnectorNode connectorNode) {
lifecycleStateManager.removeLifecycleState(connectorNode.getIdentifier());
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
index d2f8ce2dfc..f8e63e2723 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
@@ -481,12 +481,11 @@ public class StandardConnectorNodeIT {
}
@Test
- public void testPurgeFlowFilesRequiresStoppedState() throws
FlowUpdateException {
+ public void testPurgeFlowFilesRequiresStoppedState() {
final ConnectorNode connectorNode = initializeDynamicFlowConnector();
final ProcessGroup rootGroup =
connectorNode.getActiveFlowContext().getManagedProcessGroup();
queueDataBySource(rootGroup, "Create FlowFile");
- connectorNode.enable();
assertEquals(ConnectorState.STOPPED, connectorNode.getCurrentState());
connectorNode.start(componentLifecycleThreadPool);
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
index bf26c1f7ed..4eba662d26 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
@@ -25,6 +25,7 @@ import
org.apache.nifi.components.connector.components.FlowContext;
import org.apache.nifi.components.connector.components.FlowContextType;
import org.apache.nifi.components.connector.secrets.SecretsManager;
import org.apache.nifi.controller.flow.FlowManager;
+import org.apache.nifi.controller.queue.QueueSize;
import org.apache.nifi.engine.FlowEngine;
import org.apache.nifi.flow.Bundle;
import org.apache.nifi.flow.VersionedExternalFlow;
@@ -81,6 +82,7 @@ public class TestStandardConnectorNode {
scheduler = new FlowEngine(1, "flow-engine");
when(managedProcessGroup.purge()).thenReturn(CompletableFuture.completedFuture(null));
+ when(managedProcessGroup.getQueueSize()).thenReturn(new QueueSize(0,
0L));
flowContextFactory = new FlowContextFactory() {
@Override
@@ -143,47 +145,6 @@ public class TestStandardConnectorNode {
assertFalse(stopFuture.isCancelled());
}
- @Test
- public void testCannotStartFromDisabledState() throws FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
-
- assertThrows(IllegalStateException.class, () ->
connectorNode.start(scheduler));
- }
-
- @Test
- public void testCannotTransitionFromDisabledToRunning() throws
FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
-
- assertThrows(IllegalStateException.class, () ->
connectorNode.start(scheduler));
-
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
- }
-
- @Test
- public void testEnableFromDisabledState() throws FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
-
- connectorNode.enable();
- assertEquals(ConnectorState.STOPPED, connectorNode.getCurrentState());
- assertEquals(ConnectorState.STOPPED, connectorNode.getDesiredState());
- }
-
- @Test
- public void testDisableFromStoppedState() throws FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- assertEquals(ConnectorState.STOPPED, connectorNode.getCurrentState());
-
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
- assertEquals(ConnectorState.DISABLED, connectorNode.getDesiredState());
- }
-
@Test
public void testStartFutureCompletedOnlyWhenRunning() throws Exception {
final StandardConnectorNode connectorNode = createConnectorNode();
@@ -243,14 +204,6 @@ public class TestStandardConnectorNode {
connectorNode.verifyCanDelete();
}
- @Test
- public void testVerifyCanDeleteWhenDisabled() throws FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
- connectorNode.verifyCanDelete();
- }
-
@Test
public void testCannotDeleteWhenRunning() throws Exception {
final StandardConnectorNode connectorNode = createConnectorNode();
@@ -355,23 +308,6 @@ public class TestStandardConnectorNode {
assertEquals(newConfiguration,
connectorNode.getActiveFlowContext().getConfigurationContext().toConnectorConfiguration());
}
- @Test
- public void testSetConfigurationWhenDisabled() throws FlowUpdateException {
- final StandardConnectorNode connectorNode = createConnectorNode();
- connectorNode.disable();
- assertEquals(ConnectorState.DISABLED, connectorNode.getCurrentState());
- assertEquals(ConnectorState.DISABLED, connectorNode.getDesiredState());
-
- final ConnectorConfiguration newConfiguration =
createTestConfiguration();
-
- connectorNode.transitionStateForUpdating();
- connectorNode.prepareForUpdate();
- connectorNode.setConfiguration("testGroup", createStepConfiguration());
- connectorNode.applyUpdate();
-
- assertEquals(newConfiguration,
connectorNode.getActiveFlowContext().getConfigurationContext().toConnectorConfiguration());
- }
-
@Test
public void testSetConfigurationWithPropertyChanges() throws
FlowUpdateException, ExecutionException, InterruptedException, TimeoutException
{
final StandardConnectorNode connectorNode = createConnectorNode();
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ConnectorAuditor.java
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ConnectorAuditor.java
index 73922f984a..57c762451f 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ConnectorAuditor.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ConnectorAuditor.java
@@ -157,58 +157,6 @@ public class ConnectorAuditor extends NiFiAuditor {
}
}
- /**
- * Audits the enabling of a connector via enableConnector().
- *
- * @param proceedingJoinPoint join point
- * @param connectorId connector id
- * @param connectorDAO connector dao
- * @throws Throwable if an error occurs
- */
- @Around("within(org.apache.nifi.web.dao.ConnectorDAO+) && "
- + "execution(void enableConnector(java.lang.String)) && "
- + "args(connectorId) && "
- + "target(connectorDAO)")
- public void enableConnectorAdvice(final ProceedingJoinPoint
proceedingJoinPoint, final String connectorId, final ConnectorDAO connectorDAO)
throws Throwable {
- final ConnectorNode connector = connectorDAO.getConnector(connectorId);
- final ConnectorState previousState = connector.getCurrentState();
-
- proceedingJoinPoint.proceed();
-
- if (isAuditable() && previousState == ConnectorState.DISABLED) {
- final Action action = generateAuditRecord(connector,
Operation.Enable);
- if (action != null) {
- saveAction(action, logger);
- }
- }
- }
-
- /**
- * Audits the disabling of a connector via disableConnector().
- *
- * @param proceedingJoinPoint join point
- * @param connectorId connector id
- * @param connectorDAO connector dao
- * @throws Throwable if an error occurs
- */
- @Around("within(org.apache.nifi.web.dao.ConnectorDAO+) && "
- + "execution(void disableConnector(java.lang.String)) && "
- + "args(connectorId) && "
- + "target(connectorDAO)")
- public void disableConnectorAdvice(final ProceedingJoinPoint
proceedingJoinPoint, final String connectorId, final ConnectorDAO connectorDAO)
throws Throwable {
- final ConnectorNode connector = connectorDAO.getConnector(connectorId);
- final ConnectorState previousState = connector.getCurrentState();
-
- proceedingJoinPoint.proceed();
-
- if (isAuditable() && previousState != ConnectorState.DISABLED) {
- final Action action = generateAuditRecord(connector,
Operation.Disable);
- if (action != null) {
- saveAction(action, logger);
- }
- }
- }
-
/**
* Audits configuration step updates via
updateConnectorConfigurationStep().
*
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 273b1a43aa..84087cbe70 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -3590,7 +3590,6 @@ public class StandardNiFiServiceFacade implements
NiFiServiceFacade {
switch (state) {
case RUNNING -> connectorDAO.startConnector(id);
case STOPPED -> connectorDAO.stopConnector(id);
- case DISABLED -> connectorDAO.disableConnector(id);
default -> throw new IllegalArgumentException("Unsupported
scheduled state for Connector: " + state);
}
controllerFacade.save();
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectorDAO.java
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectorDAO.java
index a494cf47ba..a987dde126 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectorDAO.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectorDAO.java
@@ -45,10 +45,6 @@ public interface ConnectorDAO {
void stopConnector(String id);
- void enableConnector(String id);
-
- void disableConnector(String id);
-
void updateConnectorConfigurationStep(String id, String
configurationStepName, ConfigurationStepConfigurationDTO
configurationStepConfiguration);
void applyConnectorUpdate(String id, ConnectorUpdateContext updateContext);
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectorDAO.java
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectorDAO.java
index d4b2183604..e55e6ceee0 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectorDAO.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectorDAO.java
@@ -127,18 +127,6 @@ public class StandardConnectorDAO implements ConnectorDAO {
getConnectorRepository().stopConnector(connector);
}
- @Override
- public void enableConnector(final String id) {
- final ConnectorNode connector = getConnector(id);
- connector.enable();
- }
-
- @Override
- public void disableConnector(final String id) {
- final ConnectorNode connector = getConnector(id);
- connector.disable();
- }
-
@Override
public void updateConnectorConfigurationStep(final String id, final String
configurationStepName, final ConfigurationStepConfigurationDTO
configurationStepDto) {
final ConnectorNode connector = getConnector(id);
diff --git
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/controller/scheduling/StatelessProcessScheduler.java
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/controller/scheduling/StatelessProcessScheduler.java
index 531b9da34b..72c026083b 100644
---
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/controller/scheduling/StatelessProcessScheduler.java
+++
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/controller/scheduling/StatelessProcessScheduler.java
@@ -345,16 +345,6 @@ public class StatelessProcessScheduler implements
ProcessScheduler {
throw new UnsupportedOperationException();
}
- @Override
- public void enableConnector(final ConnectorNode connectorNode) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void disableConnector(final ConnectorNode connectorNode) {
- throw new UnsupportedOperationException();
- }
-
@Override
public void onConnectorRemoved(final ConnectorNode connectorNode) {
}