You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by olegz <gi...@git.apache.org> on 2016/06/17 16:09:42 UTC
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
GitHub user olegz opened a pull request:
https://github.com/apache/nifi/pull/541
NIFI-2032 fixed 'enableControllerServices' logic
added getRequiredControllerServices() operation to ControllerServiceNode
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/olegz/nifi NIFI-2032
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi/pull/541.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #541
----
commit d0f96d47a034af1b589c6982e4598cbfb5ec66ce
Author: Oleg Zhurakousky <ol...@suitcase.io>
Date: 2016-06-17T16:08:26Z
NIFI-2032 fixed 'enableControllerServices' logic
added getRequiredControllerServices() operation to ControllerServiceNode
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on the issue:
https://github.com/apache/nifi/pull/541
Getting a compilation failure missing `import org.apache.nifi.reporting.BulletinFactory`. Did this get missed in the second commit?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:
https://github.com/apache/nifi/pull/541
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67581275
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -70,7 +67,7 @@
private final ProcessScheduler processScheduler;
private static final Set<Method> validDisabledMethods;
- private final BulletinRepository bulletinRepo;
+ // private final BulletinRepository bulletinRepo;
--- End diff --
Is the `BulletinRepository` no longer necessary?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67581551
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -372,98 +369,32 @@ public void enableControllerService(final ControllerServiceNode serviceNode) {
@Override
public void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes) {
- final Set<ControllerServiceNode> servicesToEnable = new HashSet<>();
- // Ensure that all nodes are already disabled
- for (final ControllerServiceNode serviceNode : serviceNodes) {
- final ControllerServiceState curState = serviceNode.getState();
- if (ControllerServiceState.DISABLED.equals(curState)) {
- servicesToEnable.add(serviceNode);
- } else {
- logger.warn("Cannot enable {} because it is not disabled; current state is {}", serviceNode, curState);
+ boolean shouldStart = true;
+
+ Iterator<ControllerServiceNode> serviceIter = serviceNodes.iterator();
+ while (serviceIter.hasNext() && shouldStart) {
+ ControllerServiceNode controllerServiceNode = serviceIter.next();
+ List<ControllerServiceNode> requiredServices = ((StandardControllerServiceNode) controllerServiceNode).getRequiredControllerServices();
+ for (ControllerServiceNode requiredService : requiredServices) {
+ if (!requiredService.isActive() && !serviceNodes.contains(requiredService)) {
+ shouldStart = false;
+ }
}
}
- // determine the order to load the services. We have to ensure that if service A references service B, then B
- // is enabled first, and so on.
- final Map<String, ControllerServiceNode> idToNodeMap = new HashMap<>();
- for (final ControllerServiceNode node : servicesToEnable) {
- idToNodeMap.put(node.getIdentifier(), node);
- }
-
- // We can have many Controller Services dependent on one another. We can have many of these
- // disparate lists of Controller Services that are dependent on one another. We refer to each
- // of these as a branch.
- final List<List<ControllerServiceNode>> branches = determineEnablingOrder(idToNodeMap);
-
- if (branches.isEmpty()) {
- logger.info("No Controller Services to enable");
- return;
- } else {
- logger.info("Will enable {} Controller Services", servicesToEnable.size());
- }
-
- final Set<ControllerServiceNode> enabledNodes = Collections.synchronizedSet(new HashSet<ControllerServiceNode>());
- final ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, branches.size()), new ThreadFactory() {
- @Override
- public Thread newThread(final Runnable r) {
- final Thread t = Executors.defaultThreadFactory().newThread(r);
- t.setDaemon(true);
- t.setName("Enable Controller Services");
- return t;
- }
- });
-
- for (final List<ControllerServiceNode> branch : branches) {
- final Runnable enableBranchRunnable = new Runnable() {
+ if (shouldStart) {
+ List<ControllerServiceNode> services = new ArrayList<>(serviceNodes);
+ Collections.sort(services, new Comparator<ControllerServiceNode>() {
--- End diff --
This looks like a much cleaner way to perform this behavior, but are there any tests for the dependency traversal to ensure it's complete?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67738328
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -70,7 +67,7 @@
private final ProcessScheduler processScheduler;
private static final Set<Method> validDisabledMethods;
- private final BulletinRepository bulletinRepo;
+ // private final BulletinRepository bulletinRepo;
--- End diff --
I removed the two commented lines (the declaration and the assignment in the constructor). However, I did not change the constructor contract, as it is used 17 times throughout the application. @mcgilman @markap14 is the bulletin repository work going to have additional impact, or is it safe to clean up this constructor universally?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by olegz <gi...@git.apache.org>.
Github user olegz commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67766144
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -372,98 +369,32 @@ public void enableControllerService(final ControllerServiceNode serviceNode) {
@Override
public void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes) {
- final Set<ControllerServiceNode> servicesToEnable = new HashSet<>();
- // Ensure that all nodes are already disabled
- for (final ControllerServiceNode serviceNode : serviceNodes) {
- final ControllerServiceState curState = serviceNode.getState();
- if (ControllerServiceState.DISABLED.equals(curState)) {
- servicesToEnable.add(serviceNode);
- } else {
- logger.warn("Cannot enable {} because it is not disabled; current state is {}", serviceNode, curState);
+ boolean shouldStart = true;
+
+ Iterator<ControllerServiceNode> serviceIter = serviceNodes.iterator();
+ while (serviceIter.hasNext() && shouldStart) {
+ ControllerServiceNode controllerServiceNode = serviceIter.next();
+ List<ControllerServiceNode> requiredServices = ((StandardControllerServiceNode) controllerServiceNode).getRequiredControllerServices();
+ for (ControllerServiceNode requiredService : requiredServices) {
+ if (!requiredService.isActive() && !serviceNodes.contains(requiredService)) {
+ shouldStart = false;
+ }
}
}
- // determine the order to load the services. We have to ensure that if service A references service B, then B
- // is enabled first, and so on.
- final Map<String, ControllerServiceNode> idToNodeMap = new HashMap<>();
- for (final ControllerServiceNode node : servicesToEnable) {
- idToNodeMap.put(node.getIdentifier(), node);
- }
-
- // We can have many Controller Services dependent on one another. We can have many of these
- // disparate lists of Controller Services that are dependent on one another. We refer to each
- // of these as a branch.
- final List<List<ControllerServiceNode>> branches = determineEnablingOrder(idToNodeMap);
-
- if (branches.isEmpty()) {
- logger.info("No Controller Services to enable");
- return;
- } else {
- logger.info("Will enable {} Controller Services", servicesToEnable.size());
- }
-
- final Set<ControllerServiceNode> enabledNodes = Collections.synchronizedSet(new HashSet<ControllerServiceNode>());
- final ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, branches.size()), new ThreadFactory() {
- @Override
- public Thread newThread(final Runnable r) {
- final Thread t = Executors.defaultThreadFactory().newThread(r);
- t.setDaemon(true);
- t.setName("Enable Controller Services");
- return t;
- }
- });
-
- for (final List<ControllerServiceNode> branch : branches) {
- final Runnable enableBranchRunnable = new Runnable() {
+ if (shouldStart) {
+ List<ControllerServiceNode> services = new ArrayList<>(serviceNodes);
+ Collections.sort(services, new Comparator<ControllerServiceNode>() {
@Override
- public void run() {
- logger.debug("Enabling Controller Service Branch {}", branch);
-
- for (final ControllerServiceNode serviceNode : branch) {
- try {
- if (!enabledNodes.contains(serviceNode)) {
- enabledNodes.add(serviceNode);
-
- logger.info("Enabling {}", serviceNode);
- try {
- serviceNode.verifyCanEnable();
- processScheduler.enableControllerService(serviceNode);
- } catch (final Exception e) {
- logger.error("Failed to enable " + serviceNode + " due to " + e);
- if (logger.isDebugEnabled()) {
- logger.error("", e);
- }
-
- if (bulletinRepo != null) {
--- End diff --
So, I've just put _bulletinRepo_ logic back. The commit isn't squashed so you can see the changes in isolation.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67740493
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -372,98 +369,32 @@ public void enableControllerService(final ControllerServiceNode serviceNode) {
@Override
public void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes) {
- final Set<ControllerServiceNode> servicesToEnable = new HashSet<>();
- // Ensure that all nodes are already disabled
- for (final ControllerServiceNode serviceNode : serviceNodes) {
- final ControllerServiceState curState = serviceNode.getState();
- if (ControllerServiceState.DISABLED.equals(curState)) {
- servicesToEnable.add(serviceNode);
- } else {
- logger.warn("Cannot enable {} because it is not disabled; current state is {}", serviceNode, curState);
+ boolean shouldStart = true;
+
+ Iterator<ControllerServiceNode> serviceIter = serviceNodes.iterator();
+ while (serviceIter.hasNext() && shouldStart) {
+ ControllerServiceNode controllerServiceNode = serviceIter.next();
+ List<ControllerServiceNode> requiredServices = ((StandardControllerServiceNode) controllerServiceNode).getRequiredControllerServices();
+ for (ControllerServiceNode requiredService : requiredServices) {
+ if (!requiredService.isActive() && !serviceNodes.contains(requiredService)) {
+ shouldStart = false;
+ }
}
}
- // determine the order to load the services. We have to ensure that if service A references service B, then B
- // is enabled first, and so on.
- final Map<String, ControllerServiceNode> idToNodeMap = new HashMap<>();
- for (final ControllerServiceNode node : servicesToEnable) {
- idToNodeMap.put(node.getIdentifier(), node);
- }
-
- // We can have many Controller Services dependent on one another. We can have many of these
- // disparate lists of Controller Services that are dependent on one another. We refer to each
- // of these as a branch.
- final List<List<ControllerServiceNode>> branches = determineEnablingOrder(idToNodeMap);
-
- if (branches.isEmpty()) {
- logger.info("No Controller Services to enable");
- return;
- } else {
- logger.info("Will enable {} Controller Services", servicesToEnable.size());
- }
-
- final Set<ControllerServiceNode> enabledNodes = Collections.synchronizedSet(new HashSet<ControllerServiceNode>());
- final ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, branches.size()), new ThreadFactory() {
- @Override
- public Thread newThread(final Runnable r) {
- final Thread t = Executors.defaultThreadFactory().newThread(r);
- t.setDaemon(true);
- t.setName("Enable Controller Services");
- return t;
- }
- });
-
- for (final List<ControllerServiceNode> branch : branches) {
- final Runnable enableBranchRunnable = new Runnable() {
+ if (shouldStart) {
+ List<ControllerServiceNode> services = new ArrayList<>(serviceNodes);
+ Collections.sort(services, new Comparator<ControllerServiceNode>() {
@Override
- public void run() {
- logger.debug("Enabling Controller Service Branch {}", branch);
-
- for (final ControllerServiceNode serviceNode : branch) {
- try {
- if (!enabledNodes.contains(serviceNode)) {
- enabledNodes.add(serviceNode);
-
- logger.info("Enabling {}", serviceNode);
- try {
- serviceNode.verifyCanEnable();
- processScheduler.enableControllerService(serviceNode);
- } catch (final Exception e) {
- logger.error("Failed to enable " + serviceNode + " due to " + e);
- if (logger.isDebugEnabled()) {
- logger.error("", e);
- }
-
- if (bulletinRepo != null) {
--- End diff --
Ok, we should probably maintain that behavior, correct? Not sure why it was commented out initially.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by olegz <gi...@git.apache.org>.
Github user olegz commented on the issue:
https://github.com/apache/nifi/pull/541
I see, it appears that I have to reference different ```org.apache.nifi.events.BulletinFactory```, building now
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on the issue:
https://github.com/apache/nifi/pull/541
I merged into master but I've had to rebase and resolve conflicts 3 times on `0.x` branch and still have tests failing. Will continue working on that part in the morning.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by olegz <gi...@git.apache.org>.
Github user olegz commented on the issue:
https://github.com/apache/nifi/pull/541
@alopresto so I just fixed it and squashed it with the last commit. No compilation error on my end. LMK
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by mcgilman <gi...@git.apache.org>.
Github user mcgilman commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67739760
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -70,7 +67,7 @@
private final ProcessScheduler processScheduler;
private static final Set<Method> validDisabledMethods;
- private final BulletinRepository bulletinRepo;
+ // private final BulletinRepository bulletinRepo;
--- End diff --
I would have to defer to @markap14 but it appears it was being used. See below.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by olegz <gi...@git.apache.org>.
Github user olegz commented on the issue:
https://github.com/apache/nifi/pull/541
@alopresto let me look at what's going on with 0.x and I'll issue a separate PR. Thanks!
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by olegz <gi...@git.apache.org>.
Github user olegz commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67582485
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -70,7 +67,7 @@
private final ProcessScheduler processScheduler;
private static final Set<Method> validDisabledMethods;
- private final BulletinRepository bulletinRepo;
+ // private final BulletinRepository bulletinRepo;
--- End diff --
I assume so, this change is du to changes from Mark and Matt this morning. I probably should remove comment
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi issue #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by alopresto <gi...@git.apache.org>.
Github user alopresto commented on the issue:
https://github.com/apache/nifi/pull/541
Thanks @olegz . I will build locally and merge.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] nifi pull request #541: NIFI-2032 fixed 'enableControllerServices' logic
Posted by mcgilman <gi...@git.apache.org>.
Github user mcgilman commented on a diff in the pull request:
https://github.com/apache/nifi/pull/541#discussion_r67739510
--- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java ---
@@ -372,98 +369,32 @@ public void enableControllerService(final ControllerServiceNode serviceNode) {
@Override
public void enableControllerServices(final Collection<ControllerServiceNode> serviceNodes) {
- final Set<ControllerServiceNode> servicesToEnable = new HashSet<>();
- // Ensure that all nodes are already disabled
- for (final ControllerServiceNode serviceNode : serviceNodes) {
- final ControllerServiceState curState = serviceNode.getState();
- if (ControllerServiceState.DISABLED.equals(curState)) {
- servicesToEnable.add(serviceNode);
- } else {
- logger.warn("Cannot enable {} because it is not disabled; current state is {}", serviceNode, curState);
+ boolean shouldStart = true;
+
+ Iterator<ControllerServiceNode> serviceIter = serviceNodes.iterator();
+ while (serviceIter.hasNext() && shouldStart) {
+ ControllerServiceNode controllerServiceNode = serviceIter.next();
+ List<ControllerServiceNode> requiredServices = ((StandardControllerServiceNode) controllerServiceNode).getRequiredControllerServices();
+ for (ControllerServiceNode requiredService : requiredServices) {
+ if (!requiredService.isActive() && !serviceNodes.contains(requiredService)) {
+ shouldStart = false;
+ }
}
}
- // determine the order to load the services. We have to ensure that if service A references service B, then B
- // is enabled first, and so on.
- final Map<String, ControllerServiceNode> idToNodeMap = new HashMap<>();
- for (final ControllerServiceNode node : servicesToEnable) {
- idToNodeMap.put(node.getIdentifier(), node);
- }
-
- // We can have many Controller Services dependent on one another. We can have many of these
- // disparate lists of Controller Services that are dependent on one another. We refer to each
- // of these as a branch.
- final List<List<ControllerServiceNode>> branches = determineEnablingOrder(idToNodeMap);
-
- if (branches.isEmpty()) {
- logger.info("No Controller Services to enable");
- return;
- } else {
- logger.info("Will enable {} Controller Services", servicesToEnable.size());
- }
-
- final Set<ControllerServiceNode> enabledNodes = Collections.synchronizedSet(new HashSet<ControllerServiceNode>());
- final ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, branches.size()), new ThreadFactory() {
- @Override
- public Thread newThread(final Runnable r) {
- final Thread t = Executors.defaultThreadFactory().newThread(r);
- t.setDaemon(true);
- t.setName("Enable Controller Services");
- return t;
- }
- });
-
- for (final List<ControllerServiceNode> branch : branches) {
- final Runnable enableBranchRunnable = new Runnable() {
+ if (shouldStart) {
+ List<ControllerServiceNode> services = new ArrayList<>(serviceNodes);
+ Collections.sort(services, new Comparator<ControllerServiceNode>() {
@Override
- public void run() {
- logger.debug("Enabling Controller Service Branch {}", branch);
-
- for (final ControllerServiceNode serviceNode : branch) {
- try {
- if (!enabledNodes.contains(serviceNode)) {
- enabledNodes.add(serviceNode);
-
- logger.info("Enabling {}", serviceNode);
- try {
- serviceNode.verifyCanEnable();
- processScheduler.enableControllerService(serviceNode);
- } catch (final Exception e) {
- logger.error("Failed to enable " + serviceNode + " due to " + e);
- if (logger.isDebugEnabled()) {
- logger.error("", e);
- }
-
- if (bulletinRepo != null) {
--- End diff --
Looks like we were creating a bulletin whenever we were unable to enable a Controller Service.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---