diff options
| author | cvs2svn Import User <samba-bugs@samba.org> | 2002-09-25 12:59:48 +0000 |
|---|---|---|
| committer | cvs2svn Import User <samba-bugs@samba.org> | 2002-09-25 12:59:48 +0000 |
| commit | 3054ef8a6ec8a67937cc1bfc492722fd6eccc325 (patch) | |
| tree | 708bbe6f5367897d0d5239021d85fdd50136658a /source3/python/samba/printerdata.py | |
| parent | 7b81263427408a01aa7ef81fc3c86e9bb63dab75 (diff) | |
| parent | 284dd066a8b848d8c2d93089ed9991647b7db486 (diff) | |
| download | samba-3054ef8a6ec8a67937cc1bfc492722fd6eccc325.tar.gz samba-3054ef8a6ec8a67937cc1bfc492722fd6eccc325.tar.xz samba-3054ef8a6ec8a67937cc1bfc492722fd6eccc325.zip | |
This commit was manufactured by cvs2svn to create branch 'SAMBA_3_0'.(This used to be commit 9a5541595f78f2cbba16030552c6e780f6fddcf6)
Diffstat (limited to 'source3/python/samba/printerdata.py')
| -rw-r--r-- | source3/python/samba/printerdata.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/source3/python/samba/printerdata.py b/source3/python/samba/printerdata.py new file mode 100644 index 0000000000..33251f6a00 --- /dev/null +++ b/source3/python/samba/printerdata.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +# +# 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 +# + +# +# TODO: +# +# - Implement __delitem__ +# + +from samba 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}) + +class printerdata_ex: + def __init__(self, host): + self.host = host + self.top_level_keys = ["PrinterDriverData", "DsSpooler", "DsDriver", + "DsUser"] + + def keys(self): + return self.top_level_keys + + def has_key(self, key): + for k in self.top_level_keys: + if k == key: + return 1 + return 0 + + class printerdata_ex_subkey: + def __init__(self, host, key): + self.hnd = spoolss.openprinter(host) + self.key = key + + def keys(self): + return self.hnd.enumprinterdataex(self.key).keys() + + def __getitem__(self, key): + return self.hnd.getprinterdataex(self.key, key)['data'] + + def __getitem__(self, key): + return self.printerdata_ex_subkey(self.host, key) |
