diff options
author | Andrew Shadura <andrew@shadura.me> | 2015-08-20 15:58:27 +0200 |
---|---|---|
committer | Andrew Shadura <andrew@shadura.me> | 2015-08-20 15:58:27 +0200 |
commit | 25d6c405aff4167e801d0a4995083a56160b969e (patch) | |
tree | 070a400e9627b5b392dc3b57be4f889646ec2ea9 /reconfigure/items | |
parent | ff1408420159488a106492ccd11dd234967029b6 (diff) |
Imported Upstream version 0.1.39
Diffstat (limited to 'reconfigure/items')
-rw-r--r-- | reconfigure/items/ajenti.py | 1 | ||||
-rw-r--r-- | reconfigure/items/bound.py | 19 | ||||
-rw-r--r-- | reconfigure/items/ctdb.py | 2 | ||||
-rw-r--r-- | reconfigure/items/fstab.py | 2 | ||||
-rw-r--r-- | reconfigure/items/iptables.py | 2 | ||||
-rw-r--r-- | reconfigure/items/netatalk.py | 3 | ||||
-rw-r--r-- | reconfigure/items/samba.py | 33 | ||||
-rw-r--r-- | reconfigure/items/supervisor.py | 3 |
8 files changed, 34 insertions, 31 deletions
diff --git a/reconfigure/items/ajenti.py b/reconfigure/items/ajenti.py index 3756c5c..ef70501 100644 --- a/reconfigure/items/ajenti.py +++ b/reconfigure/items/ajenti.py @@ -31,6 +31,7 @@ class ConfigData (BoundData): AjentiData.bind_property('authentication', 'authentication') +AjentiData.bind_property('language', 'language') AjentiData.bind_property('installation_id', 'installation_id') AjentiData.bind_property('enable_feedback', 'enable_feedback') AjentiData.bind_child('http_binding', lambda x: x.get('bind'), item_class=HttpData) diff --git a/reconfigure/items/bound.py b/reconfigure/items/bound.py index f096965..fed73f4 100644 --- a/reconfigure/items/bound.py +++ b/reconfigure/items/bound.py @@ -84,7 +84,7 @@ class BoundDictionary (BoundCollection): self.datadict = dict((self.key(x), x) for x in self.data) def to_dict(self): - return dict((k, x.to_dict() if hasattr(x, 'to_dict') else x) for k, x in self.iteritems()) + return dict((k, x.to_dict() if hasattr(x, 'to_dict') else x) for k, x in self.items()) def __getitem__(self, key): self.rebuild_dict() @@ -95,6 +95,7 @@ class BoundDictionary (BoundCollection): if not key in self: self.append(value) self.datadict[key] = value + self.rebuild_dict() def __contains__(self, key): self.rebuild_dict() @@ -105,7 +106,10 @@ class BoundDictionary (BoundCollection): return self.datadict.__iter__() def iteritems(self): - return self.datadict.iteritems() + self.rebuild_dict() + return self.datadict.items() + + items = iteritems def setdefault(self, k, v): if not k in self: @@ -114,10 +118,11 @@ class BoundDictionary (BoundCollection): return self[k] def values(self): + self.rebuild_dict() return self.data def update(self, other): - for k, v in other.iteritems(): + for k, v in other.items(): self[k] = v def pop(self, key): @@ -136,7 +141,7 @@ class BoundData (object): """ def __init__(self, node=None, **kwargs): - if not node: + if node is None: node = self.template(**kwargs) self._node = node @@ -198,7 +203,7 @@ class BoundData (object): """ def pget(self): prop = path(self._node).get(node_property) - if prop: + if prop is not None: return getter(prop.value) else: return default @@ -206,7 +211,7 @@ class BoundData (object): def pset(self, value): if setter(value) in default_remove: node = path(self._node).get(node_property) - if node: + if node is not None: path(self._node).remove(node) else: path(self._node).set_property(node_property, setter(value)) @@ -228,7 +233,7 @@ class BoundData (object): """ def pget(self): prop = getattr(path(self._node), node_attribute) - if prop: + if prop is not None: return getter(prop) else: return getter(default) diff --git a/reconfigure/items/ctdb.py b/reconfigure/items/ctdb.py index f700c03..13fb9e2 100644 --- a/reconfigure/items/ctdb.py +++ b/reconfigure/items/ctdb.py @@ -1,6 +1,6 @@ from reconfigure.nodes import Node, PropertyNode from reconfigure.items.bound import BoundData -from util import yn_getter, yn_setter +from reconfigure.items.util import yn_getter, yn_setter class CTDBData (BoundData): diff --git a/reconfigure/items/fstab.py b/reconfigure/items/fstab.py index 81b8060..30ab030 100644 --- a/reconfigure/items/fstab.py +++ b/reconfigure/items/fstab.py @@ -14,7 +14,7 @@ class FilesystemData (BoundData): Node('token', children=[PropertyNode('value', 'none')]), Node('token', children=[PropertyNode('value', 'none')]), Node('token', children=[PropertyNode('value', 'auto')]), - Node('token', children=[PropertyNode('value', 'none')]), + Node('token', children=[PropertyNode('value', 'defaults,rw')]), Node('token', children=[PropertyNode('value', '0')]), Node('token', children=[PropertyNode('value', '0')]), ]) diff --git a/reconfigure/items/iptables.py b/reconfigure/items/iptables.py index d4656ff..195758b 100644 --- a/reconfigure/items/iptables.py +++ b/reconfigure/items/iptables.py @@ -80,7 +80,6 @@ class OptionData (BoundData): @staticmethod def create(template_id): - print 'new' t = OptionData.templates[template_id] return OptionData(Node( 'option', @@ -93,7 +92,6 @@ class OptionData (BoundData): @staticmethod def create_destination(): - print 'new' return OptionData(Node( 'option', Node('argument', PropertyNode('value', 'ACCEPT')), diff --git a/reconfigure/items/netatalk.py b/reconfigure/items/netatalk.py index e4957cf..b3863d9 100644 --- a/reconfigure/items/netatalk.py +++ b/reconfigure/items/netatalk.py @@ -1,6 +1,6 @@ from reconfigure.nodes import Node, PropertyNode from reconfigure.items.bound import BoundData -from util import yn_getter, yn_setter +from reconfigure.items.util import yn_getter, yn_setter class NetatalkData (BoundData): @@ -28,6 +28,7 @@ NetatalkData.bind_collection('shares', selector=lambda x: x.name != 'Global', it GlobalData.bind_property('afp port', 'afp_port', default='548') GlobalData.bind_property('cnid listen', 'cnid_listen', default='localhost:4700') +GlobalData.bind_property('uam list', 'uam_list', default='uams_dhx.so,uams_dhx2.so') GlobalData.bind_property( 'zeroconf', 'zeroconf', default=True, getter=yn_getter, setter=yn_setter) diff --git a/reconfigure/items/samba.py b/reconfigure/items/samba.py index 079da5e..01b6f6f 100644 --- a/reconfigure/items/samba.py +++ b/reconfigure/items/samba.py @@ -1,6 +1,6 @@ from reconfigure.nodes import Node, PropertyNode from reconfigure.items.bound import BoundData -from util import yn_getter, yn_setter +from reconfigure.items.util import yn_getter, yn_setter class SambaData (BoundData): @@ -14,11 +14,16 @@ class GlobalData (BoundData): class ShareData (BoundData): fields = [ 'comment', 'path', 'guest ok', 'browseable', 'create mask', 'directory mask', 'read only', - 'follow symlinks', 'wide links', + 'follow symlinks', 'wide links', 'fstype', 'write list', 'veto files', + 'force create mode', 'force directory mode', ] defaults = [ '', '', 'no', 'yes', '0744', '0755', 'yes', - 'yes', 'no', + 'yes', 'no', 'NTFS', '', '', '000', '000', + ] + default_values = [ + '', '', False, True, '0744', '0755', True, + True, False, '', '', '', '000', '000', ] def template(self): @@ -42,18 +47,10 @@ GlobalData.bind_property('log file', 'log_file', default='') GlobalData.bind_property('security', 'security', default='user') ShareData.bind_name('name') -ShareData.bind_property('path', 'path', default='') -ShareData.bind_property('comment', 'comment', default='') -ShareData.bind_property('create mask', 'create_mask', default='0744') -ShareData.bind_property('directory mask', 'directory_mask', default='0755') - -for x, y in [ - ('guest ok', False), - ('browseable', True), - ('read only', True), - ('follow symlinks', True), - ('wide links', False), -]: - ShareData.bind_property( - x, x.replace(' ', '_'), default=y, - getter=yn_getter, setter=yn_setter) +for f, d in zip(ShareData.fields, ShareData.default_values): + if d not in [True, False]: + ShareData.bind_property(f, f.replace(' ', '_'), default=d) + else: + ShareData.bind_property( + f, f.replace(' ', '_'), default=d, + getter=yn_getter, setter=yn_setter) diff --git a/reconfigure/items/supervisor.py b/reconfigure/items/supervisor.py index a8e462f..b1d201c 100644 --- a/reconfigure/items/supervisor.py +++ b/reconfigure/items/supervisor.py @@ -12,11 +12,12 @@ class ProgramData (BoundData): def template(self): return Node('program:new', - PropertyNode('command', '127.0.0.1'), + PropertyNode('command', 'false'), ) SupervisorData.bind_collection('programs', item_class=ProgramData, selector=lambda x: x.name.startswith('program:')) ProgramData.bind_name('name', getter=lambda x: x[8:], setter=lambda x: 'program:%s' % x) +ProgramData.bind_attribute('comment', 'comment') for i in range(0, len(ProgramData.fields)): ProgramData.bind_property(ProgramData.fields[i], ProgramData.fields[i], default_remove=[None, '']) |