Sha256: b1c0717356e4768b1bc5e7d980a8717b1bc0cfdd66f45274532ce89624bc8cd2

Contents?: true

Size: 1.18 KB

Versions: 12

Compression:

Stored size: 1.18 KB

Contents

module Socialcast
  module CommandLine
    module Provisioner
      class ProvisionError < StandardError; end

      DEFAULT_OUTPUT_FILE = 'users.xml.gz'

      def initialize(ldap_config, options = {})
        @ldap_config = ldap_config.dup
        @options = options.dup

        @options[:output] ||= DEFAULT_OUTPUT_FILE
      end

      private

      def http_config
        @http_config ||= @ldap_config.fetch 'http', {}
      end

      def ldap_connectors
        @ldap_connectors ||= @ldap_config['connections'].map do |connection_name, _|
          LDAPConnector.new(connection_name, @ldap_config)
        end
      end

      def each_ldap_connector
        ldap_connectors.each do |ldap_connector|
          yield ldap_connector
        end
      end

      def each_ldap_entry(&block)
        count = 0

        each_ldap_connector do |connector|
          connector.each_ldap_entry do |entry|
            yield entry, connector.connection_name
            count += 1
            puts "Scanned #{count} users" if ((count % 100) == 0)
          end
        end
        log "Finished scanning #{count} users"
      end

      def log(message)
        $stdout.puts message
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
socialcast-1.4.4 lib/socialcast/command_line/provisioner.rb
socialcast-1.4.3 lib/socialcast/command_line/provisioner.rb
socialcast-1.4.2 lib/socialcast/command_line/provisioner.rb
socialcast-1.4.1 lib/socialcast/command_line/provisioner.rb
socialcast-1.4.0 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.20 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.19 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.18 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.17 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.16 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.15 lib/socialcast/command_line/provisioner.rb
socialcast-1.3.14 lib/socialcast/command_line/provisioner.rb