Add swift::storage::loopbacks class

This patch adds a wrapper for the storage::loopback definition, making
it possible to add multiple loopback devices using a Hiera hash.

Loopback devices are the preferred method if there is only a single
local disk with one partition, instead of just using a directory that is
created on the root filesystem.

This patch is very similar to I3692b17988f8eacb7b8a7df1006a7fe24f587065.

Change-Id: I11a230b7cf08a4cc2a144d9af0e6c81bb3827348
This commit is contained in:
Christian Schwede 2016-11-30 20:37:57 +00:00
parent 72ae69d4f1
commit 2ed840369b
3 changed files with 85 additions and 0 deletions

View File

@ -0,0 +1,29 @@
# Copyright 2016 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.
#
# == Class: swift::storage::loopbacks
#
# Class wrapper for the benefit of Hiera users
#
# === Parameters:
#
# [*args*] A Swift 'loopback' config hash
# Optional. Defaults to a empty hash
#
# [*defaults*] A config hash
# Optional. Defaults to a empty hash
#
class swift::storage::loopbacks($args = {}, $defaults = {}) {
create_resources(swift::storage::loopback, $args, $defaults)
}

View File

@ -0,0 +1,5 @@
---
features:
- Adds a wrapper class for the storage::loopback
definition, making it possible to add multiple loopback
devices using a Hiera hash.

View File

@ -0,0 +1,51 @@
# Copyright 2016 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 'swift::storage::loopbacks' do
shared_examples_for 'swift storage loopbacks' do
let :params do
{
:args => {
'loop0' => {
'seek' => '50000',
},
'loop1' => {
},
},
}
end
it {
is_expected.to contain_swift__storage__loopback('loop0').with(
:seek => '50000')
is_expected.to contain_swift__storage__loopback('loop1')
}
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'swift storage loopbacks'
end
end
end