Browse Source

Add slapdconf class for initial configuration

DarkMorford 6 years ago
parent
commit
12292fbfa6
2 changed files with 53 additions and 0 deletions
  1. 42 0
      manifests/server/slapdconf.pp
  2. 11 0
      spec/classes/server/slapdconf_spec.rb

+ 42 - 0
manifests/server/slapdconf.pp

@@ -0,0 +1,42 @@
+# A description of what this class does
+#
+# @summary A short summary of the purpose of this class
+#
+# @example
+#   include openldap::server::slapdconf
+class openldap::server::slapdconf {
+  # Ensure the main server class has been defined
+  if !defined(Class['openldap::server']) {
+    fail 'Class openldap::server not defined'
+  }
+
+  # Create a location for configuration to live
+  case $openldap::server::provider {
+    'augeas': {
+      file { $openldap::server::config_file:
+        ensure => file,
+        owner  => $openldap::server::owner,
+        group  => $openldap::server::group,
+        mode   => '0640',
+      }
+    }
+    'olc': {
+      file { $openldap::server::config_dir:
+        ensure => directory,
+        owner  => $openldap::server::owner,
+        group  => $openldap::server::group,
+        mode   => '0750',
+        force  => true,
+      }
+    }
+    default: {
+      fail "Invalid config provider ${openldap::server::provider}"
+    }
+  }
+
+  # TODO: SSL cert stuff
+
+  # TODO: Remove default database on Debian
+
+  # TODO: Create databases
+}

+ 11 - 0
spec/classes/server/slapdconf_spec.rb

@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe 'openldap::server::slapdconf' do
+  on_supported_os.each do |os, os_facts|
+    context "on #{os}" do
+      let(:facts) { os_facts }
+
+      it { is_expected.to compile }
+    end
+  end
+end