summaryrefslogtreecommitdiffstats
path: root/source/python
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2002-09-06 07:44:21 +0000
committerTim Potter <tpot@samba.org>2002-09-06 07:44:21 +0000
commitc201a61a52ffbaf1b1b70e25e0ef2b29a89f921c (patch)
tree576d76131686f54afa4deeca038fa8418cfb717e /source/python
parentc211d2deca1019d3ef9bd08f5a01e76ede2d0191 (diff)
downloadsamba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.tar.gz
samba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.tar.xz
samba-c201a61a52ffbaf1b1b70e25e0ef2b29a89f921c.zip
Initial version of printerdata_ex browsing.
Diffstat (limited to 'source/python')
-rwxr-xr-xsource/python/gprinterdata13
-rw-r--r--source/python/printerdata.py15
-rw-r--r--source/python/samba/printerdata.py15
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})
+