summaryrefslogtreecommitdiff
path: root/reconfigure/items
diff options
context:
space:
mode:
authorAndrew Shadura <andrew@shadura.me>2015-08-20 15:58:27 +0200
committerAndrew Shadura <andrew@shadura.me>2015-08-20 15:58:27 +0200
commit25d6c405aff4167e801d0a4995083a56160b969e (patch)
tree070a400e9627b5b392dc3b57be4f889646ec2ea9 /reconfigure/items
parentff1408420159488a106492ccd11dd234967029b6 (diff)
Imported Upstream version 0.1.39
Diffstat (limited to 'reconfigure/items')
-rw-r--r--reconfigure/items/ajenti.py1
-rw-r--r--reconfigure/items/bound.py19
-rw-r--r--reconfigure/items/ctdb.py2
-rw-r--r--reconfigure/items/fstab.py2
-rw-r--r--reconfigure/items/iptables.py2
-rw-r--r--reconfigure/items/netatalk.py3
-rw-r--r--reconfigure/items/samba.py33
-rw-r--r--reconfigure/items/supervisor.py3
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, ''])