The the new methods ready for yumcmd (Func module). Code is attached
herewith for reference.
Method names
1. install()
2. remove()
3. groupinstall()
4. groupremove()

Help and suggestions are welcome.

Thanks

Varinder Singh


#
#copyright 2008
# varinder singh <[email protected]>
#
# 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.
import func_module
from yum import Errors 


# XXX Use internal yum callback or write a useful one.
class DummyCallback(object):

    def event(self, state, data=None):
        pass


class Yumjhand(func_module.FuncModule):

    # Update these if need be.
    version = "0.0.1"
    api_version = "0.0.1"
    description = "yum module for yumcmd install"



    def install(self, pkg=None):
	import yum
	ayum = yum.YumBase()
	ayum.doGenericSetup()
	ayum.doRepoSetup()
	try:
		ayum.doLock()
	        if pkg != None:
 	                tx_result = ayum.install(pattern=pkg)
			ayum.buildTransaction()
			ayum.processTransaction(callback=DummyCallback())
			tx_result = tx_result + ['Package Installed']	
 	        else:
 	                tx_result = ['Please Enter a Package Name to install']
	
	except Errors.InstallError, ex:
		tx_result = [str(ex)]
		
	finally:
 	        ayum.closeRpmDB()
 	        ayum.doUnlock()
 	return map(str, tx_result)


	

    def remove(self, pkg=None):
	import yum
	ayum = yum.YumBase()
	ayum.doGenericSetup()
	ayum.doRepoSetup()
	try:
		ayum.doLock()
                if pkg != None:
                        tx_result = ayum.remove(pattern=pkg)
			ayum.buildTransaction()
			ayum.processTransaction(callback=DummyCallback())
			tx_result = tx_result + ['Package removed']
                else:
                        tx_result = ['Please Enter a Package Name to remove']
        
	except Errors.InstallError, ex:
                tx_result = [str(ex)]

	finally:
                ayum.closeRpmDB()
                ayum.doUnlock()
        return map(str, tx_result)


    def groupinstall(self, grp=None):
        import yum
        ayum = yum.YumBase()
        ayum.doGenericSetup()
        ayum.doRepoSetup()
        try:
                ayum.doLock()
                if grp != None:
			if grp[0]!='@':
				grp = '@'+grp
                        tx_result = ayum._at_groupinstall(pattern=grp)
                        ayum.buildTransaction()
                        ayum.processTransaction(callback=DummyCallback())
                else:
                        tx_result = ['Please Enter a Group Name to install']

        except Errors.InstallError, ex:
                tx_result = [str(ex)]

        finally:
                ayum.closeRpmDB()
                ayum.doUnlock()
        return map(str, tx_result)

    def groupremove(self, grp=None):
        import yum
        ayum = yum.YumBase()
        ayum.doGenericSetup()
        ayum.doRepoSetup()
        try:
                ayum.doLock()
                if grp != None:
                        if grp[0]!='@':
                                grp = '@'+grp
                        tx_result = ayum._at_groupremove(pattern=grp)
                        ayum.buildTransaction()
                        ayum.processTransaction(callback=DummyCallback())
                else:
                        tx_result = ['Please Enter a Group Name to remove']

        except Errors.InstallError, ex:
                tx_result = [str(ex)]

        finally:
                ayum.closeRpmDB()
                ayum.doUnlock()
        return map(str, tx_result)
	
begin:vcard
fn:Varinder Singh 
n:;Varinder Singh 
email;internet:[email protected]
note;quoted-printable:vsjhand.learn.senecac.on.ca=0D=0A=
	[email protected]=0d=0a=
	varinderjhand.wordpress.com
version:2.1
end:vcard

_______________________________________________
Func-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/func-list

Reply via email to