summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Lint/AWSTags.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-10-28 09:20:12 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-10-28 09:20:12 -0400
commit99c5e5ca3f834bd1d42b280eb03c73cfcf7c52d8 (patch)
tree5468ffd8e07b500c6b6732c853e7f23840a76181 /src/lib/Bcfg2/Server/Lint/AWSTags.py
parent48934ccb7f7bec3151c1aa24cb5bf495836e5b89 (diff)
parent1d27fdadac37eb95d56f98cf7bdd1721a339df81 (diff)
downloadbcfg2-99c5e5ca3f834bd1d42b280eb03c73cfcf7c52d8.tar.gz
bcfg2-99c5e5ca3f834bd1d42b280eb03c73cfcf7c52d8.tar.bz2
bcfg2-99c5e5ca3f834bd1d42b280eb03c73cfcf7c52d8.zip
Merge branch 'maint'
Conflicts: doc/development/lint.txt misc/bcfg2.spec src/lib/Bcfg2/Reporting/Collector.py src/lib/Bcfg2/Server/Core.py src/lib/Bcfg2/Server/Plugins/Metadata.py src/lib/Bcfg2/Server/models.py testsuite/install.sh
Diffstat (limited to 'src/lib/Bcfg2/Server/Lint/AWSTags.py')
-rw-r--r--src/lib/Bcfg2/Server/Lint/AWSTags.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Lint/AWSTags.py b/src/lib/Bcfg2/Server/Lint/AWSTags.py
new file mode 100644
index 000000000..a6af63dd6
--- /dev/null
+++ b/src/lib/Bcfg2/Server/Lint/AWSTags.py
@@ -0,0 +1,29 @@
+import re
+import sys
+import Bcfg2.Server.Lint
+
+
+class AWSTags(Bcfg2.Server.Lint.ServerPlugin):
+ """ ``bcfg2-lint`` plugin to check all given :ref:`AWSTags
+ <server-plugins-connectors-awstags>` patterns for validity. """
+
+ def Run(self):
+ cfg = self.core.plugins['AWSTags'].config
+ for entry in cfg.xdata.xpath('//Tag'):
+ self.check(entry, "name")
+ if entry.get("value"):
+ self.check(entry, "value")
+
+ @classmethod
+ def Errors(cls):
+ return {"pattern-fails-to-initialize": "error"}
+
+ def check(self, entry, attr):
+ """ Check a single attribute (``name`` or ``value``) of a
+ single entry for validity. """
+ try:
+ re.compile(entry.get(attr))
+ except re.error:
+ self.LintError("pattern-fails-to-initialize",
+ "'%s' regex could not be compiled: %s\n %s" %
+ (attr, sys.exc_info()[1], entry.get("name")))