summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/GroupPatterns.py
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2011-05-10 11:24:28 -0500
committerNarayan Desai <desai@mcs.anl.gov>2011-05-10 11:24:28 -0500
commit0e75875e9bd9900a6a3c7ab118c448e48829eaef (patch)
tree391204747f48598c4e978d3724afbd5b8aa1d12c /src/lib/Server/Plugins/GroupPatterns.py
parentf2d218ccd2de93ef639347933ba127ef081b4401 (diff)
parent91634f9a3b888eee3cd5f9a777fcb075fc666c9a (diff)
downloadbcfg2-0e75875e9bd9900a6a3c7ab118c448e48829eaef.tar.gz
bcfg2-0e75875e9bd9900a6a3c7ab118c448e48829eaef.tar.bz2
bcfg2-0e75875e9bd9900a6a3c7ab118c448e48829eaef.zip
Merge branch 'master' of git.mcs.anl.gov:bcfg2
Diffstat (limited to 'src/lib/Server/Plugins/GroupPatterns.py')
-rw-r--r--src/lib/Server/Plugins/GroupPatterns.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/lib/Server/Plugins/GroupPatterns.py b/src/lib/Server/Plugins/GroupPatterns.py
index 553f9d286..7faead39a 100644
--- a/src/lib/Server/Plugins/GroupPatterns.py
+++ b/src/lib/Server/Plugins/GroupPatterns.py
@@ -3,6 +3,7 @@ import re
import Bcfg2.Server.Plugin
+
class PackedDigitRange(object):
def __init__(self, digit_range):
self.sparse = list()
@@ -18,12 +19,14 @@ class PackedDigitRange(object):
if iother in self.sparse:
return True
for (start, end) in self.ranges:
- if iother in xrange(start, end+1):
+ if iother in range(start, end + 1):
return True
return False
+
class PatternMap(object):
range_finder = '\\[\\[[\d\-,]+\\]\\]'
+
def __init__(self, pattern, rangestr, groups):
self.pattern = pattern
self.rangestr = rangestr
@@ -33,8 +36,11 @@ class PatternMap(object):
self.process = self.process_re
elif rangestr != None:
self.process = self.process_range
- self.re = re.compile('^' + re.subn(self.range_finder, '(\d+)', rangestr)[0])
- dmatcher = re.compile(re.subn(self.range_finder, '\\[\\[([\d\-,]+)\\]\\]', rangestr)[0])
+ self.re = re.compile('^' + re.subn(self.range_finder, '(\d+)',
+ rangestr)[0])
+ dmatcher = re.compile(re.subn(self.range_finder,
+ '\\[\\[([\d\-,]+)\\]\\]',
+ rangestr)[0])
self.dranges = [PackedDigitRange(x) for x in dmatcher.match(rangestr).groups()]
else:
raise Exception
@@ -58,10 +64,11 @@ class PatternMap(object):
for group in self.groups:
newg = group
for idx in range(len(sub)):
- newg = newg.replace('$%s' % (idx+1), sub[idx])
+ newg = newg.replace('$%s' % (idx + 1), sub[idx])
ret.append(newg)
return ret
+
class PatternFile(Bcfg2.Server.Plugin.SingleXMLFileBacked):
def __init__(self, filename, fam):
Bcfg2.Server.Plugin.SingleXMLFileBacked.__init__(self, filename, fam)
@@ -101,6 +108,7 @@ class PatternFile(Bcfg2.Server.Plugin.SingleXMLFileBacked):
(pattern.pattern, hostname), exc_info=1)
return ret
+
class GroupPatterns(Bcfg2.Server.Plugin.Plugin,
Bcfg2.Server.Plugin.Connector):
name = "GroupPatterns"