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

Reply via email to