diff --git a/manifests/storage/loopbacks.pp b/manifests/storage/loopbacks.pp new file mode 100644 index 00000000..39a2e5cc --- /dev/null +++ b/manifests/storage/loopbacks.pp @@ -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) +} diff --git a/releasenotes/notes/swift-loopbacks-class-9b24b216099c7d98.yaml b/releasenotes/notes/swift-loopbacks-class-9b24b216099c7d98.yaml new file mode 100644 index 00000000..b546f869 --- /dev/null +++ b/releasenotes/notes/swift-loopbacks-class-9b24b216099c7d98.yaml @@ -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. diff --git a/spec/classes/swift_storage_loopbacks_spec.rb b/spec/classes/swift_storage_loopbacks_spec.rb new file mode 100644 index 00000000..4be3d034 --- /dev/null +++ b/spec/classes/swift_storage_loopbacks_spec.rb @@ -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