summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-01 13:05:26 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-01 13:05:32 -0400
commiteaaa933b1215f409038adaf01800fefd405d07a2 (patch)
treea7a02f1f128b508747ed6a7fc3ad60db4c2832f5
parent1aa4792d349c775c1c0ec952799c9279b8db6034 (diff)
downloadbcfg2-eaaa933b1215f409038adaf01800fefd405d07a2.tar.gz
bcfg2-eaaa933b1215f409038adaf01800fefd405d07a2.tar.bz2
bcfg2-eaaa933b1215f409038adaf01800fefd405d07a2.zip
Fixed inversion of category-group pairs from Connector plugins in
ClientMetadata.categories
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Metadata.py4
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py17
2 files changed, 14 insertions, 7 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py
index 4929cb52d..8b0fc16ce 100644
--- a/src/lib/Bcfg2/Server/Plugins/Metadata.py
+++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py
@@ -270,7 +270,7 @@ class XMLMetadataConfig(Bcfg2.Server.Plugin.XMLFileBacked):
class ClientMetadata(object):
"""This object contains client metadata."""
# pylint: disable=R0913
- def __init__(self, client, profile, groups, bundles, aliases, addresses,
+ def __init__(self, client, profile, groups, bundles, aliases, addresses,
categories, uuid, password, version, query):
self.hostname = client
self.profile = profile
@@ -1140,7 +1140,7 @@ class Metadata(Bcfg2.Server.Plugin.Metadata,
imd.hostname,
imd.categories[category]))
continue
- imd.categories[group] = category
+ imd.categories[category] = group
imd.groups.add(group)
self._merge_groups(imd.hostname, imd.groups,
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
index 1d4459745..430368238 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py
@@ -84,6 +84,7 @@ def get_groups_test_tree():
<Group name="group10"/>
</Group>
</Group>
+ <Group name="group12" category="category3" public="false"/>
</Groups>''').getroottree()
@@ -836,7 +837,7 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked):
self.assertItemsEqual([g.name
for g in metadata.negated_groups.values()],
negated_groups)
-
+
@patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig.load_xml", Mock())
def test_set_profile(self):
metadata = self.get_obj()
@@ -1015,7 +1016,7 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked):
@patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig.load_xml", Mock())
def test_merge_groups(self):
- metadata = self.get_obj()
+ metadata = self.get_obj()
self.load_groups_data(metadata=metadata)
self.load_clients_data(metadata=metadata)
@@ -1090,6 +1091,13 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked):
self.assertEqual(imd.groups, oldgroups.union(["group7"]))
self.assertEqual(imd.bundles, oldbundles.union(["bundle3"]))
+ # test adding groups with categories
+ oldgroups = imd.groups
+ metadata.merge_additional_groups(imd, ["group12"])
+ self.assertEqual(imd.groups, oldgroups.union(["group12"]))
+ self.assertIn("category3", imd.categories)
+ self.assertEqual(imd.categories["category3"], "group12")
+
# test adding multiple groups
imd = metadata.get_initial_metadata("client2")
oldgroups = imd.groups
@@ -1103,7 +1111,6 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked):
metadata.merge_additional_groups(imd, ["group6", "newgroup"])
self.assertItemsEqual(imd.groups,
oldgroups.union(["group6", "newgroup"]))
-
@patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig.load_xml", Mock())
def test_merge_additional_data(self):
@@ -1264,7 +1271,7 @@ class TestMetadataBase(TestMetadata):
core.fam.AddMonitor.assert_called_once_with(os.path.join(metadata.data,
"groups.xml"),
metadata)
-
+
mock_exists.return_value = True
core.fam.reset_mock()
metadata = self.get_obj(core=core, watch_clients=True)
@@ -1274,7 +1281,7 @@ class TestMetadataBase(TestMetadata):
core.fam.AddMonitor.assert_any_call(os.path.join(metadata.data,
"clients.xml"),
metadata)
-
+
def test_add_group(self):
pass