summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2012-06-05 17:01:08 -0500
committerSol Jerome <sol.jerome@gmail.com>2012-06-05 17:01:08 -0500
commitf46d4216cd4d6a4b272bfff1465a19a5649a93e7 (patch)
treefba2f131e6b8c70a9bbb7ab463dfeaa0e4d3aed3 /src/lib/Bcfg2
parent200f79387247eefa01d60e4f6e573ba5162054bc (diff)
downloadbcfg2-f46d4216cd4d6a4b272bfff1465a19a5649a93e7.tar.gz
bcfg2-f46d4216cd4d6a4b272bfff1465a19a5649a93e7.tar.bz2
bcfg2-f46d4216cd4d6a4b272bfff1465a19a5649a93e7.zip
OpenCSW: Add client tool
It seems like Blastwave is (mostly) dead. The opencsw fork appears to be alive and kicking. This is preliminary support based on the Blast client driver. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Diffstat (limited to 'src/lib/Bcfg2')
-rw-r--r--src/lib/Bcfg2/Client/Tools/OpenCSW.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/OpenCSW.py b/src/lib/Bcfg2/Client/Tools/OpenCSW.py
new file mode 100644
index 000000000..6aafe316f
--- /dev/null
+++ b/src/lib/Bcfg2/Client/Tools/OpenCSW.py
@@ -0,0 +1,33 @@
+# This is the bcfg2 support for opencsw packages (pkgutil)
+"""This provides Bcfg2 support for OpenCSW packages."""
+
+import tempfile
+import Bcfg2.Client.Tools.SYSV
+
+
+class OpenCSW(Bcfg2.Client.Tools.SYSV.SYSV):
+ """Support for OpenCSW packages."""
+ pkgtype = 'opencsw'
+ pkgtool = ("/opt/csw/bin/pkgutil -y -i %s", ("%s", ["bname"]))
+ name = 'OpenCSW'
+ __execs__ = ['/opt/csw/bin/pkgutil', "/usr/bin/pkginfo"]
+ __handles__ = [('Package', 'opencsw')]
+ __ireq__ = {'Package': ['name', 'version', 'bname']}
+
+ def __init__(self, logger, setup, config):
+ # dont use the sysv constructor
+ Bcfg2.Client.Tools.PkgTool.__init__(self, logger, setup, config)
+ noaskfile = tempfile.NamedTemporaryFile()
+ self.noaskname = noaskfile.name
+ try:
+ noaskfile.write(Bcfg2.Client.Tools.SYSV.noask)
+ except:
+ pass
+
+ # VerifyPackage comes from Bcfg2.Client.Tools.SYSV
+ # Install comes from Bcfg2.Client.Tools.PkgTool
+ # Extra comes from Bcfg2.Client.Tools.Tool
+ # Remove comes from Bcfg2.Client.Tools.SYSV
+ def FindExtraPackages(self):
+ """Pass through to null FindExtra call."""
+ return []