Skip to content
This repository has been archived by the owner on Oct 22, 2019. It is now read-only.

Commit

Permalink
Added spec tests
Browse files Browse the repository at this point in the history
Refactoring ldap::server::master class
Refactoring ldap class
  • Loading branch information
torian committed Mar 21, 2013
1 parent 1c6181e commit a18ba2b
Show file tree
Hide file tree
Showing 15 changed files with 278 additions and 210 deletions.
8 changes: 8 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

require 'rake'
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |t|
t.pattern = 'spec/*/*_spec.rb'
t.rspec_opts = File.read("spec/spec.opts").chomp || ""
end
75 changes: 0 additions & 75 deletions manifests/config.pp

This file was deleted.

71 changes: 62 additions & 9 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -67,26 +67,79 @@
#

class ldap($uri, $base,
$version = '3',
$ensure = 'present',
$ssl = false,
$ssl_cert = false,
$version = '3',
$timelimit = 30,
$bind_timelimit = 30,
$idle_timelimit = 60,
$ssl = false,
$ssl_cert = false,

# nsswitch options (requires nsswitch module) - disabled by default
$nsswitch = false,
$nss_passwd = false,
$nss_group = false,
$nss_shadow = false,

# pam options (requires pam module) - disabled by default
$pam = false,
$pam_att_login = 'uid',
$pam_att_member = 'member',
$pam_passwd = 'md5',
$pam_filter = 'objectClass=posixAccount') {
$pam_filter = 'objectClass=posixAccount',

$ensure = present) {

include ldap::params
include ldap::install
include ldap::config

package { $ldap::params::package:
ensure => $ensure,
}

File {
ensure => $ensure,
mode => 0644,
owner => $ldap::params::owner,
group => $ldap::params::group,
}

file { "${ldap::params::prefix}/${ldap::params::config}":
content => template("ldap/${ldap::params::config}.erb"),
}

case $operatingsystem {

Debian: {}
# RHEL and the likes have /etc/ldap.conf
/Redhat|OEL/: {
file { '/etc/ldap.conf':
ensure => $ensure ? {
'present' => symlink,
default => absent
},
target => $ldap::params::config,
require => File[$ldap::params::config],
}
}
}

# require module nsswitch
if($nsswitch == true) {
class { 'nsswitch':
uri => $uri,
base => $base,
module_type => $ensure ? {
'present' => 'ldap',
default => 'none'
},
}
}

# require module pam
if($pam == true) {
class { 'pam':
module_type => $ensure ? {
'present' => 'ldap',
default => 'none'
},
}
}
}

8 changes: 0 additions & 8 deletions manifests/install.pp

This file was deleted.

62 changes: 49 additions & 13 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,45 +3,77 @@

