Tuned should be configured properly
authorJoe Talerico <jtaleric@redhat.com>
Thu, 23 Feb 2017 22:05:01 +0000 (17:05 -0500)
committerJoe Talerico <jtaleric@redhat.com>
Mon, 13 Mar 2017 11:16:07 +0000 (11:16 +0000)
Currently tuned uses the wrong profile on compute nodes. This patch will
allow users to update their tuned profile.

Fixes bug 1667524

Change-Id: Ic67aca7f5338ea4bb2d3843201e122c72d97056e

manifests/profile/base/tuned.pp [new file with mode: 0644]
spec/classes/tripleo_profile_base_tuned_spec.rb [new file with mode: 0644]

diff --git a/manifests/profile/base/tuned.pp b/manifests/profile/base/tuned.pp
new file mode 100644 (file)
index 0000000..8dfcea0
--- /dev/null
@@ -0,0 +1,20 @@
+# == Class: tripleo::profile::base::tuned
+#
+# Configures tuned service.
+#
+# === Parameters:
+#
+# [*profile*]
+#   (optional) tuned active profile.
+#   Defaults to 'throughput-performance'
+#
+#
+class tripleo::profile::base::tuned (
+  $profile = 'throughput-performance'
+) {
+  exec { 'tuned-adm':
+    path    => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
+    command => "tuned-adm profile ${profile}",
+    unless  => "tuned-adm active | grep -q '${profile}'"
+  }
+}
diff --git a/spec/classes/tripleo_profile_base_tuned_spec.rb b/spec/classes/tripleo_profile_base_tuned_spec.rb
new file mode 100644 (file)
index 0000000..95b0f26
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2017 Red Hat, Inc.
+#
+# Licensed 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.
+#
+
+require 'spec_helper'
+
+describe 'tripleo::profile::base::tuned' do
+
+    shared_examples_for 'tripleo::profile::base::tuned' do
+        context 'with profile' do
+           let :params do
+               {
+                   :profile => 'virtual-compute'
+               }
+           end
+
+            it 'should run tuned-adm exec' do
+                is_expected.to contain_exec('tuned-adm')
+            end
+        end
+    end
+
+    on_supported_os.each do |os, facts|
+        context "on #{os}" do
+            let(:facts) {
+                facts
+            }
+
+        it_behaves_like 'tripleo::profile::base::tuned'
+        end
+    end
+end