Merge "improvement: rubbos test suite running workflow"
authorMatthewLi <matthew.lijun@huawei.com>
Mon, 28 Mar 2016 09:16:27 +0000 (09:16 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Mon, 28 Mar 2016 09:16:27 +0000 (09:16 +0000)
testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp [new file with mode: 0644]
testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp [new file with mode: 0644]
testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_off.pp [new file with mode: 0644]
testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_on.pp [new file with mode: 0644]

diff --git a/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp b/testsuites/rubbos/puppet_manifests/modules/params/manifests/rubbos_params.pp
new file mode 100644 (file)
index 0000000..db1fa82
--- /dev/null
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+## Variables used in {rubbos} test suite
+class params::rubbos_params {
+
+  $rubbos_app          = "/bottlenecks/rubbos/app"
+  $rubbos_app_tools    = "/bottlenecks/rubbos/app_tools"
+  $rubbos_home         = "/bottlenecks/rubbos/app/RUBBoS"
+
+}
diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_common/manifests/rubbos_common_on.pp
new file mode 100644 (file)
index 0000000..8e7539e
--- /dev/null
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class rubbos_common::rubbos_common_on {
+
+  include params::rubbos_params
+
+  # Declare some variables
+  $rubbos_app          = $params::rubbos_params::rubbos_app
+  $rubbos_app_tool     = $params::rubbos_params::rubbos_app_tool
+  $rubbos_home         = $params::rubbos_params::rubbos_home
+
+  # Prepare RUBBOS_APP folder
+  exec {'mkdir -p ${rubbos_app}':
+        command => "mkdir -p ${rubbos_app}",
+        unless  => "test -d ${rubbos_app}",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+  }
+
+  # Prepare RUBBOS_APP_TOOLS folder
+  exec {'mkdir -p ${rubbos_app_tool}':
+        command => "mkdir -p ${rubbos_app_tool}",
+        unless  => "test -d ${rubbos_app_tool}",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+  }
+
+  # Prepare RUBBOS_HOME folder
+  exec {'mkdir -p ${rubbos_home}':
+        command        => "mkdir -p ${rubbos_home}",
+        unless => "test -d ${rubbos_home}",
+        path   => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require        => Exec['mkdir -p ${rubbos_app}'],
+  }
+
+  # Prepare common packages:
+  package {'make':
+        name    => "make",
+        ensure  => installed,
+  }
+  package {'gcc':
+        name    => "gcc",
+        ensure  => installed,
+  }
+  package {'g++':
+        name    => "g++",
+        ensure  => installed,
+  }
+
+  # Install jdk
+  file {'${rubbos_app_tool}/jdk-6u27-linux-x64.bin':
+        ensure  => file,
+        path    => "${rubbos_app_tool}/jdk-6u27-linux-x64.bin",
+        source  => "puppet:///modules/rubbos_common/jdk-6u27-linux-x64.bin",
+        mode    => 0711,
+        backup  => false,
+       require => Exec['mkdir -p ${rubbos_app_tool}'],
+  }
+  exec {'jdk-6u27-linux-x64.bin':
+        cwd     => "${rubbos_app_tool}",
+        command => "${rubbos_app_tool}/jdk-6u27-linux-x64.bin",
+        path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => File['${rubbos_app_tool}/jdk-6u27-linux-x64.bin'],
+  }
+
+}
diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_off.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_off.pp
new file mode 100644 (file)
index 0000000..ed8dabb
--- /dev/null
@@ -0,0 +1,36 @@
+#############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class rubbos_monitor::rubbos_monitor_off {
+
+  include params::rubbos_params
+
+  # Declare some variables
+  $rubbos_app           = $params::rubbos_params::rubbos_app
+
+  # Make uninstall sysstat
+  exec {'make uninstall sysstat':
+        cwd     => "${rubbos_app}/sysstat-9.0.6",
+        command => "make uninstall",
+       path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+       onlyif  => "test -d ${rubbos_app}/sysstat-9.0.6",
+  }
+
+  # Remove folder
+  file {'${rubbos_app}/sysstat-9.0.6':
+        ensure  => absent,
+        path    => "${rubbos_app}/sysstat-9.0.6",
+        force   => true,
+       recurse => true,
+        backup  => false,
+        require        => Exec['make uninstall sysstat'],
+  }
+
+}
diff --git a/testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_on.pp b/testsuites/rubbos/puppet_manifests/modules/rubbos_monitor/manifests/rubbos_monitor_on.pp
new file mode 100644 (file)
index 0000000..d396f30
--- /dev/null
@@ -0,0 +1,91 @@
+#############################################################################
+# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+class rubbos_monitor::rubbos_monitor_on {
+
+  include params::rubbos_params
+  require rubbos_common::rubbos_common_on
+
+  # Declare some variables
+  $rubbos_app           = $params::rubbos_params::rubbos_app
+  $rubbos_home          = $params::rubbos_params::rubbos_home
+
+  # Prepare bench folder and related files
+  file {'${rubbos_home}/bench.tar.gz':
+       ensure  => file,
+       path    => "${rubbos_home}/bench.tar.gz",
+       source  => "puppet:///modules/rubbos_monitor/bench.tar.gz",
+       backup  => false,
+  }
+
+  exec {'tar zxvf ${rubbos_home}/bench.tar.gz':
+       cwd             => "${rubbos_home}",
+        command        => "tar zxvf ${rubbos_home}/bench.tar.gz",
+       path            => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+       subscribe       => File['${rubbos_home}/bench.tar.gz'],
+  }
+
+  # Prepare monitoring tool
+  file {'${rubbos_app}/sysstat-9.0.6.tar.gz':
+        ensure  => file,
+        path    => "${rubbos_app}/sysstat-9.0.6.tar.gz",
+        source  => "puppet:///modules/rubbos_monitor/sysstat-9.0.6.tar.gz",
+       backup  => false,
+  }
+
+  exec {'tar xzvf ${rubbos_app}/sysstat-9.0.6.tar.gz':
+        cwd     => "${rubbos_app}",
+        command => "tar xzvf ${rubbos_app}/sysstat-9.0.6.tar.gz",
+       path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => File['${rubbos_app}/sysstat-9.0.6.tar.gz'],
+  }
+
+  file {'flush_cache':
+       ensure  => file,
+       path    => "${rubbos_home}/bench/flush_cache",
+       source  => "puppet:///modules/rubbos_monitor/flush_cache",
+       backup  => false,
+       mode    => 0755,
+       require => Exec['tar zxvf ${rubbos_home}/bench.tar.gz'],
+  }
+
+  file {'cpu_mem.sh':
+       ensure  => file,
+       path    => "${rubbos_app}/cpu_mem.sh",
+       source  => "puppet:///modules/rubbos_monitor/cpu_mem.sh",
+       backup  => false,
+       mode    => 0755,
+  }
+
+  # Build and install sysstat
+  exec {'configure sysstat':
+       cwd     => "${rubbos_app}/sysstat-9.0.6",
+        command => "${rubbos_app}/sysstat-9.0.6/configure --prefix=${rubbos_app}/sysstat-9.0.6 --disable-nls",
+       path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+       require => [
+               Exec['tar xzvf ${rubbos_app}/sysstat-9.0.6.tar.gz'],
+               Package['make'],Package['gcc'],Package['g++']],
+  }
+
+  exec {'make sysstat':
+       cwd     => "${rubbos_app}/sysstat-9.0.6",
+       command => "make",
+       path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+       require => Exec['configure sysstat'],
+  }
+
+  exec {'make install sysstat':
+       cwd     => "${rubbos_app}/sysstat-9.0.6",
+        command => "make install",
+       path    => ["/bin","/sbin","/usr/bin","/usr/sbin","/usr/local/bin","/usr/local/sbin"],
+        require => Exec['make sysstat'],
+  }
+
+}