case $operatingsystem {

debian: {

$mod_prefix = 'ldap/debian'
Debian: {

$package = [ 'ldap-utils' ]

$prefix = '/etc/ldap'
$owner = 'root'
$group = 'root'
$config = "${prefix}/ldap.conf"
$config = 'ldap.conf'

$server_config = "${prefix}/slapd.conf"
$service = 'slapd'
$server_script = 'slapd'
$server_pattern = 'slapd'
$server_package = 'slapd'
$server_config = 'slapd.conf'
$server_owner = 'openldap'
$server_group = 'openldap'
$db_prefix = '/var/lib/ldap'
$ssl_prefix = '/etc/openssl/ssl'
$server_run = '/var/run/openldap'

case $architecture {
amd64: {
$module_prefix = '/usr/lib64/ldap'
}

/^i?[346]86/: {
$module_prefix = '/usr/lib32/ldap'
}

default: {
fail("Architecture not supported by this module")
}
}

$modules_base = [ 'back_bdb' ]

$schema_prefix = "${prefix}/schema"
$schema_base = [ 'core', 'cosine', 'nis', 'inetorgperson', ]
$index_base = [
'index objectclass eq',
'index entryCSN eq',
'index entryUUID eq',
'index uidNumber eq',
'index gidNumber eq',
'index cn pres,sub,eq',
'index sn pres,sub,eq',
'index uid pres,sub,eq',
'index displayName pres,sub,eq',
]

}

# For redhat ovs oel
default: {
Redhat: {

$mod_prefix = 'ldap/redhat'

$package = [ 'openldap', 'openldap-clients' ]



$prefix = '/etc/openldap'
$owner = 'root'
$group = 'root'
$config = "${prefix}/ldap.conf"
$config = 'ldap.conf'

$server_package = [ 'openldap-servers' ]
$server_config = "${prefix}/slapd.conf"
$server_config = 'slapd.conf'
$service = 'slapd'
$server_script = 'slapd'
$server_pattern = 'slapd'
$server_owner = 'ldap'
$server_group = 'ldap'

$schema_prefix = "${prefix}/schema"
$schema_prefix = "${prefix}/schema"
$db_prefix = '/var/lib/ldap'
if($architecture =~ /^x86_64/) {
$module_prefix = '/usr/lib64/openldap'
Expand All @@ -64,5 +96,9 @@
'index displayName pres,sub,eq',
]
}

default: {
fail("Operating system not supported")
}
}
}
64 changes: 33 additions & 31 deletions manifests/server/master.pp
Original file line number Diff line number Diff line change
@@ -1,43 +1,62 @@

class ldap::server::master($suffix, $rootpw,
$bind_anon = true,
$schema_inc = [],
$modules_inc = [],
$index_inc = [],
$log_level = '0',
$bind_anon = true,
$ssl = false,
$ssl_url = false,
$ssl_ca = 'ca.pem',
$ssl_cert = 'cert.pem',
$ssl_key = 'cert.key',
$syncprov = false,
$syncprov_checkpoint = '100 10',
$syncprov_sessionlog = '100',
$sync_binddn = false,
$ensure = 'present') {
$ensure = present) {

include ldap::params

package { $ldap::params::server_package:
ensure => $ensure
}

$mod_prefix = $ldap::params::mod_prefix
$db_prefix = $ldap::params::db_prefix
$module_prefix = $ldap::params::module_prefix
$schema_prefix = $ldap::params::schema_prefix
$ssl_prefix = $ldap::params::ssl_prefix
$server_run = $ldap::params::server_run
$modules_base = $ldap::params::modules_base
$schema_base = $ldap::params::schema_base
$index_base = $ldap::params::index_base
service { $ldap::params::service:
ensure => $ensure ? {
present => running,
absent => stopped,
},
enable => $ensure ? {
present => true,
absent => false,
},
name => $ldap::params::server_script,
pattern => $ldap::params::server_pattern,
hasstatus => true,
hasrestart => true,
require => Package[$ldap::params::server_package],
}

file { $ldap::params::prefix:
ensure => $ensure ? {
present => directory,
default => absent
},
owner => 'root',
group => 'root',
mode => 0755,
require => Package[$ldap::params::server_package],
}

file { $ldap::params::server_config:
file { "${ldap::params::prefix}/${ldap::params::server_config}":
ensure => $ensure,
mode => 0640,
owner => $ldap::params::server_owner,
group => $ldap::params::server_group,
content => template("${mod_prefix}/${ldap::params::server_config}.erb"),
require => Package[$ldap::params::server_package]
content => template("ldap/${ldap::params::server_config}.erb"),
notify => Service[$ldap::params::service],
require => File[$ldap::params::prefix],
}

if($ssl == true) {
Expand All @@ -49,22 +68,5 @@
source => "puppet://${mod_prefix}"
}
}
service { $ldap::params::service:
ensure => $ensure ? {
'present' => running,
'absent' => stopped,
},
enable => $ensure ? {
'present' => true,
'absent' => false,
},
name => $ldap::params::server_script,
pattern => $ldap::params::server_pattern,
hasstatus => true,
hasrestart => true,
subscribe => File[$ldap::params::server_config],
require => Package[$ldap::params::server_package],
}

}

Loading

0 comments on commit a18ba2b

Please sign in to comment.