1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-05 12:22:11 +03:00

kcc_utils.py: avoid inefficient string concatenations

Signed-off-by: Bjoern Jacke <bjacke@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Björn Jacke
2019-08-25 23:05:10 +02:00
committed by Bjoern Jacke
parent 4c34a2d725
commit 1825a7f4e2

View File

@ -66,9 +66,9 @@ class NamingContext(object):
def __str__(self):
'''Debug dump string output of class'''
text = "%s:" % (self.__class__.__name__,)
text = text + "\n\tnc_dnstr=%s" % self.nc_dnstr
text = text + "\n\tnc_guid=%s" % str(self.nc_guid)
text = "%s:" % (self.__class__.__name__,) +\
"\n\tnc_dnstr=%s" % self.nc_dnstr +\
"\n\tnc_guid=%s" % str(self.nc_guid)
if self.nc_sid is None:
text = text + "\n\tnc_sid=<absent>"
@ -200,20 +200,16 @@ class NCReplica(NamingContext):
def __str__(self):
'''Debug dump string output of class'''
text = "%s:" % self.__class__.__name__
text = text + "\n\tdsa_dnstr=%s" % self.rep_dsa_dnstr
text = text + "\n\tdsa_guid=%s" % self.rep_dsa_guid
text = text + "\n\tdefault=%s" % self.rep_default
text = text + "\n\tro=%s" % self.rep_ro
text = text + "\n\tpartial=%s" % self.rep_partial
text = text + "\n\tpresent=%s" % self.is_present()
text = text + "\n\tfsmo_role_owner=%s" % self.rep_fsmo_role_owner
for rep in self.rep_repsFrom:
text = text + "\n%s" % rep
for rep in self.rep_repsTo:
text = text + "\n%s" % rep
text = "%s:" % self.__class__.__name__ +\
"\n\tdsa_dnstr=%s" % self.rep_dsa_dnstr +\
"\n\tdsa_guid=%s" % self.rep_dsa_guid +\
"\n\tdefault=%s" % self.rep_default +\
"\n\tro=%s" % self.rep_ro +\
"\n\tpartial=%s" % self.rep_partial +\
"\n\tpresent=%s" % self.is_present() +\
"\n\tfsmo_role_owner=%s" % self.rep_fsmo_role_owner +\
"".join("\n%s" % rep for rep in self.rep_repsFrom) +\
"".join("\n%s" % rep for rep in self.rep_repsTo)
return "%s\n%s" % (NamingContext.__str__(self), text)
@ -589,16 +585,15 @@ class DirectoryServiceAgent(object):
if self.dsa_ivid is not None:
text = text + "\n\tdsa_ivid=%s" % str(self.dsa_ivid)
text = text + "\n\tro=%s" % self.is_ro()
text = text + "\n\tgc=%s" % self.is_gc()
text = text + "\n\tistg=%s" % self.is_istg()
text = text + "\ncurrent_replica_table:"
text = text + "\n%s" % self.dumpstr_current_replica_table()
text = text + "\nneeded_replica_table:"
text = text + "\n%s" % self.dumpstr_needed_replica_table()
text = text + "\nconnect_table:"
text = text + "\n%s" % self.dumpstr_connect_table()
text += "\n\tro=%s" % self.is_ro() +\
"\n\tgc=%s" % self.is_gc() +\
"\n\tistg=%s" % self.is_istg() +\
"\ncurrent_replica_table:" +\
"\n%s" % self.dumpstr_current_replica_table() +\
"\nneeded_replica_table:" +\
"\n%s" % self.dumpstr_needed_replica_table() +\
"\nconnect_table:" +\
"\n%s" % self.dumpstr_connect_table()
return text
@ -919,39 +914,38 @@ class NTDSConnection(object):
def __str__(self):
'''Debug dump string output of NTDSConnection object'''
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr)
text = text + "\n\tenabled=%s" % self.enabled
text = text + "\n\tto_be_added=%s" % self.to_be_added
text = text + "\n\tto_be_deleted=%s" % self.to_be_deleted
text = text + "\n\tto_be_modified=%s" % self.to_be_modified
text = text + "\n\toptions=0x%08X" % self.options
text = text + "\n\tsystem_flags=0x%08X" % self.system_flags
text = text + "\n\twhenCreated=%d" % self.whenCreated
text = text + "\n\ttransport_dn=%s" % self.transport_dnstr
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr) +\
"\n\tenabled=%s" % self.enabled +\
"\n\tto_be_added=%s" % self.to_be_added +\
"\n\tto_be_deleted=%s" % self.to_be_deleted +\
"\n\tto_be_modified=%s" % self.to_be_modified +\
"\n\toptions=0x%08X" % self.options +\
"\n\tsystem_flags=0x%08X" % self.system_flags +\
"\n\twhenCreated=%d" % self.whenCreated +\
"\n\ttransport_dn=%s" % self.transport_dnstr
if self.guid is not None:
text = text + "\n\tguid=%s" % str(self.guid)
text += "\n\tguid=%s" % str(self.guid)
if self.transport_guid is not None:
text = text + "\n\ttransport_guid=%s" % str(self.transport_guid)
text += "\n\ttransport_guid=%s" % str(self.transport_guid)
text = text + "\n\tfrom_dn=%s" % self.from_dnstr
if self.schedule is not None:
text += "\n\tschedule.size=%s" % self.schedule.size
text += "\n\tschedule.bandwidth=%s" % self.schedule.bandwidth
text += ("\n\tschedule.numberOfSchedules=%s" %
text += "\n\tschedule.size=%s" % self.schedule.size +\
"\n\tschedule.bandwidth=%s" % self.schedule.bandwidth +\
("\n\tschedule.numberOfSchedules=%s" %
self.schedule.numberOfSchedules)
for i, header in enumerate(self.schedule.headerArray):
text += ("\n\tschedule.headerArray[%d].type=%d" %
(i, header.type))
text += ("\n\tschedule.headerArray[%d].offset=%d" %
(i, header.offset))
text += "\n\tschedule.dataArray[%d].slots[ " % i
for slot in self.schedule.dataArray[i].slots:
text = text + "0x%X " % slot
text = text + "]"
(i, header.type)) +\
("\n\tschedule.headerArray[%d].offset=%d" %
(i, header.offset)) +\
"\n\tschedule.dataArray[%d].slots[ " % i +\
"".join("0x%X " % slot for slot in self.schedule.dataArray[i].slots) +\
"]"
return text
@ -1458,12 +1452,10 @@ class Partition(NamingContext):
def __str__(self):
'''Debug dump string output of class'''
text = "%s" % NamingContext.__str__(self)
text = text + "\n\tpartdn=%s" % self.partstr
for k in self.rw_location_list:
text = text + "\n\tmsDS-NC-Replica-Locations=%s" % k
for k in self.ro_location_list:
text = text + "\n\tmsDS-NC-RO-Replica-Locations=%s" % k
text = "%s" % NamingContext.__str__(self) +\
"\n\tpartdn=%s" % self.partstr +\
"".join("\n\tmsDS-NC-Replica-Locations=%s" % k for k in self.rw_location_list) +\
"".join("\n\tmsDS-NC-RO-Replica-Locations=%s" % k for k in self.ro_location_list)
return text
@ -1764,11 +1756,11 @@ class Site(object):
def __str__(self):
'''Debug dump string output of class'''
text = "%s:" % self.__class__.__name__
text = text + "\n\tdn=%s" % self.site_dnstr
text = text + "\n\toptions=0x%X" % self.site_options
text = text + "\n\ttopo_generator=%s" % self.site_topo_generator
text = text + "\n\ttopo_failover=%d" % self.site_topo_failover
text = "%s:" % self.__class__.__name__ +\
"\n\tdn=%s" % self.site_dnstr +\
"\n\toptions=0x%X" % self.site_options +\
"\n\ttopo_generator=%s" % self.site_topo_generator +\
"\n\ttopo_failover=%d" % self.site_topo_failover
for key, dsa in self.dsa_table.items():
text = text + "\n%s" % dsa
return text
@ -1792,9 +1784,9 @@ class GraphNode(object):
self.edge_from = []
def __str__(self):
text = "%s:" % self.__class__.__name__
text = text + "\n\tdsa_dnstr=%s" % self.dsa_dnstr
text = text + "\n\tmax_edges=%d" % self.max_edges
text = "%s:" % self.__class__.__name__ +\
"\n\tdsa_dnstr=%s" % self.dsa_dnstr +\
"\n\tmax_edges=%d" % self.max_edges
for i, edge in enumerate(self.edge_from):
if isinstance(edge, str):
@ -1894,13 +1886,12 @@ class Transport(object):
def __str__(self):
'''Debug dump string output of Transport object'''
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr)
text = text + "\n\tguid=%s" % str(self.guid)
text = text + "\n\toptions=%d" % self.options
text = text + "\n\taddress_attr=%s" % self.address_attr
text = text + "\n\tname=%s" % self.name
for dnstr in self.bridgehead_list:
text = text + "\n\tbridgehead_list=%s" % dnstr
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr) +\
"\n\tguid=%s" % str(self.guid) +\
"\n\toptions=%d" % self.options +\
"\n\taddress_attr=%s" % self.address_attr +\
"\n\tname=%s" % self.name +\
"".join("\n\tbridgehead_list=%s" % dnstr for dnstr in self.bridgehead_list)
return text
@ -2006,25 +1997,24 @@ class RepsFromTo(object):
def __str__(self):
'''Debug dump string output of class'''
text = "%s:" % self.__class__.__name__
text += "\n\tdnstr=%s" % self.nc_dnstr
text += "\n\tupdate_flags=0x%X" % self.update_flags
text += "\n\tversion=%d" % self.version
text += "\n\tsource_dsa_obj_guid=%s" % self.source_dsa_obj_guid
text += ("\n\tsource_dsa_invocation_id=%s" %
self.source_dsa_invocation_id)
text += "\n\ttransport_guid=%s" % self.transport_guid
text += "\n\treplica_flags=0x%X" % self.replica_flags
text += ("\n\tconsecutive_sync_failures=%d" %
self.consecutive_sync_failures)
text += "\n\tlast_success=%s" % self.last_success
text += "\n\tlast_attempt=%s" % self.last_attempt
text += "\n\tdns_name1=%s" % self.dns_name1
text += "\n\tdns_name2=%s" % self.dns_name2
text += "\n\tschedule[ "
for slot in self.schedule:
text += "0x%X " % slot
text += "]"
text = "%s:" % self.__class__.__name__ +\
"\n\tdnstr=%s" % self.nc_dnstr +\
"\n\tupdate_flags=0x%X" % self.update_flags +\
"\n\tversion=%d" % self.version +\
"\n\tsource_dsa_obj_guid=%s" % self.source_dsa_obj_guid +\
("\n\tsource_dsa_invocation_id=%s" %
self.source_dsa_invocation_id) +\
"\n\ttransport_guid=%s" % self.transport_guid +\
"\n\treplica_flags=0x%X" % self.replica_flags +\
("\n\tconsecutive_sync_failures=%d" %
self.consecutive_sync_failures) +\
"\n\tlast_success=%s" % self.last_success +\
"\n\tlast_attempt=%s" % self.last_attempt +\
"\n\tdns_name1=%s" % self.dns_name1 +\
"\n\tdns_name2=%s" % self.dns_name2 +\
"\n\tschedule[ " +\
"".join("0x%X " % slot for slot in self.schedule) +\
"]"
return text
@ -2138,27 +2128,26 @@ class SiteLink(object):
def __str__(self):
'''Debug dump string output of Transport object'''
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr)
text = text + "\n\toptions=%d" % self.options
text = text + "\n\tsystem_flags=%d" % self.system_flags
text = text + "\n\tcost=%d" % self.cost
text = text + "\n\tinterval=%s" % self.interval
text = "%s:\n\tdn=%s" % (self.__class__.__name__, self.dnstr) +\
"\n\toptions=%d" % self.options +\
"\n\tsystem_flags=%d" % self.system_flags +\
"\n\tcost=%d" % self.cost +\
"\n\tinterval=%s" % self.interval
if self.schedule is not None:
text += "\n\tschedule.size=%s" % self.schedule.size
text += "\n\tschedule.bandwidth=%s" % self.schedule.bandwidth
text += ("\n\tschedule.numberOfSchedules=%s" %
text += "\n\tschedule.size=%s" % self.schedule.size +\
"\n\tschedule.bandwidth=%s" % self.schedule.bandwidth +\
("\n\tschedule.numberOfSchedules=%s" %
self.schedule.numberOfSchedules)
for i, header in enumerate(self.schedule.headerArray):
text += ("\n\tschedule.headerArray[%d].type=%d" %
(i, header.type))
text += ("\n\tschedule.headerArray[%d].offset=%d" %
(i, header.offset))
text = text + "\n\tschedule.dataArray[%d].slots[ " % i
for slot in self.schedule.dataArray[i].slots:
text = text + "0x%X " % slot
text = text + "]"
(i, header.type)) +\
("\n\tschedule.headerArray[%d].offset=%d" %
(i, header.offset)) +\
"\n\tschedule.dataArray[%d].slots[ " % i +\
"".join("0x%X " % slot for slot in self.schedule.dataArray[i].slots) +\
"]"
for guid, dn in self.site_list:
text = text + "\n\tsite_list=%s (%s)" % (guid, dn)