1 #############################################################################
2 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
11 class rubbos_client::rubbos_client_on {
13 include params::rubbos_params
14 require rubbos_common::rubbos_common_on
15 require rubbos_monitor::rubbos_monitor_on
17 # Declare some variables
18 $rubbos_app_tools = $params::rubbos_params::rubbos_app_tools
19 $rubbos_home = $params::rubbos_params::rubbos_home
20 $rubbos_os_username = $params::rubbos_params::rubbos_os_username
21 $rubbos_os_usergroup = $params::rubbos_params::rubbos_os_usergroup
23 # Prepare needed tools
24 file {'${rubbos_app_tools}/j2sdkee1.3.1.jar.gz':
26 path => "${rubbos_app_tools}/j2sdkee1.3.1.jar.gz",
27 source => "puppet:///modules/rubbos_common/j2sdkee1.3.1.jar.gz",
31 exec {'tar xzvf ${rubbos_app_tools}/j2sdkee1.3.1.jar.gz':
32 cwd => "${rubbos_app_tools}",
33 command => "tar xzvf ${rubbos_app_tools}/j2sdkee1.3.1.jar.gz",
34 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
35 require => File['${rubbos_app_tools}/j2sdkee1.3.1.jar.gz'],
38 file {'${rubbos_app_tools}/apache-ant-1.6.5.tar.gz':
40 path => "${rubbos_app_tools}/apache-ant-1.6.5.tar.gz",
41 source => "puppet:///modules/rubbos_common/apache-ant-1.6.5.tar.gz",
45 exec {'tar xzvf ${rubbos_app_tools}/apache-ant-1.6.5.tar.gz':
46 cwd => "${rubbos_app_tools}",
47 command => "tar xzvf ${rubbos_app_tools}/apache-ant-1.6.5.tar.gz",
48 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
49 require => File['${rubbos_app_tools}/apache-ant-1.6.5.tar.gz'],
52 # Prepare client codes and files
53 file {'${rubbos_home}/Client.tar.gz':
55 path => "${rubbos_home}/Client.tar.gz",
56 source => "puppet:///modules/rubbos_client/Client.tar.gz",
60 exec {'tar xvzf ${rubbos_home}/Client.tar.gz':
61 cwd => "${rubbos_home}",
62 command => "tar xvzf ${rubbos_home}/Client.tar.gz",
63 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
64 require => File['${rubbos_home}/Client.tar.gz'],
67 file {'${rubbos_home}/workload.tar.gz':
69 path => "${rubbos_home}/workload.tar.gz",
70 source => "puppet:///modules/rubbos_client/workload.tar.gz",
74 exec {'tar xvzf ${rubbos_home}/workload.tar.gz':
75 cwd => "${rubbos_home}",
76 command => "tar xvzf ${rubbos_home}/workload.tar.gz",
77 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
78 require => File['${rubbos_home}/workload.tar.gz'],
81 file {'${rubbos_home}/database.tar.gz':
83 path => "${rubbos_home}/database.tar.gz",
84 source => "puppet:///modules/rubbos_client/database.tar.gz",
88 exec {'tar xvzf ${rubbos_home}/database.tar.gz':
89 cwd => "${rubbos_home}",
90 command => "tar xvzf ${rubbos_home}/database.tar.gz",
91 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
92 require => File['${rubbos_home}/database.tar.gz'],
96 file {'${rubbos_home}/build.properties':
98 path => "${rubbos_home}/build.properties",
99 source => "puppet:///modules/rubbos_client/build.properties",
105 file {'${rubbos_home}/config.mk':
107 path => "${rubbos_home}/config.mk",
108 source => "puppet:///modules/rubbos_client/config.mk",
114 file {'${rubbos_home}/Makefile':
116 path => "${rubbos_home}/Makefile",
117 source => "puppet:///modules/rubbos_client/Makefile",
122 # Client/rubbos.properties.template
123 file {'${rubbos_home}/Client/rubbos.properties.template':
125 path => "${rubbos_home}/Client/rubbos.properties.template",
126 source => "puppet:///modules/rubbos_client/rubbos.properties.template",
129 require => Exec['tar xvzf ${rubbos_home}/Client.tar.gz'],
132 # bench/executable scripts
133 file {'${rubbos_home}/bench/run_emulator.sh':
135 path => "${rubbos_home}/bench/run_emulator.sh",
136 source => "puppet:///modules/rubbos_client/run_emulator.sh",
140 # Build rubbos_client.jar
142 cwd => "${rubbos_home}/Client",
143 command => "${rubbos_app_tools}/apache-ant-1.6.5/bin/ant clean",
144 environment => ["JAVA_HOME=${rubbos_app_tools}/jdk1.6.0_27","ANT_HOME=${rubbos_app_tools}/apache-ant-1.6.5"],
146 "/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin",
147 "${rubbos_app_tools}/jdk1.6.0_27/bin",
148 "${rubbos_app_tools}/jdk1.6.0_27/jre/bin",
149 "${rubbos_app_tools}/apache-ant-1.6.5/bin"],
151 Exec['tar xzvf ${rubbos_app_tools}/j2sdkee1.3.1.jar.gz'],
152 Exec['tar xzvf ${rubbos_app_tools}/apache-ant-1.6.5.tar.gz'],
153 File['${rubbos_home}/build.properties'],
154 File['${rubbos_home}/Makefile'],
155 File['${rubbos_home}/config.mk'],
156 Exec['tar xvzf ${rubbos_home}/Client.tar.gz']],
160 cwd => "${rubbos_home}/Client",
161 command => "${rubbos_app_tools}/apache-ant-1.6.5/bin/ant jar",
162 environment => ["JAVA_HOME=${rubbos_app_tools}/jdk1.6.0_27","ANT_HOME=${rubbos_app_tools}/apache-ant-1.6.5"],
164 "/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin",
165 "${rubbos_app_tools}/jdk1.6.0_27/bin",
166 "${rubbos_app_tools}/jdk1.6.0_27/jre/bin",
167 "${rubbos_app_tools}/apache-ant-1.6.5/bin"],
168 subscribe => Exec['ant clean'],
171 # Change owner and group for the Client folder
172 exec {'chown -R ${rubbos_os_username}:${rubbos_os_usergroup} ${rubbos_home}/Client':
173 cwd => "${rubbos_home}",
174 command => "chown -R ${rubbos_os_username}:${rubbos_os_usergroup} ${rubbos_home}/Client",
175 path => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
176 require => Exec['ant jar'],