HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //var/cache/puppet/lib/puppet/type/openldap_schema.rb
require 'set'
require 'uri'

Puppet::Type.newtype(:openldap_schema) do
  desc <<-DESC
Manages an OpenLDAP schema object.

@example Load the cosine schema
  include ::openldap::server

  openldap_schema { 'cosine':
    ensure => present,
    ldif   => '/etc/openldap/schema/cosine.ldif',
  }
DESC

  @doc = 'Manages an OpenLDAP schema object.'

  ensurable do
    defaultvalues
    defaultto(:present)
  end

  newparam(:name) do
    desc 'The name of the schema.'
    isnamevar
  end

  newparam(:service) do
    desc 'The name of the slapd service.'
    defaultto('slapd')
  end

  newparam(:ldif) do
    desc 'LDIF file containing schema to load.'

    validate do |value|
      unless Puppet::Util.absolute_path?(value)
        begin
          uri = URI.parse(URI.escape(value))
        rescue => detail
          raise Puppet::Error, "Could not understand LDIF #{value}: #{detail}"
        end

        raise Puppet::Error, "Cannot use relative URLs '#{value}'" unless uri.absolute?
        raise Puppet::Error, "Cannot use opaque URLs '#{value}'" unless uri.hierarchical?
        raise Puppet::Error, "Cannot use URLs of type '#{uri.scheme}' as source for fileserving" unless %w{file puppet}.include?(uri.scheme)
      end
    end

    SEPARATOR_REGEX = [Regexp.escape(File::SEPARATOR.to_s), Regexp.escape(File::ALT_SEPARATOR.to_s)].join

    munge do |value|
      ldif = value.sub(/[#{SEPARATOR_REGEX}]+$/, '')
      if Puppet::Util.absolute_path?(ldif)
        URI.unescape(Puppet::Util.path_to_uri(ldif).to_s)
      else
        ldif
      end
    end
  end

  autorequire(:openldap) do
    # Autorequire the parent schema object
    ['cn=schema,cn=config']
  end

  autobefore(:openldap) do
    # Autobefore the frontend database object
    ['olcDatabase={-1}frontend,cn=config']
  end

  autorequire(:openldap_schema) do
    autos = []

    # If this isn't the core schema, autorequire it
    autos << 'core' unless self[:name] == 'core'

    autos
  end

  autorequire(:file) do
    autos = []

    # Autorequire the LDIF file if passed and it's a local file
    if self[:ldif]
      if ldif = self[:ldif] and uri = URI.parse(URI.escape(ldif)) and uri.scheme == 'file'
        autos << uri_to_path(uri)
      end
    end

    autos
  end

  autorequire(:service) do
    # Autorequire the slapd service otherwise modifications won't work
    [self[:service]]
  end
end