# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+from __future__ import print_function
import sys
if base_request is None:
raise Exception("Unable to determine base size for opnum %d" % self.opnum)
- print "\tBase request is %r" % base_request
+ print("\tBase request is %r" % base_request)
decision_byte_map = map(lambda x: self.check_decision_byte(base_request, x), range(len(base_request)))
- print decision_byte_map
+ print(decision_byte_map)
# find pointers
possible_pointers = map(all,
[decision_byte_map[i*4:(i+1)*4] for i in range(int(len(base_request)/4))])
- print possible_pointers
+ print(possible_pointers)
pointer_deferrant_bases = map(
lambda x: self.find_deferrant_data(base_request, x) if possible_pointers[x] else None, range(len(possible_pointers)))
- print pointer_deferrant_bases
+ print(pointer_deferrant_bases)
if len(sys.argv) < 3:
- print "Usage: autoidl <binding> <UUID> [<version>]"
+ print("Usage: autoidl <binding> <UUID> [<version>]")
sys.exit(1)
(binding, uuid) = sys.argv[1:3]
else:
conn = ClientConnection(binding, (uuid, version))
-print "Figuring out number of connections...",
+print("Figuring out number of connections... ", end='')
num_funcs = find_num_funcs(conn)
-print "%d" % num_funcs
+print("%d" % num_funcs)
# Figure out the syntax for each one
for i in range(num_funcs):
- print "Function %d" % i
+ print("Function %d" % i)
data = Function(conn, i)
try:
data.find_idl()
except Exception as e:
- print "Error: %r" % e
+ print("Error: %r" % e)
#
# Works out the full schema
#
+from __future__ import print_function
import base64
import optparse
value = fix_dn(j)
if a != "cn":
if a == "oMObjectClass":
- print "%s:: %s" % (a, base64.b64encode(value)).decode('utf8')
+ print("%s:: %s" % (a, base64.b64encode(value)).decode('utf8'))
elif a.endswith("GUID"):
- print "%s: %s" % (a, ldb.schema_format_value(a, value))
+ print("%s: %s" % (a, ldb.schema_format_value(a, value)))
else:
- print "%s: %s" % (a, value)
- print ""
+ print("%s: %s" % (a, value))
+ print()
# get the rootDSE
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+from __future__ import print_function
import optparse
import sys
l = line[i * length:((i + 1) * length)]
else:
l = " " + line[(i * length):((i + 1) * length)]
- print l
- print "\n"
+ print(l)
+ print("\n")
def write_as_sddl(self, dn, descr):
- print dn
- print descr + "\n"
+ print(dn)
+ print(descr + "\n")
def read_descr_by_base(self, search_base):
res = self.samdb.search(base=search_base + self.local_domain, expression="(objectClass=*)", scope=SCOPE_SUBTREE, attrs=["nTSecurityDescriptor"])
#
# Works out the minimal schema for a set of objectclasses
#
-
+from __future__ import print_function
import base64
import optparse
import sys
return
testdn = create_testdn(o.exampleDN)
- print "testdn is '%s'" % testdn
+ print("testdn is '%s'" % testdn)
ldif = "dn: " + testdn
ldif += "\nobjectClass: " + o.name
try:
ldb.add(ldif)
except LdbError as e:
- print "error adding %s: %s" % (o.name, e)
- print "%s" % ldif
+ print("error adding %s: %s" % (o.name, e))
+ print("%s" % ldif)
return
res = ldb.search(base=testdn, scope=ldb.SCOPE_BASE)
expression="(&(objectClass=classSchema)(ldapDisplayName=%s))" % o.name,
base=rootDse["schemaNamingContext"][0], scope=SCOPE_SUBTREE,
attrs=attrs)
- print >>sys.stderr, "Expanding class %s" % o.name
+ print("Expanding class %s" % o.name, file=sys.stderr)
assert(len(res) == 1)
msg = res[0]
for aname in attrs:
list = [msg[aname]]
for name in list:
if not objectclasses.has_key(name):
- print >>sys.stderr, "Found new objectclass '%s'" % name
+ print("Found new objectclass '%s'" % name, file=sys.stderr)
objectclasses[name] = Objectclass(ldb, name)
try:
res = ldb.search("objectClass=*", dn, SCOPE_BASE, attrs)
except LdbError as e:
- print >>sys.stderr, "Unable to fetch allowedAttributes for '%s' - %r" % (dn, e)
+ print("Unable to fetch allowedAttributes for '%s' - %r" % (dn, e),
+ file=sys.stderr)
return
allattrs = res[0]["allowedAttributes"]
try:
res = ldb.search("objectClass=*", dn, SCOPE_BASE, allattrs)
except LdbError as e:
- print >>sys.stderr, "Unable to fetch all attributes for '%s' - %s" % (dn, e)
+ print("Unable to fetch all attributes for '%s' - %s" % (dn, e),
+ file=sys.stderr)
return
msg = res[0]
for a in msg:
res = ldb.search("objectClass=*", namingContext, SCOPE_DEFAULT,
["objectClass"])
except LdbError as e:
- print >>sys.stderr, "Unable to fetch objectClasses for '%s' - %s" % (namingContext, e)
+ print("Unable to fetch objectClasses for '%s' - %s" % (namingContext, e),
+ file=sys.stderr)
return
for msg in res:
msg = res.msgs[r]["objectClass"]
base=rootDse["schemaNamingContext"][0], scope=SCOPE_SUBTREE,
attrs=attrs)
if len(res) == 0:
- print >>sys.stderr, "unknown class '%s'" % name
+ print("unknown class '%s'" % name, file=sys.stderr)
return None
return Objectclass(ldb, name)
list = attribute_list(objectclass, "systemMayContain", "mayContain")
line += aggregate_list("MAY", list)
- print line + " )"
+ print(line + " )")
def write_aggregate_ditcontentrule(objectclass):
line += aggregate_list("MUST", must_list)
line += aggregate_list("MAY", may_list)
- print line + " )"
+ print(line + " )")
def write_aggregate_attribute(attrib):
"""write the aggregate record for an attribute"""
if attrib.get('systemOnly') == "TRUE":
line += "NO-USER-MODIFICATION "
- print line + ")"
+ print(line + ")")
def write_aggregate():
"""write the aggregate record"""
- print "dn: CN=Aggregate,${SCHEMADN}"
- print """objectClass: top
+ print("dn: CN=Aggregate,${SCHEMADN}")
+ print("""objectClass: top
objectClass: subSchema
-objectCategory: CN=SubSchema,${SCHEMADN}"""
+objectCategory: CN=SubSchema,${SCHEMADN}""")
if not opts.dump_subschema_auto:
return
#
# dump list of objectclasses
#
-print "objectClasses:\n"
+print("objectClasses:\n")
for objectclass in objectclasses:
- print "\t%s\n" % objectclass
+ print("\t%s\n" % objectclass)
-print "attributes:\n"
+print("attributes:\n")
for attr in attributes:
- print "\t%s\n" % attr
+ print("\t%s\n" % attr)
-print "autocreated attributes:\n"
+print("autocreated attributes:\n")
for attr in attributes:
if attr.autocreate:
- print "\t%s\n" % i
+ print("\t%s\n" % i)
#!/usr/bin/env python3
+from __future__ import print_function
import optparse
import sys
print("Re-opening with the full DB stack")
samdb = SamDB(url=url,
lp=lp_ctx)
-print "Re-triggering another re-index"
+print("Re-triggering another re-index")
chk = dbcheck(samdb)
chk.reindex_database()
-print "Your database has been downgraded to DN-based index values."
+print("Your database has been downgraded to DN-based index values.")
-print "NOTE: Any use of a Samba 4.8 tool including ldbsearch will auto-upgrade back to GUID index mode"
+print("NOTE: Any use of a Samba 4.8 tool including ldbsearch will "
+ "auto-upgrade back to GUID index mode")
# Copyright Andrew Tridgell 2005
# Released under the GNU GPL version 3 or later
#
-
+from __future__ import print_function
import os, sys
# make sure the script dies immediately when hitting control-C,
"""show open tree connects"""
conn = open_connection("smb_server")
tcons = next(conn.smbsrv_information(irpc.SMBSRV_INFO_TCONS))
- print "Share Client Connected at"
- print "-" * 79
+ print("Share Client Connected at")
+ print("-" * 79)
for tcon in tcons:
- print "%-30s %16s %s" % (tcon.share_name, tcon.client_ip, sys.httptime(tcon.connect_time))
+ print("%-30s %16s %s" %
+ (tcon.share_name, tcon.client_ip, sys.httptime(tcon.connect_time)))
def show_nbt(open_connection):
"""show nbtd information"""
conn = open_connection("nbt_server")
stats = next(conn.nbtd_information(irpc.NBTD_INFO_STATISTICS))
- print "NBT server statistics:"
+ print("NBT server statistics:")
fields = [("total_received", "Total received"),
("total_sent", "Total sent"),
("query_count", "Query count"),
("register_count", "Register count"),
("release_count", "Release count")]
for (field, description) in fields:
- print "\t%s:\t%s" % (description, getattr(stats, field))
- print
+ print("\t%s:\t%s" % (description, getattr(stats, field)))
+ print()
parser = optparse.OptionParser("%s [options]" % sys.argv[0])
sambaopts = options.SambaOptions(parser)
lp = sambaopts.get_loadparm()
-print "%s" % lp.get("server string")
+print("%s" % lp.get("server string"))
messaging_path = (opts.messaging_path or os.path.join(lp.get("private dir"), "smbd.tmp", "messaging"))
conn = open_connection("smb_server")
except RuntimeError, (num, msg):
if msg == 'NT_STATUS_OBJECT_NAME_NOT_FOUND':
- print "No active connections"
+ print("No active connections")
else:
show_sessions(conn)
show_tcons(conn)
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
+from __future__ import print_function
__docformat__ = "restructuredText"
"objectClass")
if count !=0 and (count % increment) == 0:
- print "Added contacts: %d" % count
+ print("Added contacts: %d" % count)
ldbs.sam.add(msg)
count += 1
# Copyright Matthieu Patou <mat@matws.net> 2011
# script to call a DRSUAPI crackname
# this is useful for plugfest testing and replication debug
-
+from __future__ import print_function
import sys
from optparse import OptionParser
req.names = [names]
(result, ctr) = drs.DsCrackNames(drs_handle, 1, req)
- print "# of result = %d" %ctr.count
+ print("# of result = %d" %ctr.count)
if ctr.count:
- print "status = %d" % ctr.array[0].status
- print "result name = %s" % ctr.array[0].result_name
- print "domain = %s" % ctr.array[0].dns_domain_name
+ print("status = %d" % ctr.array[0].status)
+ print("result name = %s" % ctr.array[0].result_name)
+ print("domain = %s" % ctr.array[0].dns_domain_name)
# script to call a DRS GetNCChanges from the command line
# this is useful for plugfest testing
-
+from __future__ import print_function
import sys
from optparse import OptionParser
dest_dsa = opts.dest_dsa
if not dest_dsa:
- print "no dest_dsa specified trying to figure out from ldap"
+ print("no dest_dsa specified trying to figure out from ldap")
msgs = samdb.search(controls=["search_options:1:2"],
expression='(objectclass=ntdsdsa)')
if len(msgs) == 1:
dest_dsa = str(ndr_unpack(misc.GUID, msgs[0]["invocationId"][0]))
- print "Found this dsa: %s" % dest_dsa
+ print("Found this dsa: %s" % dest_dsa)
else:
# TODO fixme
pass
if not dest_dsa:
- print "Unable to find the dest_dsa automatically please specify it"
+ print("Unable to find the dest_dsa automatically please specify it")
import sys
sys.exit(1)