summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource3/python/gprinterdata15
-rw-r--r--source3/python/printerdata.py23
-rw-r--r--source3/python/samba/printerdata.py23
3 files changed, 49 insertions, 12 deletions
diff --git a/source3/python/gprinterdata b/source3/python/gprinterdata
index 52c6e42719..f1992db5a5 100755
--- a/source3/python/gprinterdata
+++ b/source3/python/gprinterdata
@@ -5,18 +5,8 @@ from gtkdictbrowser import GtkDictBrowser, hex_string
import gtk
import spoolss
import string
+import printerdata
-class printerdata:
- def __init__(self, host):
- host = string.replace(host, "/", "\\")
- self.hnd = spoolss.openprinter(host)
-
- def keys(self):
- return self.hnd.enumprinterdata().keys()
-
- def __getitem__(self, key):
- return self.hnd.getprinterdata(key)['data']
-
# Initialise printerdata dictionary
if len(sys.argv) != 2:
@@ -25,7 +15,8 @@ if len(sys.argv) != 2:
sys.exit(1)
try:
- t = printerdata(sys.argv[1])
+ host = string.replace(sys.argv[1], "/", "\\")
+ t = printerdata.printerdata(host)
except:
print "gprinterdata: error opening %s" % sys.argv[1]
sys.exit(1)
diff --git a/source3/python/printerdata.py b/source3/python/printerdata.py
new file mode 100644
index 0000000000..55b5fdf6ae
--- /dev/null
+++ b/source3/python/printerdata.py
@@ -0,0 +1,23 @@
+#
+# A python module that maps printerdata to a dictionary. We define
+# two classes. The printerdata class maps to Get/Set/Enum/DeletePrinterData
+# and the printerdata_ex class maps to Get/Set/Enum/DeletePrinterDataEx
+#
+
+import spoolss
+
+class printerdata:
+ def __init__(self, host, creds = {}):
+ self.hnd = spoolss.openprinter(host, creds = creds)
+
+ def keys(self):
+ return self.hnd.enumprinterdata().keys()
+
+ def __getitem__(self, key):
+ return self.hnd.getprinterdata(key)['data']
+
+ def __setitem__(self, key, value):
+ # Store as REG_BINARY for now
+ self.hnd.setprinterdata({"key": "", "value": key, "type": 3,
+ "data": value})
+
diff --git a/source3/python/samba/printerdata.py b/source3/python/samba/printerdata.py
new file mode 100644
index 0000000000..55b5fdf6ae
--- /dev/null
+++ b/source3/python/samba/printerdata.py
@@ -0,0 +1,23 @@
+#
+# A python module that maps printerdata to a dictionary. We define
+# two classes. The printerdata class maps to Get/Set/Enum/DeletePrinterData
+# and the printerdata_ex class maps to Get/Set/Enum/DeletePrinterDataEx
+#
+
+import spoolss
+
+class printerdata:
+ def __init__(self, host, creds = {}):
+ self.hnd = spoolss.openprinter(host, creds = creds)
+
+ def keys(self):
+ return self.hnd.enumprinterdata().keys()
+
+ def __getitem__(self, key):
+ return self.hnd.getprinterdata(key)['data']
+
+ def __setitem__(self, key, value):
+ # Store as REG_BINARY for now
+ self.hnd.setprinterdata({"key": "", "value": key, "type": 3,
+ "data": value})
+