summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2013-09-10 10:20:24 +0000
committerPetr Viktorin <pviktori@redhat.com>2013-11-05 13:56:55 +0100
commitdf5f4ee81d1aff1122dd92ab1b56eb335294c3a7 (patch)
treeb112b429a896789029038bd3e25218495b647d56 /ipaserver
parent989493979da3ef1136a9b346cace5689ef22eed8 (diff)
downloadfreeipa.git-df5f4ee81d1aff1122dd92ab1b56eb335294c3a7.tar.gz
freeipa.git-df5f4ee81d1aff1122dd92ab1b56eb335294c3a7.tar.xz
freeipa.git-df5f4ee81d1aff1122dd92ab1b56eb335294c3a7.zip
Turn LDAPEntry.single_value into a dictionary-like property.
This change makes single_value consistent with the raw property. https://fedorahosted.org/freeipa/ticket/3521
Diffstat (limited to 'ipaserver')
-rw-r--r--ipaserver/install/adtrustinstance.py18
-rw-r--r--ipaserver/install/dsinstance.py2
-rw-r--r--ipaserver/install/ipa_backup.py2
-rw-r--r--ipaserver/install/ipa_restore.py8
-rw-r--r--ipaserver/install/ipa_server_certinstall.py2
-rw-r--r--ipaserver/install/krbinstance.py2
-rw-r--r--ipaserver/install/ldapupdate.py4
-rw-r--r--ipaserver/install/plugins/fix_replica_agreements.py4
-rw-r--r--ipaserver/install/replication.py50
9 files changed, 45 insertions, 47 deletions
diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py
index 6a1ede0d..5e3d0acb 100644
--- a/ipaserver/install/adtrustinstance.py
+++ b/ipaserver/install/adtrustinstance.py
@@ -201,7 +201,7 @@ class ADTRUSTInstance(service.Service):
self.print_msg("Samba domain object not found")
return
- dom_sid = dom_entry.single_value(self.ATTR_SID, None)
+ dom_sid = dom_entry.single_value.get(self.ATTR_SID)
if not dom_sid:
self.print_msg("Samba domain object does not have a SID")
return
@@ -218,7 +218,7 @@ class ADTRUSTInstance(service.Service):
self.print_msg("IPA admin group object not found")
return
- if admin_entry.single_value(self.ATTR_SID, None):
+ if admin_entry.single_value.get(self.ATTR_SID):
self.print_msg("Admin SID already set, nothing to do")
else:
try:
@@ -228,7 +228,7 @@ class ADTRUSTInstance(service.Service):
except:
self.print_msg("Failed to modify IPA admin object")
- if admin_group_entry.single_value(self.ATTR_SID, None):
+ if admin_group_entry.single_value.get(self.ATTR_SID):
self.print_msg("Admin group SID already set, nothing to do")
else:
try:
@@ -259,7 +259,7 @@ class ADTRUSTInstance(service.Service):
self.print_msg("Samba domain object not found")
return
- if dom_entry.single_value(self.ATTR_FALLBACK_GROUP, None):
+ if dom_entry.single_value.get(self.ATTR_FALLBACK_GROUP):
self.print_msg("Fallback group already set, nothing to do")
return
@@ -303,8 +303,8 @@ class ADTRUSTInstance(service.Service):
# Filter out ranges where RID base is already set
no_rid_base_set = lambda r: not any((
- r.single_value('ipaBaseRID', None),
- r.single_value('ipaSecondaryBaseRID', None)))
+ r.single_value.get('ipaBaseRID'),
+ r.single_value.get('ipaSecondaryBaseRID')))
ranges_with_no_rid_base = filter(no_rid_base_set, ranges)
@@ -321,7 +321,7 @@ class ADTRUSTInstance(service.Service):
# Abort if RID bases are too close
local_range = ranges_with_no_rid_base[0]
- size = local_range.single_value('ipaIDRangeSize', None)
+ size = local_range.single_value.get('ipaIDRangeSize')
if abs(self.rid_base - self.secondary_rid_base) > size:
self.print_msg("Primary and secondary RID base are too close. "
@@ -699,7 +699,7 @@ class ADTRUSTInstance(service.Service):
if len(res) > 1:
# there are other CIFS services defined, we are not alone
for entry in res:
- managedBy = entry.single_value('managedBy', None)
+ managedBy = entry.single_value.get('managedBy')
if managedBy:
fqdn = DN(managedBy)['fqdn']
if fqdn != unicode(self.fqdn):
@@ -810,7 +810,7 @@ class ADTRUSTInstance(service.Service):
raise ValueError("No local ID range and no admins group found.\n" \
"Add local ID range manually and try again!")
- base_id = int(entry.single_value('gidNumber'))
+ base_id = int(entry.single_value['gidNumber'])
id_range_size = 200000
id_filter = "(&" \
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py
index 285159ef..9c272049 100644
--- a/ipaserver/install/dsinstance.py
+++ b/ipaserver/install/dsinstance.py
@@ -894,7 +894,7 @@ class DsInstance(service.Service):
dn = DN(('cn', 'default'), ('ou', 'profile'), self.suffix)
try:
entry = self.admin_conn.get_entry(dn)
- srvlist = entry.single_value('defaultServerList', '')
+ srvlist = entry.single_value.get('defaultServerList', '')
srvlist = srvlist.split()
if not self.fqdn in srvlist:
srvlist.append(self.fqdn)
diff --git a/ipaserver/install/ipa_backup.py b/ipaserver/install/ipa_backup.py
index 12c62154..32272794 100644
--- a/ipaserver/install/ipa_backup.py
+++ b/ipaserver/install/ipa_backup.py
@@ -504,7 +504,7 @@ class Backup(admintool.AdminTool):
self.log.error("Failed to read services from '%s': %s" %
(conn.host, e))
else:
- services_cns = [s.single_value('cn') for s in services]
+ services_cns = [s.single_value['cn'] for s in services]
config.set('ipa', 'services', ','.join(services_cns))
with open(self.header, 'w') as fd:
diff --git a/ipaserver/install/ipa_restore.py b/ipaserver/install/ipa_restore.py
index 82113716..8443dee4 100644
--- a/ipaserver/install/ipa_restore.py
+++ b/ipaserver/install/ipa_restore.py
@@ -349,7 +349,7 @@ class Restore(admintool.AdminTool):
raise admintool.ScriptError(
"Failed to read master data: %s" % e)
else:
- masters = [ent.single_value('cn') for ent in entries]
+ masters = [ent.single_value['cn'] for ent in entries]
for master in masters:
if master == api.env.host:
@@ -368,10 +368,10 @@ class Restore(admintool.AdminTool):
except errors.NotFound:
continue
- services_cns = [s.single_value('cn') for s in services]
+ services_cns = [s.single_value['cn'] for s in services]
host_entries = repl.find_ipa_replication_agreements()
- hosts = [rep.single_value('nsds5replicahost', None)
+ hosts = [rep.single_value.get('nsds5replicahost')
for rep in host_entries]
for host in hosts:
@@ -386,7 +386,7 @@ class Restore(admintool.AdminTool):
self.log.critical("Unable to disable agreement on %s: %s" % (master, e))
host_entries = repl.find_ipa_replication_agreements()
- hosts = [rep.single_value('nsds5replicahost', None)
+ hosts = [rep.single_value.get('nsds5replicahost')
for rep in host_entries]
for host in hosts:
self.log.info('Disabling CA replication agreement on %s to %s' % (master, host))
diff --git a/ipaserver/install/ipa_server_certinstall.py b/ipaserver/install/ipa_server_certinstall.py
index 87c4eaf1..9e2ef3fc 100644
--- a/ipaserver/install/ipa_server_certinstall.py
+++ b/ipaserver/install/ipa_server_certinstall.py
@@ -117,7 +117,7 @@ class ServerCertInstall(admintool.AdminTool):
entry = conn.get_entry(DN(('cn', 'RSA'), ('cn', 'encryption'),
('cn', 'config')),
['nssslpersonalityssl'])
- old_cert = entry.single_value('nssslpersonalityssl')
+ old_cert = entry.single_value['nssslpersonalityssl']
server_cert = self.import_cert(dirname, self.options.pin,
old_cert, 'ldap/%s' % api.env.host,
diff --git a/ipaserver/install/krbinstance.py b/ipaserver/install/krbinstance.py
index cd39b827..af37d05f 100644
--- a/ipaserver/install/krbinstance.py
+++ b/ipaserver/install/krbinstance.py
@@ -365,7 +365,7 @@ class KrbInstance(service.Service):
raise e
krbMKey = pyasn1.codec.ber.decoder.decode(
- entry.single_value('krbmkey', None))
+ entry.single_value.get('krbmkey'))
keytype = int(krbMKey[0][1][0])
keydata = str(krbMKey[0][1][1])
diff --git a/ipaserver/install/ldapupdate.py b/ipaserver/install/ldapupdate.py
index 34dd3a5e..9140231c 100644
--- a/ipaserver/install/ldapupdate.py
+++ b/ipaserver/install/ldapupdate.py
@@ -482,7 +482,7 @@ class LDAPUpdate:
self.error("Task lookup failure %s", e)
return
- status = entry.single_value('nstaskstatus', None)
+ status = entry.single_value.get('nstaskstatus')
if status is None:
# task doesn't have a status yet
time.sleep(1)
@@ -842,7 +842,7 @@ class LDAPUpdate:
if entry.dn.endswith(DN(('cn', 'index'), ('cn', 'userRoot'),
('cn', 'ldbm database'), ('cn', 'plugins'),
('cn', 'config'))) and (added or updated):
- taskid = self.create_index_task(entry.single_value('cn'))
+ taskid = self.create_index_task(entry.single_value['cn'])
self.monitor_index_task(taskid)
return
diff --git a/ipaserver/install/plugins/fix_replica_agreements.py b/ipaserver/install/plugins/fix_replica_agreements.py
index 4f656924..bfd6356b 100644
--- a/ipaserver/install/plugins/fix_replica_agreements.py
+++ b/ipaserver/install/plugins/fix_replica_agreements.py
@@ -52,7 +52,7 @@ class update_replica_attribute_lists(PreUpdate):
self.log.debug("Found %d agreement(s)", len(ipa_replicas))
for replica in ipa_replicas:
- self.log.debug(replica.single_value('description', None))
+ self.log.debug(replica.single_value.get('description'))
self._update_attr(repl, replica,
'nsDS5ReplicatedAttributeList',
@@ -81,7 +81,7 @@ class update_replica_attribute_lists(PreUpdate):
:param values: List of values the attribute should hold
:param template: Template to use when adding attribute
"""
- attrlist = replica.single_value(attribute, None)
+ attrlist = replica.single_value.get(attribute)
if attrlist is None:
self.log.debug("Adding %s", attribute)
diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py
index 4d8a4687..1562382e 100644
--- a/ipaserver/install/replication.py
+++ b/ipaserver/install/replication.py
@@ -104,7 +104,7 @@ def enable_replication_version_checking(hostname, realm, dirman_passwd):
entry = conn.get_entry(DN(('cn', 'IPA Version Replication'),
('cn', 'plugins'),
('cn', 'config')))
- if entry.single_value('nsslapd-pluginenabled', None) == 'off':
+ if entry.single_value.get('nsslapd-pluginenabled') == 'off':
conn.modify_s(entry.dn, [(ldap.MOD_REPLACE, 'nsslapd-pluginenabled', 'on')])
conn.unbind()
serverid = "-".join(realm.split("."))
@@ -126,8 +126,8 @@ def wait_for_task(conn, dn):
'nsTaskTotalItems']
while True:
entry = conn.get_entry(dn, attrlist)
- if entry.single_value('nsTaskExitCode', None):
- exit_code = int(entry.single_value('nsTaskExitCode'))
+ if entry.single_value.get('nsTaskExitCode'):
+ exit_code = int(entry.single_value['nsTaskExitCode'])
break
time.sleep(1)
return exit_code
@@ -224,8 +224,8 @@ class ReplicationManager(object):
except errors.NotFound:
pass
else:
- if replica.single_value('nsDS5ReplicaId', None):
- return int(replica.single_value('nsDS5ReplicaId'))
+ if replica.single_value.get('nsDS5ReplicaId'):
+ return int(replica.single_value['nsDS5ReplicaId'])
# Ok, either the entry doesn't exist or the attribute isn't set
# so get it from the other master
@@ -237,12 +237,12 @@ class ReplicationManager(object):
root_logger.debug("Unable to retrieve nsDS5ReplicaId from remote server")
raise
else:
- if replica.single_value('nsDS5ReplicaId', None) is None:
+ if replica.single_value.get('nsDS5ReplicaId') is None:
root_logger.debug("Unable to retrieve nsDS5ReplicaId from remote server")
raise RuntimeError("Unable to retrieve nsDS5ReplicaId from remote server")
# Now update the value on the master
- retval = int(replica.single_value('nsDS5ReplicaId'))
+ retval = int(replica.single_value['nsDS5ReplicaId'])
mod = [(ldap.MOD_REPLACE, 'nsDS5ReplicaId', str(retval + 1))]
try:
@@ -421,7 +421,7 @@ class ReplicationManager(object):
('cn', 'config'), ('cn', 'ldbm database'),
('cn', 'plugins'), ('cn', 'config')),
['nsslapd-directory'])
- dbdir = os.path.dirname(ent.single_value('nsslapd-directory', None))
+ dbdir = os.path.dirname(ent.single_value.get('nsslapd-directory'))
entry = conn.make_entry(
DN(('cn', 'changelog5'), ('cn', 'config')),
@@ -501,7 +501,7 @@ class ReplicationManager(object):
DN(('cn', 'Multimaster Replication Plugin'), ('cn', 'plugins'),
('cn', 'config')),
['nsslapd-pluginPath'])
- path = plgent.single_value('nsslapd-pluginPath', None)
+ path = plgent.single_value.get('nsslapd-pluginPath')
mod = [(ldap.MOD_REPLACE, 'nsslapd-state', 'backend'),
(ldap.MOD_ADD, 'nsslapd-backend', bename),
@@ -802,10 +802,9 @@ class ReplicationManager(object):
print "Error reading status from agreement", agmtdn
hasError = 1
else:
- refresh = entry.single_value('nsds5BeginReplicaRefresh', None)
- inprogress = entry.single_value('nsds5replicaUpdateInProgress',
- None)
- status = entry.single_value('nsds5ReplicaLastInitStatus', None)
+ refresh = entry.single_value.get('nsds5BeginReplicaRefresh')
+ inprogress = entry.single_value.get('nsds5replicaUpdateInProgress')
+ status = entry.single_value.get('nsds5ReplicaLastInitStatus')
if not refresh: # done - check status
if not status:
print "No status yet"
@@ -843,15 +842,14 @@ class ReplicationManager(object):
print "Error reading status from agreement", agmtdn
hasError = 1
else:
- inprogress = entry.single_value('nsds5replicaUpdateInProgress',
- None)
- status = entry.single_value('nsds5ReplicaLastUpdateStatus', None)
+ inprogress = entry.single_value.get('nsds5replicaUpdateInProgress')
+ status = entry.single_value.get('nsds5ReplicaLastUpdateStatus')
try:
- start = int(entry.single_value('nsds5ReplicaLastUpdateStart'))
+ start = int(entry.single_value['nsds5ReplicaLastUpdateStart'])
except (ValueError, TypeError, KeyError):
start = 0
try:
- end = int(entry.single_value('nsds5ReplicaLastUpdateEnd'))
+ end = int(entry.single_value['nsds5ReplicaLastUpdateEnd'])
except (ValueError, TypeError, KeyError):
end = 0
# incremental update is done if inprogress is false and end >= start
@@ -1095,7 +1093,7 @@ class ReplicationManager(object):
root_logger.error("Using the first one only (%s)" % entries[0].dn)
dn = entries[0].dn
- schedule = entries[0].single_value('nsds5replicaupdateschedule', None)
+ schedule = entries[0].single_value.get('nsds5replicaupdateschedule')
# On the remote chance of a match. We force a synch to happen right
# now by setting the schedule to something and quickly removing it.
@@ -1215,7 +1213,7 @@ class ReplicationManager(object):
try:
dn = DN(('cn', 'default'), ('ou', 'profile'), self.suffix)
ret = self.conn.get_entry(dn)
- srvlist = ret.single_value('defaultServerList', '')
+ srvlist = ret.single_value.get('defaultServerList', '')
srvlist = srvlist[0].split()
if replica in srvlist:
srvlist.remove(replica)
@@ -1321,15 +1319,15 @@ class ReplicationManager(object):
"""
entry = self.conn.get_entry(DNA_DN)
- nextvalue = int(entry.single_value("dnaNextValue", 0))
- maxvalue = int(entry.single_value("dnaMaxValue", 0))
+ nextvalue = int(entry.single_value.get("dnaNextValue", 0))
+ maxvalue = int(entry.single_value.get("dnaMaxValue", 0))
- sharedcfgdn = entry.single_value("dnaSharedCfgDN", None)
+ sharedcfgdn = entry.single_value.get("dnaSharedCfgDN")
if sharedcfgdn is not None:
sharedcfgdn = DN(sharedcfgdn)
shared_entry = self.conn.get_entry(sharedcfgdn)
- remaining = int(shared_entry.single_value("dnaRemainingValues", 0))
+ remaining = int(shared_entry.single_value.get("dnaRemainingValues", 0))
else:
remaining = 0
@@ -1352,7 +1350,7 @@ class ReplicationManager(object):
"""
entry = self.conn.get_entry(DNA_DN)
- range = entry.single_value("dnaNextRange", None)
+ range = entry.single_value.get("dnaNextRange")
if range is None:
return (None, None)
@@ -1378,7 +1376,7 @@ class ReplicationManager(object):
"""
entry = self.conn.get_entry(DNA_DN)
- range = entry.single_value("dnaNextRange", None)
+ range = entry.single_value.get("dnaNextRange")
if range is not None and next_start != 0 and next_max != 0:
return False