summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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