summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Reporting/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Reporting/models.py')
-rw-r--r--src/lib/Bcfg2/Reporting/models.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Reporting/models.py b/src/lib/Bcfg2/Reporting/models.py
index c28571ded..7bff0ab3b 100644
--- a/src/lib/Bcfg2/Reporting/models.py
+++ b/src/lib/Bcfg2/Reporting/models.py
@@ -153,6 +153,7 @@ class Interaction(models.Model):
only_important = models.BooleanField(default=False)
actions = models.ManyToManyField("ActionEntry")
+ confs = models.ManyToManyField("ConfEntry")
packages = models.ManyToManyField("PackageEntry")
paths = models.ManyToManyField("PathEntry")
services = models.ManyToManyField("ServiceEntry")
@@ -174,7 +175,7 @@ class Interaction(models.Model):
'seports', 'sefcontexts', 'senodes',
'selogins', 'seusers', 'seinterfaces',
'sepermissives', 'semodules', 'posixusers',
- 'posixgroups')
+ 'posixgroups', 'confs')
# Formerly InteractionMetadata
profile = models.ForeignKey("Group", related_name="+", null=True)
@@ -489,6 +490,33 @@ class ActionEntry(SuccessEntry):
ENTRY_TYPE = r"Action"
+class ConfEntry(SuccessEntry):
+ """ Conf entry """
+ value = models.TextField(null=True)
+ current_value = models.TextField(null=True)
+
+ ENTRY_TYPE = r"Conf"
+
+ def conf_problem(self):
+ """Check for a conf problem."""
+ if not self.current_value:
+ return True
+ return self.value != self.current_value
+
+ def short_list(self):
+ """Return a list of problems"""
+ rv = super(ConfEntry, self).short_list()
+ if self.is_extra():
+ return rv
+ if not self.conf_problem() or not self.exists:
+ return rv
+ if not self.current_value:
+ rv.append("Missing")
+ else:
+ rv.append("Wrong value")
+ return rv
+
+
class SEBooleanEntry(SuccessEntry):
""" SELinux boolean """
value = models.BooleanField(default=True)
@@ -800,7 +828,7 @@ class ServiceEntry(SuccessEntry):
return rv
-ENTRY_TYPES = (ActionEntry, PackageEntry, PathEntry, ServiceEntry,
+ENTRY_TYPES = (ActionEntry, ConfEntry, PackageEntry, PathEntry, ServiceEntry,
SEBooleanEntry, SEPortEntry, SEFcontextEntry, SENodeEntry,
SELoginEntry, SEUserEntry, SEInterfaceEntry, SEPermissiveEntry,
SEModuleEntry)