NIFI-250: - Updating the controller service references endpoint to accept an activated flag that drivens whether processors/reporting tasks are started/stopped and controller services enabled/disabled.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/f22407f5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/f22407f5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/f22407f5 Branch: refs/heads/NIFI-250 Commit: f22407f59347010aede5c12cd64652a381f4fd59 Parents: e4e61da Author: Matt Gilman <[email protected]> Authored: Tue Feb 17 14:54:32 2015 -0500 Committer: Matt Gilman <[email protected]> Committed: Tue Feb 17 14:54:32 2015 -0500 ---------------------------------------------------------------------- .../java/org/apache/nifi/web/NiFiServiceFacade.java | 4 ++-- .../org/apache/nifi/web/StandardNiFiServiceFacade.java | 4 ++-- .../apache/nifi/web/api/ControllerServiceResource.java | 13 +++++++++---- .../org/apache/nifi/web/dao/ControllerServiceDAO.java | 4 ++-- .../web/dao/impl/StandardControllerServiceDAO.java | 12 ++++++++++-- 5 files changed, 25 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f22407f5/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java index 8ed7062..77ed70a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java @@ -981,10 +981,10 @@ public interface NiFiServiceFacade { * * @param revision * @param controllerServiceId - * @param state + * @param activated * @return */ - ConfigurationSnapshot<Set<ControllerServiceReferencingComponentDTO>> updateControllerServiceReferencingComponents(Revision revision, String controllerServiceId, String state); + ConfigurationSnapshot<Set<ControllerServiceReferencingComponentDTO>> updateControllerServiceReferencingComponents(Revision revision, String controllerServiceId, boolean activated); /** * Updates the specified label. http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f22407f5/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java index 2ed5611..75a281a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java @@ -1210,11 +1210,11 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { } @Override - public ConfigurationSnapshot<Set<ControllerServiceReferencingComponentDTO>> updateControllerServiceReferencingComponents(final Revision revision, final String controllerServiceId, final String state) { + public ConfigurationSnapshot<Set<ControllerServiceReferencingComponentDTO>> updateControllerServiceReferencingComponents(final Revision revision, final String controllerServiceId, final boolean activated) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Set<ControllerServiceReferencingComponentDTO>>() { @Override public Set<ControllerServiceReferencingComponentDTO> execute() { - final ControllerServiceReference reference = controllerServiceDAO.updateControllerServiceReferencingComponents(controllerServiceId, state); + final ControllerServiceReference reference = controllerServiceDAO.updateControllerServiceReferencingComponents(controllerServiceId, activated); return dtoFactory.createControllerServiceReferencingComponentsDto(reference); } }); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f22407f5/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java index aaf3b40..c72b8ff 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java @@ -385,8 +385,8 @@ public class ControllerServiceResource extends ApplicationResource { * @param availability Whether the controller service is available on the NCM only (ncm) or on the * nodes only (node). If this instance is not clustered all services should use the node availability. * @param id The id of the controller service to retrieve - * @param state Possible values include 'START' or 'STOP'. For processors and reporting tasks this will - * set the scheduled state accordingly. For controller services this will enable or disable accordingly. + * @param activated Whether or not to activate referencing components. For processors and reporting tasks this + * will set the scheduled state accordingly. For controller services this will enable or disable accordingly. * @return A controllerServiceEntity. */ @PUT @@ -400,8 +400,13 @@ public class ControllerServiceResource extends ApplicationResource { @FormParam(VERSION) LongParameter version, @FormParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("availability") String availability, @PathParam("id") String id, - @FormParam("state") String state) { + @FormParam("activated") Boolean activated) { + // ensure the activate flag has been specified + if (activated == null) { + throw new IllegalArgumentException("Must specified whether or not to activate the controller service references."); + } + final Availability avail = parseAvailability(availability); // replicate if cluster manager @@ -423,7 +428,7 @@ public class ControllerServiceResource extends ApplicationResource { // get the controller service final ConfigurationSnapshot<Set<ControllerServiceReferencingComponentDTO>> response = - serviceFacade.updateControllerServiceReferencingComponents(new Revision(clientVersion, clientId.getClientId()), id, state); + serviceFacade.updateControllerServiceReferencingComponents(new Revision(clientVersion, clientId.getClientId()), id, activated); // create the revision final RevisionDTO revision = new RevisionDTO(); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f22407f5/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java index 293519e..a457833 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java @@ -70,10 +70,10 @@ public interface ControllerServiceDAO { * Updates the referencing components for the specified controller service. * * @param controllerServiceId - * @param state + * @param activated * @return */ - ControllerServiceReference updateControllerServiceReferencingComponents(String controllerServiceId, String state); + ControllerServiceReference updateControllerServiceReferencingComponents(String controllerServiceId, boolean activated); /** * Determines whether this controller service can be updated. http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f22407f5/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java index beb9460..0460a6c 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java @@ -137,11 +137,19 @@ public class StandardControllerServiceDAO extends ComponentDAO implements Contro } @Override - public ControllerServiceReference updateControllerServiceReferencingComponents(final String controllerServiceId, final String state) { + public ControllerServiceReference updateControllerServiceReferencingComponents(final String controllerServiceId, final boolean activated) { // get the controller service final ControllerServiceNode controllerService = locateControllerService(controllerServiceId); -// serviceProvider. + // TODO - these actions need to be atomic... can't have partial success... maybe already handled? + + // perform the desired action + if (activated) { + serviceProvider.activateReferencingComponents(controllerService); + } else { + serviceProvider.deactivateReferencingComponents(controllerService); + } + return controllerService.getReferences(); }
