summaryrefslogtreecommitdiffstats
path: root/modules/yum.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@mdehaan.rdu.redhat.com>2007-09-21 19:11:21 -0400
committerMichael DeHaan <mdehaan@mdehaan.rdu.redhat.com>2007-09-21 19:11:21 -0400
commit2d1bb13794d1f3e9dfca2047195e5ab368db628b (patch)
treec3e19536b308117c710d14c3fde54437027f38b8 /modules/yum.py
parenta64a59585222a0b10a1e6181c67d53dde6570a34 (diff)
downloadthird_party-func-2d1bb13794d1f3e9dfca2047195e5ab368db628b.tar.gz
third_party-func-2d1bb13794d1f3e9dfca2047195e5ab368db628b.tar.xz
third_party-func-2d1bb13794d1f3e9dfca2047195e5ab368db628b.zip
Rename yummod as yum so each module doesn't end up ending in mod :)
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