summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/Bcfg2/Server/Plugin/helpers.py13
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py21
2 files changed, 20 insertions, 14 deletions
diff --git a/src/lib/Bcfg2/Server/Plugin/helpers.py b/src/lib/Bcfg2/Server/Plugin/helpers.py
index b18f1c52d..cfdb25cd6 100644
--- a/src/lib/Bcfg2/Server/Plugin/helpers.py
+++ b/src/lib/Bcfg2/Server/Plugin/helpers.py
@@ -928,6 +928,7 @@ class PriorityStructFile(StructFile):
__init__.__doc__ = StructFile.__init__.__doc__
def Index(self):
+ StructFile.Index(self)
try:
self.priority = int(self.xdata.get('priority'))
except (ValueError, TypeError):
@@ -958,13 +959,11 @@ class PrioDir(Plugin, Generator, XMLDirectoryBacked):
def HandleEvent(self, event):
XMLDirectoryBacked.HandleEvent(self, event)
self.Entries = {}
- for src in list(self.entries.values()):
- for itype, children in list(src.items.items()):
- for child in children:
- try:
- self.Entries[itype][child] = self.BindEntry
- except KeyError:
- self.Entries[itype] = {child: self.BindEntry}
+ for src in self.entries.values():
+ for child in src.xdata.iterchildren():
+ if child.tag not in self.Entries:
+ self.Entries[child.tag] = dict()
+ self.Entries[child.tag][child.get("name")] = self.BindEntry
HandleEvent.__doc__ = XMLDirectoryBacked.HandleEvent.__doc__
def _matches(self, entry, metadata, candidate): # pylint: disable=W0613
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
index b2f2e4e11..c339b9e1d 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugin/Testhelpers.py
@@ -1199,13 +1199,20 @@ class TestPrioDir(TestPlugin, TestGenerator, TestXMLDirectoryBacked):
Mock())
def inner():
pd = self.get_obj()
- test1 = Mock()
- test1.items = dict(Path=["/etc/foo.conf", "/etc/bar.conf"])
- test2 = Mock()
- test2.items = dict(Path=["/etc/baz.conf"],
- Package=["quux", "xyzzy"])
- pd.entries = {"/test1.xml": test1,
- "/test2.xml": test2}
+ test1 = lxml.etree.Element("Test")
+ lxml.etree.SubElement(test1, "Path", name="/etc/foo.conf")
+ lxml.etree.SubElement(lxml.etree.SubElement(test1,
+ "Group", name="foo"),
+ "Path", name="/etc/bar.conf")
+
+ test2 = lxml.etree.Element("Test")
+ lxml.etree.SubElement(test2, "Path", name="/etc/baz.conf")
+ lxml.etree.SubElement(test2, "Package", name="quux")
+ lxml.etree.SubElement(lxml.etree.SubElement(test2,
+ "Group", name="bar"),
+ "Package", name="xyzzy")
+ pd.entries = {"/test1.xml": Mock(xdata=test1),
+ "/test2.xml": Mock(xdata=test2)}
pd.HandleEvent(Mock())
self.assertItemsEqual(pd.Entries,
dict(Path={"/etc/foo.conf": pd.BindEntry,