You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by sm...@apache.org on 2014/08/24 04:58:23 UTC
[09/32] git commit: SLIDER-181. Slider support for Storm application
package (changes to take advantage of new packaging constructs)
SLIDER-181. Slider support for Storm application package (changes to take advantage of new packaging constructs)
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/111e03f3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/111e03f3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/111e03f3
Branch: refs/heads/feature/hbase_win_package
Commit: 111e03f37b6154ef9e8827e030c262afeac2d763
Parents: 0efb806
Author: Sumit Mohanty <sm...@hortonworks.com>
Authored: Thu Aug 21 13:26:09 2014 -0700
Committer: Sumit Mohanty <sm...@hortonworks.com>
Committed: Thu Aug 21 13:26:09 2014 -0700
----------------------------------------------------------------------
app-packages/hbase/package/scripts/hbase.py | 5 +-
app-packages/hbase/package/scripts/params.py | 1 +
app-packages/storm/appConfig.json | 88 +-------------------
app-packages/storm/configuration/global.xml | 39 ---------
app-packages/storm/configuration/storm-env.xml | 40 +++++++++
app-packages/storm/configuration/storm-site.xml | 15 +---
app-packages/storm/metainfo.xml | 14 ++++
app-packages/storm/package/scripts/params.py | 8 +-
app-packages/storm/package/scripts/storm.py | 7 +-
.../storm/package/scripts/yaml_config.py | 7 +-
.../core/providers/system.py | 8 ++
.../core/resources/system.py | 1 +
12 files changed, 90 insertions(+), 143 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/hbase/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/app-packages/hbase/package/scripts/hbase.py b/app-packages/hbase/package/scripts/hbase.py
index 32f267f..a979bc6 100644
--- a/app-packages/hbase/package/scripts/hbase.py
+++ b/app-packages/hbase/package/scripts/hbase.py
@@ -21,6 +21,7 @@ import os
from resource_management import *
import sys
+import shutil
def hbase(name=None # 'master' or 'regionserver' or 'client'
):
@@ -35,10 +36,12 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
mode=0711
)
params.HdfsDirectory(None, action="create")
+
Directory( params.conf_dir,
owner = params.hbase_user,
group = params.user_group,
- recursive = True
+ recursive = True,
+ content = params.input_conf_files_dir
)
Directory (params.tmp_dir,
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/hbase/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/app-packages/hbase/package/scripts/params.py b/app-packages/hbase/package/scripts/params.py
index 431acb2..33e2bbf 100644
--- a/app-packages/hbase/package/scripts/params.py
+++ b/app-packages/hbase/package/scripts/params.py
@@ -51,6 +51,7 @@ regionserver_xmn_size = calc_xmn_from_xms(regionserver_heapsize, regionserver_xm
pid_dir = status_params.pid_dir
tmp_dir = config['configurations']['hbase-site']['hbase.tmp.dir']
local_dir = substitute_vars(config['configurations']['hbase-site']['hbase.local.dir'], config['configurations']['hbase-site'])
+input_conf_files_dir = config['configurations']['global']['app_input_conf_dir']
client_jaas_config_file = default('hbase_client_jaas_config_file', format("{conf_dir}/hbase_client_jaas.conf"))
master_jaas_config_file = default('hbase_master_jaas_config_file', format("{conf_dir}/hbase_master_jaas.conf"))
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/appConfig.json
----------------------------------------------------------------------
diff --git a/app-packages/storm/appConfig.json b/app-packages/storm/appConfig.json
index 24078cf..1322a01 100644
--- a/app-packages/storm/appConfig.json
+++ b/app-packages/storm/appConfig.json
@@ -4,10 +4,9 @@
},
"global": {
"application.def": "package/storm_v091.zip",
- "config_types": "storm-site",
"java_home": "/usr/jdk64/jdk1.7.0_45",
- "package_list": "files/apache-storm-0.9.1.2.1.1.0-237.tar.gz",
"create.default.zookeeper.node": "true",
+
"site.global.app_user": "yarn",
"site.global.app_root": "${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237",
"site.global.user_group": "hadoop",
@@ -18,109 +17,28 @@
"site.global.ganglia_server_port": "8668",
"site.global.rest_api_port": "${STORM_REST_API.ALLOCATED_PORT}",
"site.global.rest_api_admin_port": "${STORM_REST_API.ALLOCATED_PORT}",
- "site.storm-site.topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer",
- "site.storm-site.topology.workers": "1",
- "site.storm-site.drpc.worker.threads": "64",
+
"site.storm-site.storm.zookeeper.servers": "['${ZK_HOST}']",
- "site.storm-site.supervisor.heartbeat.frequency.secs": "5",
- "site.storm-site.topology.executor.send.buffer.size": "1024",
- "site.storm-site.drpc.childopts": "-Xmx768m",
"site.storm-site.nimbus.thrift.port": "${NIMBUS.ALLOCATED_PORT}",
- "site.storm-site.storm.zookeeper.retry.intervalceiling.millis": "30000",
"site.storm-site.storm.local.dir": "${AGENT_WORK_ROOT}/app/tmp/storm",
- "site.storm-site.topology.receiver.buffer.size": "8",
- "site.storm-site.storm.messaging.netty.client_worker_threads": "1",
"site.storm-site.transactional.zookeeper.root": "/transactional",
- "site.storm-site.drpc.request.timeout.secs": "600",
- "site.storm-site.topology.skip.missing.kryo.registrations": "false",
- "site.storm-site.worker.heartbeat.frequency.secs": "1",
- "site.storm-site.zmq.hwm": "0",
- "site.storm-site.storm.zookeeper.connection.timeout": "15000",
- "site.storm-site.topology.max.error.report.per.interval": "5",
- "site.storm-site.storm.messaging.netty.server_worker_threads": "1",
- "site.storm-site.supervisor.worker.start.timeout.secs": "120",
- "site.storm-site.zmq.threads": "1",
- "site.storm-site.topology.acker.executors": "null",
- "site.storm-site.storm.local.mode.zmq": "false",
- "site.storm-site.topology.max.task.parallelism": "null",
"site.storm-site.storm.zookeeper.port": "2181",
"site.storm-site.nimbus.childopts": "-Xmx1024m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM",
"site.storm-site.worker.childopts": "-Xmx768m -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM",
- "site.storm-site.drpc.queue.size": "128",
- "site.storm-site.storm.zookeeper.retry.times": "5",
- "site.storm-site.nimbus.monitor.freq.secs": "10",
- "site.storm-site.storm.cluster.mode": "distributed",
"site.storm-site.dev.zookeeper.path": "${AGENT_WORK_ROOT}/app/tmp/dev-storm-zookeeper",
"site.storm-site.drpc.invocations.port": "0",
"site.storm-site.storm.zookeeper.root": "${DEF_ZK_PATH}",
- "site.storm-site.logviewer.childopts": "-Xmx128m",
"site.storm-site.transactional.zookeeper.port": "null",
- "site.storm-site.topology.worker.childopts": "null",
- "site.storm-site.topology.max.spout.pending": "null",
- "site.storm-site.nimbus.cleanup.inbox.freq.secs": "600",
- "site.storm-site.storm.messaging.netty.min_wait_ms": "100",
- "site.storm-site.nimbus.task.timeout.secs": "30",
- "site.storm-site.nimbus.thrift.max_buffer_size": "1048576",
- "site.storm-site.topology.sleep.spout.wait.strategy.time.ms": "1",
- "site.storm-site.topology.optimize": "true",
- "site.storm-site.nimbus.reassign": "true",
- "site.storm-site.storm.messaging.transport": "backtype.storm.messaging.netty.Context",
- "site.storm-site.logviewer.appender.name": "A1",
"site.storm-site.nimbus.host": "${NIMBUS_HOST}",
"site.storm-site.ui.port": "${STORM_UI_SERVER.ALLOCATED_PORT}",
"site.storm-site.supervisor.slots.ports": "[${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE},${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE}]",
- "site.storm-site.nimbus.file.copy.expiration.secs": "600",
- "site.storm-site.supervisor.monitor.frequency.secs": "3",
- "site.storm-site.transactional.zookeeper.servers": "null",
- "site.storm-site.zmq.linger.millis": "5000",
- "site.storm-site.topology.error.throttle.interval.secs": "10",
- "site.storm-site.topology.worker.shared.thread.pool.size": "4",
- "site.storm-site.java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib",
- "site.storm-site.topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy",
- "site.storm-site.task.heartbeat.frequency.secs": "3",
- "site.storm-site.topology.transfer.buffer.size": "1024",
- "site.storm-site.storm.zookeeper.session.timeout": "20000",
- "site.storm-site.topology.executor.receive.buffer.size": "1024",
- "site.storm-site.topology.stats.sample.rate": "0.05",
- "site.storm-site.topology.fall.back.on.java.serialization": "true",
"site.storm-site.supervisor.childopts": "-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=0 -javaagent:${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=${NN_HOST},port=8668,wireformat31x=true,mode=multicast,config=${AGENT_WORK_ROOT}/app/install/apache-storm-0.9.1.2.1.1.0-237/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM",
- "site.storm-site.topology.enable.message.timeouts": "true",
- "site.storm-site.storm.messaging.netty.max_wait_ms": "1000",
- "site.storm-site.nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator",
- "site.storm-site.nimbus.supervisor.timeout.secs": "60",
- "site.storm-site.topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy",
- "site.storm-site.nimbus.inbox.jar.expiration.secs": "3600",
"site.storm-site.drpc.port": "0",
- "site.storm-site.topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory",
- "site.storm-site.storm.zookeeper.retry.interval": "1000",
- "site.storm-site.storm.messaging.netty.max_retries": "30",
- "site.storm-site.topology.tick.tuple.freq.secs": "null",
- "site.storm-site.supervisor.enable": "true",
- "site.storm-site.nimbus.task.launch.secs": "120",
- "site.storm-site.task.refresh.poll.secs": "10",
- "site.storm-site.topology.message.timeout.secs": "30",
- "site.storm-site.storm.messaging.netty.buffer_size": "5242880",
- "site.storm-site.topology.state.synchronization.timeout.secs": "60",
- "site.storm-site.supervisor.worker.timeout.secs": "30",
- "site.storm-site.topology.trident.batch.emit.interval.millis": "500",
- "site.storm-site.topology.builtin.metrics.bucket.size.secs": "60",
- "site.storm-site.storm.thrift.transport": "backtype.storm.security.auth.SimpleTransportPlugin",
- "site.storm-site.logviewer.port": "${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE}",
- "site.storm-site.topology.debug": "false"
+ "site.storm-site.logviewer.port": "${SUPERVISOR.ALLOCATED_PORT}{DO_NOT_PROPAGATE}"
},
"components": {
"slider-appmaster": {
"jvm.heapsize": "256M"
- },
- "NIMBUS": {
- },
- "STORM_REST_API": {
- },
- "STORM_UI_SERVER": {
- },
- "DRPC_SERVER": {
- },
- "SUPERVISOR": {
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/configuration/global.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/configuration/global.xml b/app-packages/storm/configuration/global.xml
deleted file mode 100644
index 5cc9170..0000000
--- a/app-packages/storm/configuration/global.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-<configuration>
- <property>
- <name>storm_user</name>
- <value>storm</value>
- <description></description>
- </property>
- <property>
- <name>storm_log_dir</name>
- <value>/var/log/storm</value>
- <description></description>
- </property>
- <property>
- <name>storm_pid_dir</name>
- <value>/var/run/storm</value>
- <description></description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/configuration/storm-env.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/configuration/storm-env.xml b/app-packages/storm/configuration/storm-env.xml
new file mode 100644
index 0000000..f315eb3
--- /dev/null
+++ b/app-packages/storm/configuration/storm-env.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+
+ <!-- storm-env.sh -->
+ <property>
+ <name>content</name>
+ <description>This is the jinja template for storm-env.sh file</description>
+ <value>
+#!/bin/bash
+
+# Set Storm specific environment variables here.
+
+# The java implementation to use.
+export JAVA_HOME={{java_home}}
+
+# export STORM_CONF_DIR=""
+ </value>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/configuration/storm-site.xml b/app-packages/storm/configuration/storm-site.xml
index 6eca8f9..b3cce6a 100644
--- a/app-packages/storm/configuration/storm-site.xml
+++ b/app-packages/storm/configuration/storm-site.xml
@@ -118,7 +118,7 @@
</property>
<property>
<name>nimbus.childopts</name>
- <value>-Xmx1024m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
+ <value>-Xmx1024m -Djava.security.auth.login.config=/etc/storm/conf/storm_jaas.conf -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
<description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
</property>
<property>
@@ -188,7 +188,7 @@
</property>
<property>
<name>ui.childopts</name>
- <value>-Xmx768m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf</value>
+ <value>-Xmx768m -Djava.security.auth.login.config=/etc/storm/conf/storm_jaas.conf</value>
<description>Childopts for Storm UI Java process.</description>
</property>
<property>
@@ -264,7 +264,7 @@
</property>
<property>
<name>supervisor.childopts</name>
- <value>-Xmx256m -Djava.security.auth.login.config=/etc/storm/storm_jaas.conf -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
+ <value>-Xmx256m -Djava.security.auth.login.config=/etc/storm/conf/storm_jaas.conf -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
<description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
</property>
<property>
@@ -291,15 +291,8 @@
<description>How often the supervisor sends a heartbeat to the master.</description>
</property>
<property>
- <name>supervisor.enable</name>
- <value>true</value>
- <description>Whether or not the supervisor should launch workers assigned to it. Defaults
- to true -- and you should probably never change this value. This configuration
- is used in the Storm unit tests.</description>
- </property>
- <property>
<name>worker.childopts</name>
- <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host={0},port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
+ <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
<description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
</property>
<property>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/metainfo.xml
----------------------------------------------------------------------
diff --git a/app-packages/storm/metainfo.xml b/app-packages/storm/metainfo.xml
index dbe8549..70d369c 100644
--- a/app-packages/storm/metainfo.xml
+++ b/app-packages/storm/metainfo.xml
@@ -155,5 +155,19 @@
</packages>
</osSpecific>
</osSpecifics>
+
+ <configFiles>
+ <configFile>
+ <type>yaml</type>
+ <fileName>storm.yaml</fileName>
+ <dictionaryName>storm-site</dictionaryName>
+ </configFile>
+ <configFile>
+ <type>env</type>
+ <fileName>storm-env.sh</fileName>
+ <dictionaryName>storm-env</dictionaryName>
+ </configFile>
+ </configFiles>
+
</application>
</metainfo>
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/params.py b/app-packages/storm/package/scripts/params.py
index cf21b27..3e1620b 100644
--- a/app-packages/storm/package/scripts/params.py
+++ b/app-packages/storm/package/scripts/params.py
@@ -34,12 +34,12 @@ user_group = config['configurations']['global']['user_group']
java64_home = config['hostLevelParams']['java_home']
nimbus_host = config['configurations']['storm-site']['nimbus.host']
nimbus_port = config['configurations']['storm-site']['nimbus.thrift.port']
-nimbus_host = config['configurations']['storm-site']['nimbus.host']
rest_api_port = config['configurations']['global']['rest_api_port']
rest_api_admin_port = config['configurations']['global']['rest_api_admin_port']
rest_api_conf_file = format("{conf_dir}/config.yaml")
rest_lib_dir = format("{app_root}/contrib/storm-rest")
storm_bin = format("{app_root}/bin/storm")
+storm_env_sh_template = config['configurations']['storm-env']['content']
ganglia_installed = config['configurations']['global']['ganglia_enabled']
if ganglia_installed:
@@ -52,7 +52,7 @@ security_enabled = ( not is_empty(_authentication) and _authentication == 'kerbe
if security_enabled:
_hostname_lowercase = config['hostname'].lower()
- _kerberos_domain = config['configurations']['global']['kerberos_domain']
- _storm_principal_name = config['configurations']['global']['storm_principal_name']
+ _kerberos_domain = config['configurations']['storm-env']['kerberos_domain']
+ _storm_principal_name = config['configurations']['storm-env']['storm_principal_name']
storm_jaas_principal = _storm_principal_name.replace('_HOST', _hostname_lowercase)
- storm_keytab_path = config['configurations']['global']['storm_keytab']
+ storm_keytab_path = config['configurations']['storm-env']['storm_keytab']
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/storm.py b/app-packages/storm/package/scripts/storm.py
index bce272b..efca073 100644
--- a/app-packages/storm/package/scripts/storm.py
+++ b/app-packages/storm/package/scripts/storm.py
@@ -43,7 +43,12 @@ def storm():
owner = params.storm_user,
group = params.user_group
)
-
+
+ File(format("{conf_dir}/storm-env.sh"),
+ owner=params.storm_user,
+ content=InlineTemplate(params.storm_env_sh_template)
+ )
+
if params.security_enabled:
TemplateConfig( format("{conf_dir}/storm_jaas.conf"),
owner = params.storm_user
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/app-packages/storm/package/scripts/yaml_config.py
----------------------------------------------------------------------
diff --git a/app-packages/storm/package/scripts/yaml_config.py b/app-packages/storm/package/scripts/yaml_config.py
index 39261be..d25089c 100644
--- a/app-packages/storm/package/scripts/yaml_config.py
+++ b/app-packages/storm/package/scripts/yaml_config.py
@@ -50,6 +50,10 @@ def escape_yaml_propetry(value):
return value
+def yaml_inline_template(configurations):
+ return source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }}
+{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry])
+
def yaml_config(
filename,
configurations = None,
@@ -58,8 +62,7 @@ def yaml_config(
owner = None,
group = None
):
- config_content = source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }}
-{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry])
+ config_content = yaml_inline_template(configurations)
File (format("{conf_dir}/{filename}"),
content = config_content,
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/slider-agent/src/main/python/resource_management/core/providers/system.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/main/python/resource_management/core/providers/system.py b/slider-agent/src/main/python/resource_management/core/providers/system.py
index 6969c62..7c56bfc 100644
--- a/slider-agent/src/main/python/resource_management/core/providers/system.py
+++ b/slider-agent/src/main/python/resource_management/core/providers/system.py
@@ -166,6 +166,14 @@ class DirectoryProvider(Provider):
_ensure_metadata(path, self.resource.owner, self.resource.group,
mode=self.resource.mode)
+ if self.resource.content and os.path.isdir(self.resource.content):
+ Logger.info("Copying from " + self.resource.content + " to " + path)
+ for item in os.listdir(self.resource.content):
+ src = os.path.join(self.resource.content, item)
+ dst = os.path.join(path, item)
+ if not os.path.isdir(src):
+ Logger.info("Copying " + src + " as " + dst)
+ shutil.copy2(src, dst)
def action_delete(self):
path = self.resource.path
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/111e03f3/slider-agent/src/main/python/resource_management/core/resources/system.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/main/python/resource_management/core/resources/system.py b/slider-agent/src/main/python/resource_management/core/resources/system.py
index a63d993..3c3513b 100644
--- a/slider-agent/src/main/python/resource_management/core/resources/system.py
+++ b/slider-agent/src/main/python/resource_management/core/resources/system.py
@@ -45,6 +45,7 @@ class Directory(Resource):
mode = ResourceArgument()
owner = ResourceArgument()
group = ResourceArgument()
+ content = ResourceArgument()
recursive = BooleanArgument(default=False) # this work for 'create', 'delete' is anyway recursive
actions = Resource.actions + ["create", "delete"]