summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Core.py
diff options
context:
space:
mode:
authorCalen Pennington <cpennington@wgen.net>2012-01-18 16:33:56 -0500
committerCalen Pennington <cpennington@wgen.net>2012-01-18 16:33:56 -0500
commitbb16ce00cbca613129a3bb34ad3fc945f409a4d4 (patch)
tree20f1bb7ac025b4690a391f379fd7aca9f9d98773 /src/lib/Server/Core.py
parent5398a001f0fb69e79503e51a3d8a9db6a3af4987 (diff)
downloadbcfg2-bb16ce00cbca613129a3bb34ad3fc945f409a4d4.tar.gz
bcfg2-bb16ce00cbca613129a3bb34ad3fc945f409a4d4.tar.bz2
bcfg2-bb16ce00cbca613129a3bb34ad3fc945f409a4d4.zip
Move sorting to the server core, rather than just in bcfg2 info
Diffstat (limited to 'src/lib/Server/Core.py')
-rw-r--r--src/lib/Server/Core.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/Server/Core.py b/src/lib/Server/Core.py
index 05625cf22..38f854f66 100644
--- a/src/lib/Server/Core.py
+++ b/src/lib/Server/Core.py
@@ -37,6 +37,14 @@ except:
pass
+def sort_xml(node, key=None):
+ for child in node:
+ sort_xml(child, key)
+
+ sorted_children = sorted(node, key=key)
+ node[:] = sorted_children
+
+
class CoreInitError(Exception):
"""This error is raised when the core cannot be initialized."""
pass
@@ -315,6 +323,9 @@ class Core(Component):
except:
logger.error("error in BindStructure", exc_info=1)
self.validate_goals(meta, config)
+
+ sort_xml(config, key=lambda e: e.get('name'))
+
logger.info("Generated config for %s in %.03f seconds" % \
(client, time.time() - start))
return config