add puppet manifests for rubbos client module
[bottlenecks.git] / testsuites / rubbos / puppet_manifests / modules / rubbos_client / manifests / rubbos_client_on.pp
1 #############################################################################
2 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
3 #
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 ##############################################################################
9
10
11 class rubbos_client::rubbos_client_on {
12
13   include params::rubbos_params
14   require rubbos_common::rubbos_common_on
15   require rubbos_monitor::rubbos_monitor_on
16
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
22
23   # Prepare needed tools
24   file {'${rubbos_app_tools}/j2sdkee1.3.1.jar.gz':
25         ensure  => file,
26         path    => "${rubbos_app_tools}/j2sdkee1.3.1.jar.gz",
27         source  => "puppet:///modules/rubbos_common/j2sdkee1.3.1.jar.gz",
28         backup  => false,
29   }
30
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'],
36   }
37
38   file {'${rubbos_app_tools}/apache-ant-1.6.5.tar.gz':
39         ensure  => file,
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",
42         backup  => false,
43   }
44
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'],
50   }
51
52   # Prepare client codes and files
53   file {'${rubbos_home}/Client.tar.gz':
54        ensure   => file,
55        path     => "${rubbos_home}/Client.tar.gz",
56        source   => "puppet:///modules/rubbos_client/Client.tar.gz",
57        backup   => false,
58   }
59
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'],
65   }
66
67   file {'${rubbos_home}/workload.tar.gz':
68        ensure   => file,
69        path     => "${rubbos_home}/workload.tar.gz",
70        source   => "puppet:///modules/rubbos_client/workload.tar.gz",
71        backup   => false,
72   }
73
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'],
79   }
80
81   file {'${rubbos_home}/database.tar.gz':
82        ensure   => file,
83        path     => "${rubbos_home}/database.tar.gz",
84        source   => "puppet:///modules/rubbos_client/database.tar.gz",
85        backup   => false,
86   }
87
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'],
93   }
94
95   # build.properties
96   file {'${rubbos_home}/build.properties':
97         ensure          => file,
98         path            => "${rubbos_home}/build.properties",
99         source          => "puppet:///modules/rubbos_client/build.properties",
100         show_diff       => false,
101         backup          => false,
102   }
103
104   # config.mk
105   file {'${rubbos_home}/config.mk':
106         ensure          => file,
107         path            => "${rubbos_home}/config.mk",
108         source          => "puppet:///modules/rubbos_client/config.mk",
109         show_diff       => false,
110         backup          => false,
111   }
112
113   # Makefile
114   file {'${rubbos_home}/Makefile':
115         ensure          => file,
116         path            => "${rubbos_home}/Makefile",
117         source          => "puppet:///modules/rubbos_client/Makefile",
118         show_diff       => false,
119         backup          => false,
120   }
121
122   # rubbos.properties.template
123   file {'${rubbos_home}/bench/rubbos.properties.template':
124         ensure          => file,
125         path            => "${rubbos_home}/bench/rubbos.properties.template",
126         source          => "puppet:///modules/rubbos_client/rubbos.properties.template",
127         show_diff       => false,
128         backup          => false,
129   }
130
131   # executable scripts
132   file {'${rubbos_home}/bench/run_emulator.sh':
133         ensure          => file,
134         path            => "${rubbos_home}/bench/run_emulator.sh",
135         source          => "puppet:///modules/rubbos_client/run_emulator.sh",
136         backup          => false,
137   }
138
139   # Build rubbos_client.jar
140   exec {'ant clean':
141         cwd             => "${rubbos_home}/Client",
142         command         => "${rubbos_app_tools}/apache-ant-1.6.5/bin/ant clean",
143         environment     => ["JAVA_HOME=${rubbos_app_tools}/jdk1.6.0_27","ANT_HOME=${rubbos_app_tools}/apache-ant-1.6.5"],
144         path            => [
145                         "/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin",
146                         "${rubbos_app_tools}/jdk1.6.0_27/bin",
147                         "${rubbos_app_tools}/jdk1.6.0_27/jre/bin",
148                         "${rubbos_app_tools}/apache-ant-1.6.5/bin"],
149         require         => [
150                         Exec['tar xzvf ${rubbos_app_tools}/j2sdkee1.3.1.jar.gz'],
151                         Exec['tar xzvf ${rubbos_app_tools}/apache-ant-1.6.5.tar.gz'],
152                         File['${rubbos_home}/build.properties'],
153                         File['${rubbos_home}/Makefile'],
154                         File['${rubbos_home}/config.mk'],
155                         Exec['tar xvzf ${rubbos_home}/Client.tar.gz']],
156                         #File['${rubbos_home}/Client']],
157   }
158
159   exec {'ant jar':
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"],
163         path            => [
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'],
169   }
170
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'],
177   }
178
179 }