summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Bowes <jbowes@redhat.com>2007-09-21 12:29:55 -0400
committerJames Bowes <jbowes@redhat.com>2007-09-21 13:16:55 -0400
commit2e2b587125d81ea409de6bffff6f11e1a39cc4d7 (patch)
tree6351e91e626603026e3d7d7ab80a3e9d0d421dbb
parent68d56ed19c80804bf26dd8961bcad48166c4c5ca (diff)
downloadfunc-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.tar.gz
func-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.tar.xz
func-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.zip
Add yum module
Only updating supported right now.
-rw-r--r--modules/yummod.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/yummod.py b/modules/yummod.py
new file mode 100644
index 0000000..575b001
--- /dev/null
+++ b/modules/yummod.py
@@ -0,0 +1,48 @@
+# Copyright 2007, Red Hat, Inc
+# James Bowes <jbowes@redhat.com>
+#
+# This software may be freely redistributed under the terms of the GNU
+# general public license.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+from modules import func_module
+
+import yum
+
+# XXX Use internal yum callback or write a useful one.
+class DummyCallback(object):
+
+ def event(self, state, data=None):
+ pass
+
+class Yum(func_module.FuncModule):
+
+ def __init__(self):
+ self.methods = {
+ "yum_update" : self.update
+ }
+ func_module.FuncModule.__init__(self)
+
+ def update(self):
+ # XXX support updating specific rpms
+ ayum = yum.YumBase()
+ ayum.doGenericSetup()
+ ayum.doRepoSetup()
+ try:
+ ayum.doLock()
+ ayum.update()
+ ayum.buildTransaction()
+ ayum.processTransaction(
+ callback=DummyCallback())
+ finally:
+ ayum.closeRpmDB()
+ ayum.doUnlock()
+ return True
+
+
+methods = Yum()
+register_rpc = methods.register_rpc