summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2012-03-29 08:26:53 -0500
committerSol Jerome <sol.jerome@gmail.com>2012-03-29 08:26:53 -0500
commitc674e2fd3d068b19d291a92231244f91a0120fe5 (patch)
tree02a58aac28a02e6b0eaa3a23bb00abb43c13539f
parentead0d6daf6766539895ab945ad6ca9fd925da615 (diff)
downloadbcfg2-c674e2fd3d068b19d291a92231244f91a0120fe5.tar.gz
bcfg2-c674e2fd3d068b19d291a92231244f91a0120fe5.tar.bz2
bcfg2-c674e2fd3d068b19d291a92231244f91a0120fe5.zip
Packages: Add support for alternate version attribute
Patch from odenbach on IRC. Allows for setting version="any" by default on entries bound by the Packages plugin. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
-rw-r--r--doc/server/plugins/generators/packages.txt2
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/__init__.py8
2 files changed, 8 insertions, 2 deletions
diff --git a/doc/server/plugins/generators/packages.txt b/doc/server/plugins/generators/packages.txt
index 276b73093..e4035053a 100644
--- a/doc/server/plugins/generators/packages.txt
+++ b/doc/server/plugins/generators/packages.txt
@@ -662,6 +662,8 @@ It understands the following directives:
* ``gpg_keypath``: The path on the client RPM GPG keys will be copied
to before they are imported on the client. Default is
"/etc/pki/rpm-gpg".
+* ``version``: Set the version attribute used when binding
+ Packages. Default is ``auto``.
* ``import_gpg_keys``: The RPM release of an RPM GPG key cannot be
reliably and automatically determined without importing the key into
the server's key chain. If ``import_gpg_keys`` is "false" (the
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
index da5832e90..0d5e7d50f 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
@@ -88,6 +88,9 @@ class Packages(Bcfg2.Server.Plugin.Plugin,
if entry.tag == 'Package':
collection = self._get_collection(metadata)
entry.set('version', 'auto')
+ entry.set('version', self.config.get("global",
+ "version",
+ default="auto"))
entry.set('type', collection.ptype)
elif entry.tag == 'Path':
if (entry.get("name") == self.config.get("global", "yum_config",
@@ -178,8 +181,9 @@ class Packages(Bcfg2.Server.Plugin.Plugin,
newpkgs.sort()
for pkg in newpkgs:
lxml.etree.SubElement(independent, 'BoundPackage', name=pkg,
- version='auto', type=collection.ptype,
- origin='Packages')
+ version=self.config.get("global", "version",
+ default="auto"),
+ type=collection.ptype, origin='Packages')
def Refresh(self):
'''Packages.Refresh() => True|False\nReload configuration