summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Zuna <pzuna@redhat.com>2009-08-04 17:14:45 +0200
committerRob Crittenden <rcrit@thor.greyoak.com>2009-08-05 09:20:49 -0400
commitb7b9f9b6a66f75e838a3a60b105ac7d0f8197ed2 (patch)
tree56b45e21291c9f4e1870a6e17ad846ef52018b46
parent22493eef216a587bf076f81e558c476b6dd513bf (diff)
downloadfreeipa-b7b9f9b6a66f75e838a3a60b105ac7d0f8197ed2.tar.gz
freeipa-b7b9f9b6a66f75e838a3a60b105ac7d0f8197ed2.tar.xz
freeipa-b7b9f9b6a66f75e838a3a60b105ac7d0f8197ed2.zip
Add options in baseldap classes to display unaltered LDAP entries.
The options in question is '--raw'.
-rw-r--r--ipalib/plugins/baseldap.py54
1 files changed, 44 insertions, 10 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 2dd11ccdf..43e22a375 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -109,7 +109,9 @@ class LDAPObject(Object):
def get_primary_key_from_dn(self, dn):
return dn[len(self.primary_key.name) + 1:dn.find(',')]
- def convert_attribute_members(self, entry_attrs):
+ def convert_attribute_members(self, entry_attrs, *keys, **options):
+ if options.get('raw', False):
+ return
for attr in self.attribute_members:
for member in entry_attrs.setdefault(attr, []):
for ldap_obj_name in self.attribute_members[attr]:
@@ -146,6 +148,13 @@ class LDAPCreate(crud.Create):
"""
Create a new entry in LDAP.
"""
+ takes_options = (
+ Flag('raw',
+ cli_name='raw',
+ doc='print entries as they are stored in LDAP',
+ ),
+ )
+
def get_args(self):
if self.obj.parent_key:
yield self.obj.parent_key.clone(query=True)
@@ -174,7 +183,7 @@ class LDAPCreate(crud.Create):
dn = self.post_callback(ldap, dn, entry_attrs, *keys, **options)
- self.obj.convert_attribute_members(entry_attrs)
+ self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return (dn, entry_attrs)
def output_for_cli(self, textui, entry, *keys, **options):
@@ -217,6 +226,10 @@ class LDAPRetrieve(LDAPQuery):
Retrieve an LDAP entry.
"""
takes_options = (
+ Flag('raw',
+ cli_name='raw',
+ doc='print entries as they are stored in LDAP',
+ ),
Flag('all',
cli_name='all',
doc='retrieve all attributes',
@@ -239,7 +252,7 @@ class LDAPRetrieve(LDAPQuery):
dn = self.post_callback(ldap, dn, entry_attrs, *keys, **options)
- self.obj.convert_attribute_members(entry_attrs)
+ self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return (dn, entry_attrs)
def output_for_cli(self, textui, entry, *keys, **options):
@@ -257,6 +270,13 @@ class LDAPUpdate(LDAPQuery, crud.Update):
"""
Update an LDAP entry.
"""
+ takes_options = (
+ Flag('raw',
+ cli_name='raw',
+ doc='print entries as they are stored in LDAP',
+ ),
+ )
+
def execute(self, *keys, **options):
ldap = self.obj.backend
@@ -275,7 +295,7 @@ class LDAPUpdate(LDAPQuery, crud.Update):
dn = self.post_callback(ldap, dn, entry_attrs, *keys, **options)
- self.obj.convert_attribute_members(entry_attrs)
+ self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return (dn, entry_attrs)
def output_for_cli(self, textui, entry, *keys, **options):
@@ -361,6 +381,13 @@ class LDAPModMember(LDAPQuery):
member_param_doc = 'comma-separated list of %s'
member_count_out = ('%i member processed.', '%i members processed.')
+ takes_options = (
+ Flag('raw',
+ cli_name='raw',
+ doc='print entries as they are stored in LDAP',
+ ),
+ )
+
def get_options(self):
for attr in self.obj.attribute_members:
for ldap_obj_name in self.obj.attribute_members[attr]:
@@ -444,7 +471,7 @@ class LDAPAddMember(LDAPModMember):
ldap, completed, failed, dn, entry_attrs, *keys, **options
)
- self.obj.convert_attribute_members(entry_attrs)
+ self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return (completed, failed, (dn, entry_attrs))
def pre_callback(self, ldap, dn, found, not_found, *keys, **options):
@@ -492,7 +519,7 @@ class LDAPRemoveMember(LDAPModMember):
ldap, completed, failed, dn, entry_attrs, *keys, **options
)
- self.obj.convert_attribute_members(entry_attrs)
+ self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return (completed, add_failed, (dn, entry_attrs))
def pre_callback(self, ldap, dn, found, not_found, *keys, **options):
@@ -507,6 +534,10 @@ class LDAPSearch(crud.Search):
Retrieve all LDAP entries matching the given criteria.
"""
takes_options = (
+ Flag('raw',
+ cli_name='raw',
+ doc='print entries as they are stored in LDAP',
+ ),
Flag('all',
cli_name='all',
doc='retrieve all attributes',
@@ -561,10 +592,13 @@ class LDAPSearch(crud.Search):
self.post_callback(self, ldap, entries, truncated, *args, **options)
- for i in xrange(len(entries)):
- dn = self.obj.get_primary_key_from_dn(entries[i][0])
- self.obj.convert_attribute_members(entries[i][1])
- entries[i] = (dn, entries[i][1])
+ if options.get('raw', False):
+ for i in xrange(len(entries)):
+ dn = self.obj.get_primary_key_from_dn(entries[i][0])
+ self.obj.convert_attribute_members(
+ entries[i][1], *keys, **options
+ )
+ entries[i] = (dn, entries[i][1])
return (entries, truncated)
def output_for_cli(self, textui, result, *args, **options):