summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Lint/RequiredAttrs.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-07-31 15:52:35 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-01 11:28:25 -0400
commit8c4841cd7ae30d7bc2d06f4d52d5aed845542437 (patch)
treef61419e26558e495a9b651ff703838a63ebe6a81 /src/lib/Bcfg2/Server/Lint/RequiredAttrs.py
parent678b6c0eb7b28a69fca2ffc3643d3d84aafabdf0 (diff)
downloadbcfg2-8c4841cd7ae30d7bc2d06f4d52d5aed845542437.tar.gz
bcfg2-8c4841cd7ae30d7bc2d06f4d52d5aed845542437.tar.bz2
bcfg2-8c4841cd7ae30d7bc2d06f4d52d5aed845542437.zip
bcfg2-lint stuff for ACL support
Diffstat (limited to 'src/lib/Bcfg2/Server/Lint/RequiredAttrs.py')
-rw-r--r--src/lib/Bcfg2/Server/Lint/RequiredAttrs.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Lint/RequiredAttrs.py b/src/lib/Bcfg2/Server/Lint/RequiredAttrs.py
index 0976ed9dd..b9a6dc2dc 100644
--- a/src/lib/Bcfg2/Server/Lint/RequiredAttrs.py
+++ b/src/lib/Bcfg2/Server/Lint/RequiredAttrs.py
@@ -70,6 +70,14 @@ class RequiredAttrs(Bcfg2.Server.Lint.ServerPlugin):
when=lambda v: v in ['modified', 'always'],
status=lambda v: v in ['ignore', 'check'],
command=None)},
+ ACL=dict(
+ default=dict(scope=lambda v: v in ['user', 'group'],
+ perms=lambda v: re.match('^([0-7]|[rwx\-]{0,3}',
+ v)),
+ access=dict(scope=lambda v: v in ['user', 'group'],
+ perms=lambda v: re.match('^([0-7]|[rwx\-]{0,3}',
+ v)),
+ mask=dict(perms=lambda v: re.match('^([0-7]|[rwx\-]{0,3}', v))),
Package={None: dict(name=None)},
SELinux=dict(
boolean=dict(name=None,
@@ -192,6 +200,9 @@ class RequiredAttrs(Bcfg2.Server.Lint.ServerPlugin):
required_attrs['major'] = is_device_mode
required_attrs['minor'] = is_device_mode
+ if tag == 'ACL' and 'scope' in required_attrs:
+ required_attrs[entry.get('scope')] = is_username
+
if '__text__' in required_attrs:
del required_attrs['__text__']
if (not entry.text and