You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2015/08/19 22:21:33 UTC
ambari git commit: AMBARI-12816: [PluggableStackDefinition] add
processing of custom actions (Eugene Chekanskiy via jluniya)
Repository: ambari
Updated Branches:
refs/heads/trunk ba7a94fde -> bcbb0ae41
AMBARI-12816: [PluggableStackDefinition] add processing of custom actions (Eugene Chekanskiy via jluniya)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bcbb0ae4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bcbb0ae4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bcbb0ae4
Branch: refs/heads/trunk
Commit: bcbb0ae41e98b9e9c4e1d91383b900525633becb
Parents: ba7a94f
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Wed Aug 19 13:21:27 2015 -0700
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Wed Aug 19 13:21:27 2015 -0700
----------------------------------------------------------------------
ambari-agent/pom.xml | 28 ++++++++++++++
.../GenerateStackDefinition.py | 39 +++++++++++++++-----
.../pluggable_stack_definition/configs/PHD.json | 12 ++++++
ambari-server/pom.xml | 6 ++-
4 files changed, 73 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcbb0ae4/ambari-agent/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-agent/pom.xml b/ambari-agent/pom.xml
index 6ed8bff..24927e2 100644
--- a/ambari-agent/pom.xml
+++ b/ambari-agent/pom.xml
@@ -53,6 +53,7 @@
<init.d.dir>/etc/rc.d/init.d</init.d.dir>
<resourceManagementSrcLocation>${project.basedir}/../ambari-common/src/main/python/resource_management</resourceManagementSrcLocation>
<resourcesFolder>${ambari.server.module}/src/main/resources</resourcesFolder>
+ <customActionsLocation>${target.cache.dir}/custom_actions</customActionsLocation>
</properties>
<build>
<plugins>
@@ -438,6 +439,20 @@
<sources>
<source>
<location>${target.cache.dir}</location>
+ <excludes>
+ <exclude>custom_actions/scripts/*</exclude>
+ </excludes>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/var/lib/ambari-agent/cache/custom_actions</directory>
+ <filemode>755</filemode>
+ <username>root</username>
+ <groupname>root</groupname>
+ <sources>
+ <source>
+ <location>${customActionsLocation}</location>
</source>
</sources>
</mapping>
@@ -640,6 +655,7 @@
<data>
<src>${target.cache.dir}</src>
<type>directory</type>
+ <excludes>custom_actions/scripts/*</excludes>
<mapper>
<type>perm</type>
<prefix>/var/lib/ambari-agent/cache</prefix>
@@ -649,6 +665,17 @@
</mapper>
</data>
<data>
+ <src>${customActionsLocation}</src>
+ <type>directory</type>
+ <mapper>
+ <type>perm</type>
+ <prefix>/var/lib/ambari-agent/cache/custom_actions</prefix>
+ <user>root</user>
+ <group>root</group>
+ <filemode>755</filemode>
+ </mapper>
+ </data>
+ <data>
<src>
${project.basedir}/../ambari-common/src/main/python/ambari_commons
</src>
@@ -934,6 +961,7 @@
<pluggableStackDefinitionScriptLocation>${project.basedir}/../ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py</pluggableStackDefinitionScriptLocation>
<pluggableStackDefinitionConfig>${project.basedir}/../ambari-common/src/main/python/pluggable_stack_definition/configs/${stack.distribution}.json</pluggableStackDefinitionConfig>
<pluggableStackDefinitionOutput>target/pluggable-stack-definition</pluggableStackDefinitionOutput>
+ <customActionsLocation>${pluggableStackDefinitionOutput}/custom_actions</customActionsLocation>
</properties>
<build>
<plugins>
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcbb0ae4/ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py b/ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py
index 2ba6f77..c09c788 100644
--- a/ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py
+++ b/ambari-common/src/main/python/pluggable_stack_definition/GenerateStackDefinition.py
@@ -125,6 +125,7 @@ def process_replacements(file_path, config_data, stack_version_changes):
if not file_path.endswith(".xml"):
for _from, _to in stack_version_changes.iteritems():
file_data = file_data.replace(_from, _to)
+ file_data = process_version_replace(file_data, _from, _to)
# preform common replacements
if 'performCommonReplacements' in config_data and config_data.performCommonReplacements:
for from_version, to_version in stack_version_changes.iteritems():
@@ -139,6 +140,18 @@ def process_replacements(file_path, config_data, stack_version_changes):
target.write(file_data.encode('utf-8'))
return file_path
+def process_version_replace(text, base_version, version):
+ dash_base_version = base_version.replace('.', '-')
+ dash_version = version.replace('.', '-')
+ underscore_base_version = base_version.replace('.', '_')
+ underscore_version = version.replace('.', '_')
+ if dash_base_version in text:
+ text = text.replace(dash_base_version, dash_version)
+ if underscore_base_version in text:
+ text = text.replace(underscore_base_version, underscore_version)
+ return text
+
+
def process_metainfo(file_path, config_data, stack_version_changes, common_services = []):
tree = ET.parse(file_path)
root = tree.getroot()
@@ -247,16 +260,7 @@ def process_metainfo(file_path, config_data, stack_version_changes, common_servi
name_tag = package_tag.find('name')
for base_version in stack_version_changes:
version = stack_version_changes[base_version]
- dash_base_version = base_version.replace('.', '-')
- dash_version = version.replace('.', '-')
- underscore_base_version = base_version.replace('.', '_')
- underscore_version = version.replace('.', '_')
- if dash_base_version in name_tag.text:
- name_tag.text = name_tag.text.replace(dash_base_version, dash_version)
- break
- elif underscore_base_version in name_tag.text:
- name_tag.text = name_tag.text.replace(underscore_base_version, underscore_version)
- break
+ name_tag.text = process_version_replace(name_tag.text, base_version, version)
tree.write(file_path)
return file_path
@@ -520,6 +524,20 @@ class GeneratorHelper(object):
open(os.path.join(self.output_folder, "custom_stack_map.js"),"w").write(js_file_content)
pass
+ def copy_custom_actions(self):
+ original_folder = os.path.join(self.resources_folder, 'custom_actions')
+ target_folder = os.path.join(self.output_folder, 'custom_actions')
+ ignored_files = ['.pyc']
+
+ def post_copy(src, target):
+ # process python files
+ if target.endswith('.py'):
+ # process script.py
+ process_py_files(target, self.config_data, self.stack_version_changes)
+ return
+
+ copy_tree(original_folder, target_folder, ignored_files, post_copy=post_copy)
+
def main(argv):
HELP_STRING = 'GenerateStackDefinition.py -c <config> -r <resources_folder> -o <output_folder>'
config = ''
@@ -551,6 +569,7 @@ def main(argv):
gen_helper.copy_common_services()
gen_helper.copy_ambari_properties()
gen_helper.generate_ui_mapping()
+ gen_helper.copy_custom_actions()
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcbb0ae4/ambari-common/src/main/python/pluggable_stack_definition/configs/PHD.json
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/pluggable_stack_definition/configs/PHD.json b/ambari-common/src/main/python/pluggable_stack_definition/configs/PHD.json
index 5c96bd6..88ce152 100644
--- a/ambari-common/src/main/python/pluggable_stack_definition/configs/PHD.json
+++ b/ambari-common/src/main/python/pluggable_stack_definition/configs/PHD.json
@@ -29,6 +29,9 @@
"active": "false",
"services": [
{
+ "name": "AMBARI_METRICS"
+ },
+ {
"name": "HDFS"
},
@@ -68,6 +71,9 @@
"family": "redhat6,suse11",
"services": [
{
+ "name": "AMBARI_METRICS"
+ },
+ {
"name": "HDFS"
},
{
@@ -106,6 +112,9 @@
"family": "redhat6,suse11",
"services": [
{
+ "name": "AMBARI_METRICS"
+ },
+ {
"name": "HDFS"
},
{
@@ -175,6 +184,9 @@
"family": "redhat6,redhat7,suse11",
"services": [
{
+ "name": "AMBARI_METRICS"
+ },
+ {
"name": "HDFS"
},
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcbb0ae4/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index 7d09cc1..2e16a59 100644
--- a/ambari-server/pom.xml
+++ b/ambari-server/pom.xml
@@ -42,6 +42,7 @@
<contrib-views-dir>${basedir}/../contrib/views</contrib-views-dir>
<resourceManagementSrcLocation>${project.basedir}/../ambari-common/src/main/python/resource_management</resourceManagementSrcLocation>
<customStackMap>${basedir}/../ambari-web/app/data/custom_stack_map.js</customStackMap>
+ <customActionsRoot>src/main/resources/custom_actions</customActionsRoot>
<ambariProperties>conf/unix/ambari.properties</ambariProperties>
<commonServicesSrcLocation>target/classes/common-services</commonServicesSrcLocation>
<stacksSrcLocation>target/classes/stacks/${stack.distribution}</stacksSrcLocation>
@@ -668,7 +669,7 @@
<groupname>root</groupname>
<sources>
<source>
- <location>src/main/resources/custom_actions</location>
+ <location>${customActionsRoot}</location>
</source>
</sources>
</mapping>
@@ -1127,7 +1128,7 @@
</mapper>
</data>
<data>
- <src>src/main/resources/custom_actions</src>
+ <src>${customActionsRoot}</src>
<type>directory</type>
<mapper>
<type>perm</type>
@@ -1537,6 +1538,7 @@
</property>
</activation>
<properties>
+ <customActionsRoot>target/pluggable-stack-definition/custom_actions</customActionsRoot>
<customStackMap>target/pluggable-stack-definition/custom_stack_map.js</customStackMap>
<ambariProperties>target/pluggable-stack-definition/conf/unix/ambari.properties</ambariProperties>
<resourceManagementSrcLocation>target/pluggable-stack-definition/python/resource_management</resourceManagementSrcLocation>