diff options
author | James Bowes <jbowes@redhat.com> | 2007-09-21 12:29:55 -0400 |
---|---|---|
committer | James Bowes <jbowes@redhat.com> | 2007-09-21 13:16:55 -0400 |
commit | 2e2b587125d81ea409de6bffff6f11e1a39cc4d7 (patch) | |
tree | 6351e91e626603026e3d7d7ab80a3e9d0d421dbb | |
parent | 68d56ed19c80804bf26dd8961bcad48166c4c5ca (diff) | |
download | func-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.tar.gz func-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.tar.xz func-2e2b587125d81ea409de6bffff6f11e1a39cc4d7.zip |
Add yum module
Only updating supported right now.
-rw-r--r-- | modules/yummod.py | 48 |
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 |