Selaa lähdekoodia

Break out utils into separate class

DarkMorford 6 vuotta sitten
vanhempi
commit
a2f8b0b0fc
5 muutettua tiedostoa jossa 54 lisäystä ja 6 poistoa
  1. 2 1
      data/os/Debian.yaml
  2. 1 4
      manifests/server.pp
  3. 15 0
      manifests/utils.pp
  4. 18 1
      spec/classes/server_spec.rb
  5. 18 0
      spec/classes/utils_spec.rb

+ 2 - 1
data/os/Debian.yaml

@@ -3,4 +3,5 @@ openldap::server::owner: 'openldap'
 openldap::server::group: 'openldap'
 openldap::server::server_package: 'slapd'
 openldap::server::server_service: 'slapd'
-openldap::server::utils_package: 'ldap-utils'
+
+openldap::utils::utils_package: 'ldap-utils'

+ 1 - 4
manifests/server.pp

@@ -8,7 +8,6 @@ class openldap::server (
   String                $owner,
   String                $group,
   String                $server_package,
-  String                $utils_package,
   Enum['olc', 'augeas'] $provider
 )
 {
@@ -27,9 +26,7 @@ class openldap::server (
   }
 
   if $provider == 'olc' {
-    package { $utils_package:
-      ensure => installed
-    }
+    contain ::openldap::utils
   }
 
   package { $server_package:

+ 15 - 0
manifests/utils.pp

@@ -0,0 +1,15 @@
+# A description of what this class does
+#
+# @summary A short summary of the purpose of this class
+#
+# @example
+#   include openldap::utils
+class openldap::utils (
+  Optional[String] $utils_package = undef,
+) {
+  if $utils_package {
+    package { $utils_package:
+      ensure => installed,
+    }
+  }
+}

+ 18 - 1
spec/classes/server_spec.rb

@@ -7,11 +7,28 @@ describe 'openldap::server' do
 
       it { is_expected.to compile.with_all_deps }
 
+      context 'with provider => olc' do
+        let(:params) { { 'provider' => 'olc' } }
+
+        it { is_expected.to contain_class('openldap::utils') }
+      end
+
+      context 'with provider => augeas' do
+        let(:params) { { 'provider' => 'augeas' } }
+
+        it { is_expected.not_to contain_class('openldap::utils') }
+      end
+
+      context 'with provider => slapdconf' do
+        let(:params) { { 'provider' => 'slapdconf' } }
+
+        it { is_expected.to compile.and_raise_error(%r{provider}) }
+      end
+
       case os_facts[:osfamily]
       when 'Debian'
         it do
           is_expected.to contain_package('slapd').with_ensure('installed')
-          is_expected.to contain_package('ldap-utils').with_ensure('installed')
           is_expected.to contain_file('/var/cache/debconf/slapd.preseed').with(
             'ensure' => 'file',
             'owner'  => 'root',

+ 18 - 0
spec/classes/utils_spec.rb

@@ -0,0 +1,18 @@
+require 'spec_helper'
+
+describe 'openldap::utils' do
+  on_supported_os.each do |os, os_facts|
+    context "on #{os}" do
+      let(:facts) { os_facts }
+
+      it { is_expected.to compile.with_all_deps }
+
+      case os_facts[:osfamily]
+      when 'Debian'
+        it do
+          is_expected.to contain_package('ldap-utils').with_ensure('installed')
+        end
+      end
+    end
+  end
+end