From 2e2b587125d81ea409de6bffff6f11e1a39cc4d7 Mon Sep 17 00:00:00 2001 From: James Bowes Date: Fri, 21 Sep 2007 12:29:55 -0400 Subject: Add yum module Only updating supported right now. --- modules/yummod.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 modules/yummod.py (limited to 'modules') 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 +# +# 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 -- cgit