From c9101c3b01b7a493944b1fec8612289d8dc531e7 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Fri, 6 Sep 2002 07:44:21 +0000 Subject: Initial version of printerdata_ex browsing. (This used to be commit c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c) --- source3/python/gprinterdata | 13 ++++++++----- source3/python/printerdata.py | 15 +++++++++++++++ source3/python/samba/printerdata.py | 15 +++++++++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) (limited to 'source3') diff --git a/source3/python/gprinterdata b/source3/python/gprinterdata index f1992db5a5..59c5f3c315 100755 --- a/source3/python/gprinterdata +++ b/source3/python/gprinterdata @@ -9,16 +9,19 @@ import printerdata # Initialise printerdata dictionary -if len(sys.argv) != 2: - print "Usage: gprinterdata " +if len(sys.argv) < 2 or len(sys.argv) > 3: + print "Usage: gprinterdata [--ex] " print "where is a UNC printer name." sys.exit(1) try: - host = string.replace(sys.argv[1], "/", "\\") - t = printerdata.printerdata(host) + host = string.replace(sys.argv[len(sys.argv) - 1], "/", "\\") + if sys.argv[1] == "--ex": + t = printerdata.printerdata_ex(host) + else: + t = printerdata.printerdata(host) except: - print "gprinterdata: error opening %s" % sys.argv[1] + print "gprinterdata: error opening %s" % sys.argv[len(sys.argv) - 1] sys.exit(1) # Create interface diff --git a/source3/python/printerdata.py b/source3/python/printerdata.py index 55b5fdf6ae..3384de4f30 100644 --- a/source3/python/printerdata.py +++ b/source3/python/printerdata.py @@ -21,3 +21,18 @@ class printerdata: self.hnd.setprinterdata({"key": "", "value": key, "type": 3, "data": value}) +class printerdata_ex: + def __init__(self, host, creds = {}): + self.hnd = spoolss.openprinter(host, creds = creds) + + def keys(self): + return self.hnd.enumprinterdataex("PrinterDriverData").keys() + + def __getitem__(self, key): + return self.hnd.getprinterdataex("PrinterDriverData", key)['data'] + + def __setitem__(self, key, value): + # Store as REG_BINARY for now + self.hnd.setprinterdataex({"key": "PrinterDriverData", "value": key, "type": 3, + "data": value}) + diff --git a/source3/python/samba/printerdata.py b/source3/python/samba/printerdata.py index 55b5fdf6ae..3384de4f30 100644 --- a/source3/python/samba/printerdata.py +++ b/source3/python/samba/printerdata.py @@ -21,3 +21,18 @@ class printerdata: self.hnd.setprinterdata({"key": "", "value": key, "type": 3, "data": value}) +class printerdata_ex: + def __init__(self, host, creds = {}): + self.hnd = spoolss.openprinter(host, creds = creds) + + def keys(self): + return self.hnd.enumprinterdataex("PrinterDriverData").keys() + + def __getitem__(self, key): + return self.hnd.getprinterdataex("PrinterDriverData", key)['data'] + + def __setitem__(self, key, value): + # Store as REG_BINARY for now + self.hnd.setprinterdataex({"key": "PrinterDriverData", "value": key, "type": 3, + "data": value}) + -- cgit