summaryrefslogtreecommitdiffstats
path: root/modules/yum.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/yum.py')
-rw-r--r--modules/yum.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/yum.py b/modules/yum.py
new file mode 100644
index 0000000..6600d47
--- /dev/null
+++ b/modules/yum.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 = {
+ "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