Current Path: > > lib > python3.6 > site-packages > up2date_client >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 0 bytes | May 29 2025 13:37:22. | |
capabilities.py | File | 7452 bytes | May 29 2025 13:37:22. | |
clientCaps.py | File | 2208 bytes | May 29 2025 13:37:22. | |
clpwd.py | File | 3643 bytes | May 29 2025 13:37:22. | |
config.py | File | 14803 bytes | May 29 2025 13:37:22. | |
debUtils.py | File | 2830 bytes | May 29 2025 13:37:22. | |
getMethod.py | File | 4302 bytes | May 29 2025 13:37:22. | |
haltree.py | File | 4642 bytes | May 29 2025 13:37:22. | |
hardware.py | File | 32675 bytes | May 29 2025 13:37:22. | |
hardware_gudev.py | File | 13216 bytes | May 29 2025 13:37:22. | |
hardware_hal.py | File | 11604 bytes | May 29 2025 13:37:22. | |
hardware_udev.py | File | 13300 bytes | May 29 2025 13:37:22. | |
pkgUtils.py | File | 295 bytes | May 29 2025 13:37:22. | |
pkgplatform.py | File | 309 bytes | May 29 2025 13:47:19. | |
pmPlugin.py | File | 2859 bytes | May 29 2025 13:37:22. | |
rhnChannel.py | File | 5031 bytes | May 29 2025 13:37:22. | |
rhnHardware.py | File | 328 bytes | May 29 2025 13:37:22. | |
rhnPackageInfo.py | File | 2396 bytes | May 29 2025 13:37:22. | |
rhncli.py | File | 9335 bytes | May 29 2025 13:37:22. | |
rhnreg.py | File | 32101 bytes | May 29 2025 13:37:22. | |
rhnreg_constants.py | File | 18569 bytes | May 29 2025 13:37:22. | |
rhnserver.py | File | 9531 bytes | May 29 2025 13:37:22. | |
rpcServer.py | File | 11999 bytes | May 29 2025 13:37:22. | |
rpmUtils.py | File | 5321 bytes | May 29 2025 13:37:22. | |
transaction.py | File | 4193 bytes | May 29 2025 13:37:22. | |
tui.py | File | 44749 bytes | May 29 2025 13:37:22. | |
up2dateAuth.py | File | 10944 bytes | May 29 2025 13:37:22. | |
up2dateErrors.py | File | 10502 bytes | May 29 2025 13:37:22. | |
up2dateLog.py | File | 2108 bytes | May 29 2025 13:37:22. | |
up2dateUtils.py | File | 5180 bytes | May 29 2025 13:47:19. |
# Retrieve action method name given queued action information. # # Client code for Update Agent # Copyright (c) 1999--2016 Red Hat, Inc. Distributed under GPLv2. # # An allowable xmlrpc method is retrieved given a base location, a # hierarchical route to the class/module, and method name. # import os import string import sys from rhn.tb import raise_with_tb try: # python2 from types import ClassType except ImportError: # python3 ClassType = type class GetMethodException(Exception): """Exception class""" pass def sanity(methodNameComps): #""" # Verifies if all the components have proper names #""" # Allowed characters in each string alpha = string.ascii_lowercase + string.ascii_uppercase allowedChars = alpha + string.digits + '_' for comp in methodNameComps: if not len(comp): raise GetMethodException("Empty method component") for c in comp: if c not in allowedChars: raise GetMethodException( "Invalid character '%s' in the method name" % c) # Can only begin with a letter if comp[0] not in alpha: raise GetMethodException( "Method names should start with an alphabetic character") def getMethod(methodName, baseClass): #""" #Retreive method given methodName, path to base of tree, and class/module #route/label. #""" # First split the method name methodNameComps = baseClass.split('.') + methodName.split('.') # Sanity checks sanity(methodNameComps) # Look for the module, start with the most specific for index in range(len(methodNameComps), 0, -1): modulename = '.'.join(methodNameComps[:index]) try: actions = __import__(modulename) except ImportError: # does not exist, try next one continue except Exception: raise_with_tb(GetMethodException("Could not import module %s" % modulename)) # found one, skip the rest break else: # no module found. die raise GetMethodException("Action %s could not be imported" % methodName) # The position of the file fIndex = index className = actions # Iterate through the list of components and try to load that specific # module/method for index in range(1, len(methodNameComps)): comp = methodNameComps[index] if index < fIndex: # This is a directory or a file we have to load if not hasattr(className, comp): # Hmmm... Not there raise GetMethodException("Class %s has no attribute %s" % ( '.'.join(methodNameComps[:index]), comp)) className = getattr(className, comp) #print(type(className)) continue # A file or method # We look for the special __rhnexport__ array if not hasattr(className, '__rhnexport__'): raise GetMethodException("Class %s is not RHN-compliant" % \ '.'.join(methodNameComps[:index])) export = getattr(className, '__rhnexport__') if comp not in export: raise GetMethodException("Class %s does not export '%s'" % ( '.'.join(methodNameComps[:index]), comp)) className = getattr(className, comp) if type(className) is ClassType: # Try to instantiate it className = className() #print(type(className)) return className #----------------------------------------------------------------------------- if __name__ == '__main__': # Two valid ones and a bogus one methods = [ 'a.b.c.d.e.f', 'a.b.c.d.e.foo.h', 'a.b.c.d.e.g.h', 'a.b.d.d.e.g.h', 'a.b.d.d._e.g.h', 'a.b.d.d.e_.g.h', 'a.b.d.d.e-.g.h', 'a.b.d.d..g.h', ] for m in methods: print("----Running method %s: " % m) try: method = getMethod(m, 'Actions') except GetMethodException: e = sys.exc_info()[1] print("Error getting the method %s: %s" % (m, ''.join(map(str, e.args)))) else: method() #-----------------------------------------------------------------------------
SILENT KILLER Tool