summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-03-01 01:07:05 +0100
committerAlexander Sulfrian <asulfrian@zedat.fu-berlin.de>2022-01-23 19:57:46 +0100
commit18c024d69b373af53398157c658bcd2265d5d9c0 (patch)
tree63f4af6d8f939fba6b57a25b1631624b31feac01
parent830007663cf2d83ccaa58f9c6caa8f461f6d8234 (diff)
downloadbcfg2-18c024d69b373af53398157c658bcd2265d5d9c0.tar.gz
bcfg2-18c024d69b373af53398157c658bcd2265d5d9c0.tar.bz2
bcfg2-18c024d69b373af53398157c658bcd2265d5d9c0.zip
Packages: Add 'pin' attribute
-rw-r--r--schemas/packages.xsd9
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Source.py7
2 files changed, 14 insertions, 2 deletions
diff --git a/schemas/packages.xsd b/schemas/packages.xsd
index 3f2fe4f57..d358a17b3 100644
--- a/schemas/packages.xsd
+++ b/schemas/packages.xsd
@@ -235,6 +235,15 @@
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
+ <xsd:attribute type="xsd:string" name="pin">
+ <xsd:annotation>
+ <xsd:documentation>
+ Extra information for pinning. This information is used
+ to differ between the sources. Should be used in the
+ supported format of apt.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
<xsd:attributeGroup ref="py:genshiAttrs"/>
</xsd:complexType>
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
index b2422d84e..2b7514b06 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py
@@ -198,6 +198,9 @@ class Source(Debuggable): # pylint: disable=R0902
#: The "priority" attribute from :attr:`xsource`
self.priority = xsource.get('priority', 500)
+ #: The "pin" attribute from :attr:`xsource`
+ self.pin = xsource.get('pin', '')
+
#: A list of predicates that are used to determine if this
#: source applies to a given
#: :class:`Bcfg2.Server.Plugins.Metadata.ClientMetadata`
@@ -261,12 +264,12 @@ class Source(Debuggable): # pylint: disable=R0902
if self.url:
usettings = [dict(version=self.version, component=comp,
arch=arch, debsrc=self.debsrc,
- priority=self.priority)
+ priority=self.priority, pin=self.pin)
for comp in self.components]
else: # rawurl given
usettings = [dict(version=self.version, component=None,
arch=arch, debsrc=self.debsrc,
- priority=self.priority)]
+ priority=self.priority, pin=self.pin)]
for setting in usettings:
if not self.rawurl: