From 287a714da4e92b138aa56586ef69af04ed2c9bdd Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Wed, 3 Aug 2016 23:32:48 +0200 Subject: [PATCH] Allow for usage of storage::disk via Hiera This submission adds a wrapper for the storage::disk defined type which permits provisioning of a hash of disks via storage::disks Change-Id: I3692b17988f8eacb7b8a7df1006a7fe24f587065 --- manifests/storage/disks.pp | 29 ++++++++++++++ spec/classes/swift_storage_disks_spec.rb | 51 ++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 manifests/storage/disks.pp create mode 100644 spec/classes/swift_storage_disks_spec.rb diff --git a/manifests/storage/disks.pp b/manifests/storage/disks.pp new file mode 100644 index 00000000..713e6c6e --- /dev/null +++ b/manifests/storage/disks.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::disks +# +# Class wrapper for the benefit of Hiera users +# +# === Parameters: +# +# [*args*] A Swift 'disk' config hash +# Optional. Defaults to a empty hash +# +# [*defaults*] A config hash +# Optional. Defaults to a empty hash +# +class swift::storage::disks($args = {}, $defaults = {}) { + create_resources(swift::storage::disk, $args, $defaults) +} diff --git a/spec/classes/swift_storage_disks_spec.rb b/spec/classes/swift_storage_disks_spec.rb new file mode 100644 index 00000000..f2960725 --- /dev/null +++ b/spec/classes/swift_storage_disks_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::disks' do + + shared_examples_for 'swift storage disks' do + let :params do + { + :args => { + 'sdb' => { + 'byte_size' => '2048', + }, + 'sdc' => { + }, + }, + } + end + + it { + is_expected.to contain_swift__storage__disk('sdb').with( + :byte_size => '2048') + is_expected.to contain_swift__storage__disk('sdc') + } + 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 disks' + end + end + +end