You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by bi...@apache.org on 2016/05/13 17:03:09 UTC
incubator-slider git commit: SLIDER-1107 resolve configurations
before publishing and ensure only AM-generated configs are published
Repository: incubator-slider
Updated Branches:
refs/heads/feature/SLIDER-1107_AM_config_generation 511891c15 -> 6b0ca18d4
SLIDER-1107 resolve configurations before publishing and ensure only AM-generated configs are published
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/6b0ca18d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/6b0ca18d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/6b0ca18d
Branch: refs/heads/feature/SLIDER-1107_AM_config_generation
Commit: 6b0ca18d4f6c4d7cc531f893440be0c740d8bf15
Parents: 511891c
Author: Billie Rinaldi <bi...@gmail.com>
Authored: Fri May 13 10:02:51 2016 -0700
Committer: Billie Rinaldi <bi...@gmail.com>
Committed: Fri May 13 10:02:51 2016 -0700
----------------------------------------------------------------------
slider-agent/src/main/python/agent/ActionQueue.py | 2 +-
.../apache/slider/core/conf/ConfTreeOperations.java | 14 ++++++++++++++
.../slider/providers/agent/AgentClientProvider.java | 6 +-----
.../slider/providers/agent/AgentProviderService.java | 15 +++++++++++----
4 files changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6b0ca18d/slider-agent/src/main/python/agent/ActionQueue.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/main/python/agent/ActionQueue.py b/slider-agent/src/main/python/agent/ActionQueue.py
index 107d6c3..6b16767 100644
--- a/slider-agent/src/main/python/agent/ActionQueue.py
+++ b/slider-agent/src/main/python/agent/ActionQueue.py
@@ -161,7 +161,7 @@ class ActionQueue(threading.Thread):
self.commandStatuses.put_command_status(command, in_progress_status, reportResult)
store_config = False
- if ActionQueue.STORE_APPLIED_CONFIG in command['commandParams']:
+ if 'commandParams' in command and ActionQueue.STORE_APPLIED_CONFIG in command['commandParams']:
store_config = 'true' == command['commandParams'][ActionQueue.STORE_APPLIED_CONFIG]
store_command = False
if 'roleParams' in command and ActionQueue.AUTO_RESTART in command['roleParams']:
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6b0ca18d/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java b/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java
index 7e88abd..d376c72 100644
--- a/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java
+++ b/slider-core/src/main/java/org/apache/slider/core/conf/ConfTreeOperations.java
@@ -445,6 +445,20 @@ public class ConfTreeOperations {
}
/**
+ * Get a component opt as a boolean using {@link Boolean#valueOf(String)}.
+ *
+ * @param name component name
+ * @param option option name
+ * @param defVal default value
+ * @return parsed value
+ * @throws NumberFormatException if the role could not be parsed.
+ */
+ public boolean getComponentOptBool(String name, String option, boolean defVal) {
+ String val = getComponentOpt(name, option, Boolean.toString(defVal));
+ return Boolean.valueOf(val);
+ }
+
+ /**
* Set a component option, creating the component if necessary
* @param component component name
* @param option option name
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6b0ca18d/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
index 18e4702..feac6a9 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentClientProvider.java
@@ -441,11 +441,7 @@ public class AgentClientProvider extends AbstractClientProvider
}
}
String user = RegistryUtils.currentUser();
- for (ConfigFile configFile : metaInfo.getApplication().getConfigFiles()) {
- retrieveConfigFile(rops, configuration, configFile, name, user,
- confInstallDir);
- }
- for (ConfigFile configFile : clientComponent.getConfigFiles()) {
+ for (ConfigFile configFile : metaInfo.getComponentConfigFiles(clientComponent.getName())) {
retrieveConfigFile(rops, configuration, configFile, name, user,
confInstallDir);
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6b0ca18d/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index 155ff09..bc04220 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@ -1374,8 +1374,8 @@ public class AgentProviderService extends AbstractProviderService implements
// register AM-generated client configs
ConfTreeOperations appConf = instanceDefinition.getAppConfOperations();
- MapOperations clientOperations = instanceDefinition.getAppConfOperations()
- .getOrAddComponent(client.getName());
+ MapOperations clientOperations = appConf.getOrAddComponent(client.getName());
+ appConf.resolve();
if (!clientOperations.getOptionBool(AgentKeys.AM_CONFIG_GENERATION,
false)) {
log.info("AM config generation is false, not publishing client configs");
@@ -1419,6 +1419,7 @@ public class AgentProviderService extends AbstractProviderService implements
config.entrySet());
getAmState().getPublishedSliderConfigurations().put(
configFile.getDictionaryName(), publishedConfiguration);
+ log.info("Publishing AM configuration {}", configFile.getDictionaryName());
}
}
@@ -1763,7 +1764,9 @@ public class AgentProviderService extends AbstractProviderService implements
if (status.getConfigs() != null) {
Application application = getMetaInfo().getApplication();
- if (canAnyMasterPublishConfig() == false || canPublishConfig(componentGroup)) {
+ if ((!canAnyMasterPublishConfig() || canPublishConfig(componentGroup)) &&
+ !instanceDefinition.getAppConfOperations().getComponentOptBool(
+ componentGroup, AgentKeys.AM_CONFIG_GENERATION, false)) {
// If no Master can explicitly publish then publish if its a master
// Otherwise, wait till the master that can publish is ready
@@ -1887,7 +1890,11 @@ public class AgentProviderService extends AbstractProviderService implements
simpleEntries.put(entry.getKey(), entry.getValue().get(0).getValue());
}
}
- publishApplicationInstanceData(groupName, groupName, simpleEntries.entrySet());
+ if (!instanceDefinition.getAppConfOperations().getComponentOptBool(
+ groupName, AgentKeys.AM_CONFIG_GENERATION, false)) {
+ publishApplicationInstanceData(groupName, groupName,
+ simpleEntries.entrySet());
+ }
PublishedExports exports = new PublishedExports(groupName);
exports.setUpdated(new Date().getTime());