require 'ds_admin' require 'yaml' DsAdmin::Model.storage = DsAdmin::Storage::Ldap.new( DsAdmin::Storage::Config.new( YAML.load_file(File.dirname(__FILE__) + '/config/storage.yml') )) user = DsAdmin::Model::User.new group = DsAdmin::Model::Group.new site = DsAdmin::Model::Site.new alias_role = DsAdmin::Model::MailAliasRole.new alias_person = DsAdmin::Model::MailAliasPerson.new account = DsAdmin::Model::MailAccount.new puts '=== base objects ===' puts 'base: ' + user.inspect puts 'base: ' + group.inspect puts 'base: ' + site.inspect puts 'base: ' + alias_role.inspect puts 'base: ' + alias_person.inspect puts 'base: ' + account.inspect puts puts '=== Model#all ===' puts user.all.inspect puts 'base: ' + user.inspect puts group.all.inspect puts 'base: ' + group.inspect puts site.all.inspect puts 'base: ' + site.inspect puts alias_role.all.inspect puts 'base: ' + alias_role.inspect puts alias_person.all.inspect puts 'base: ' + alias_person.inspect puts account.all.inspect puts 'base: ' + account.inspect puts puts '=== DsAdmin each ===' user.each {|u| puts u.inspect} puts 'base: ' + user.inspect puts '---' group.each {|g| puts g.inspect} puts 'base: ' + group.inspect puts '---' site.each {|s| puts s.inspect} puts 'base: ' + site.inspect puts '---' alias_role.each {|mar| puts mar.inspect} puts 'base: ' + alias_role.inspect puts '---' alias_person.each {|map| puts map.inspect} puts 'base: ' + alias_person.inspect puts '---' account.each {|macc| puts macc.inspect} puts 'base: ' + account.inspect puts puts '=== DsAdmin Enumerable ===' puts user.find {|u| u.uid == '1000'}.inspect puts 'base: ' + user.inspect puts '---' puts group.find {|g| g.gid == '10'}.inspect puts 'base: ' + group.inspect puts '---' puts site.find {|s| s.name == 'steffers.org'}.inspect puts 'base: ' + site.inspect puts '---' puts alias_role.find_all {|mar| mar.maildrop == 'abuse'}.inspect puts 'base: ' + alias_role.inspect puts '---' puts alias_person.find {|map| map.mail == 'georg@steffers.org'}.inspect puts 'base: ' + alias_person.inspect puts '---' puts account.find {|macc| macc.mail == 'drachenfrau@steffers.org'}.inspect puts 'base: ' + account.inspect puts puts '=== Model#load ===' puts user.load('uid=georg,ou=user,o=system,dc=weird-web-workers,dc=org').inspect puts 'base: ' + user.inspect puts '---' puts group.load('cn=wheel,ou=group,o=system,dc=weird-web-workers,dc=org').inspect puts 'base: ' + group.inspect puts '---' puts site.load('o=steffers.org,o=hosting,dc=weird-web-workers,dc=org').inspect puts 'base: ' + site.inspect puts '---' puts alias_role.load('cn=abuse,o=weird-web-workers.org,o=hosting,dc=weird-web-workers,dc=org').inspect puts 'base: ' + alias_role.inspect puts '---' puts alias_person.load('mail=georg@steffers.org,o=steffers.org,o=hosting,dc=weird-web-workers,dc=org').inspect puts 'base: ' + alias_person.inspect puts '---' puts account.load('mail=drachenfrau@steffers.org,o=steffers.org,o=hosting,dc=weird-web-workers,dc=org').inspect puts 'base: ' + account.inspect puts puts '=== Model#load! ===' user.load!('uid=georg,ou=user,o=system,dc=weird-web-workers,dc=org') puts 'base: ' + user.inspect puts '---' group.load!('cn=wheel,ou=group,o=system,dc=weird-web-workers,dc=org') puts 'base: ' + group.inspect puts '---' site.load!('o=steffers.org,o=hosting,dc=weird-web-workers,dc=org') puts 'base: ' + site.inspect puts '---' alias_role.load!('cn=abuse,o=weird-web-workers.org,o=hosting,dc=weird-web-workers,dc=org') puts 'base: ' + alias_role.inspect puts '---' alias_person.load!('mail=georg@steffers.org,o=steffers.org,o=hosting,dc=weird-web-workers,dc=org') puts 'base: ' + alias_person.inspect puts '---' account.load!('mail=drachenfrau@steffers.org,o=steffers.org,o=hosting,dc=weird-web-workers,dc=org') puts 'base: ' + account.inspect puts puts '=== Model#to_h ===' puts user.to_h.inspect puts 'base: ' + user.inspect puts '---' puts group.to_h.inspect puts 'base: ' + group.inspect puts '---' puts site.to_h.inspect puts 'base: ' + site.inspect puts '---' puts alias_role.to_h.inspect puts 'base: ' + alias_role.inspect puts '---' puts alias_person.to_h.inspect puts 'base: ' + alias_person.inspect puts '---' puts account.to_h.inspect puts 'base: ' + account.inspect puts puts '=== Storage#update ===' user.home = '/home/user/foo' puts 'returns: ' + user.save puts 'base: ' + user.inspect puts puts '=== Storage#update(replace[delete,create]) ===' user.name = 'brad' puts 'returns: ' + user.save puts 'base: ' + user.inspect puts alias_person.mail = 'noop@steffers.org' puts 'returns: ' + alias_person.save puts 'base: ' + alias_person.inspect puts puts 'Memory useage: ' + `ps -o rss= -p #{Process.pid}`