mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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
This commit is contained in:
committed by
Petr Viktorin
parent
989493979d
commit
df5f4ee81d
@@ -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 = "(&" \
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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])
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user