diff options
author | Tim Potter <tpot@samba.org> | 2002-09-06 07:44:21 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-09-06 07:44:21 +0000 |
commit | c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c (patch) | |
tree | 576d76131686f54afa4deeca038fa8418cfb717e /source/python | |
parent | c211d2deca1019d3ef9bd08f5a01e76ede2d0191 (diff) | |
download | samba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.tar.gz samba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.tar.xz samba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.zip |
Initial version of printerdata_ex browsing.
Diffstat (limited to 'source/python')
-rwxr-xr-x | source/python/gprinterdata | 13 | ||||
-rw-r--r-- | source/python/printerdata.py | 15 | ||||
-rw-r--r-- | source/python/samba/printerdata.py | 15 |
3 files changed, 38 insertions, 5 deletions
diff --git a/source/python/gprinterdata b/source/python/gprinterdata index f1992db5a56..59c5f3c3151 100755 --- a/source/python/gprinterdata +++ b/source/python/gprinterdata @@ -9,16 +9,19 @@ import printerdata # Initialise printerdata dictionary -if len(sys.argv) != 2: - print "Usage: gprinterdata <printer>" +if len(sys.argv) < 2 or len(sys.argv) > 3: + print "Usage: gprinterdata [--ex] <printer>" print "where <printer> 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/source/python/printerdata.py b/source/python/printerdata.py index 55b5fdf6ae7..3384de4f30b 100644 --- a/source/python/printerdata.py +++ b/source/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/source/python/samba/printerdata.py b/source/python/samba/printerdata.py index 55b5fdf6ae7..3384de4f30b 100644 --- a/source/python/samba/printerdata.py +++ b/source/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}) + |