summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-11-01 00:06:17 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-30 01:22:51 +0100
commit8f4f4bf1c717aef3b5639daac9edc5fb774c978c (patch)
tree4d1d557f55adf79794329b46d2f4b20bee938015
parent7413f317f64a8f1eaa0327fc1c838ac0cea561b6 (diff)
downloadbcfg2-8f4f4bf1c717aef3b5639daac9edc5fb774c978c.tar.gz
bcfg2-8f4f4bf1c717aef3b5639daac9edc5fb774c978c.tar.bz2
bcfg2-8f4f4bf1c717aef3b5639daac9edc5fb774c978c.zip
Packages: add priority to sources and sort according to it
-rw-r--r--schemas/packages.xsd1
-rw-r--r--src/lib/Server/Plugins/Packages/PackagesSources.py1
-rw-r--r--src/lib/Server/Plugins/Packages/Source.py1
3 files changed, 3 insertions, 0 deletions
diff --git a/schemas/packages.xsd b/schemas/packages.xsd
index c4252194f..6f471f3bf 100644
--- a/schemas/packages.xsd
+++ b/schemas/packages.xsd
@@ -41,6 +41,7 @@
<xsd:attribute type="xsd:string" name="url"/>
<xsd:attribute type="xsd:string" name="rawurl"/>
<xsd:attribute type="xsd:string" name="version"/>
+ <xsd:attribute type="xsd:integer" name="priority"/>
</xsd:complexType>
<xsd:complexType name="groupType">
diff --git a/src/lib/Server/Plugins/Packages/PackagesSources.py b/src/lib/Server/Plugins/Packages/PackagesSources.py
index d399838ae..c713ccbba 100644
--- a/src/lib/Server/Plugins/Packages/PackagesSources.py
+++ b/src/lib/Server/Plugins/Packages/PackagesSources.py
@@ -61,6 +61,7 @@ class PackagesSources(Bcfg2.Server.Plugin.SingleXMLFileBacked,
source = self.source_from_xml(xsource)
if source is not None:
self.entries.append(source)
+ sorted(self.entries, key=(lambda source: source.priority), reverse=True)
def source_from_xml(self, xsource):
""" create a *Source object from its XML representation in
diff --git a/src/lib/Server/Plugins/Packages/Source.py b/src/lib/Server/Plugins/Packages/Source.py
index 627ff561d..0882c8f95 100644
--- a/src/lib/Server/Plugins/Packages/Source.py
+++ b/src/lib/Server/Plugins/Packages/Source.py
@@ -73,6 +73,7 @@ class Source(Bcfg2.Server.Plugin.Debuggable):
if self.url and not self.url.endswith("/"):
self.url += "/"
self.version = xsource.get('version', '')
+ self.priority = xsource.get('priority', 500)
# build the set of conditions to see if this source applies to
# a given set of metadata