GRAYBYTE WORDPRESS FILE MANAGER3172

Server IP : 149.255.58.128 / Your IP : 216.73.216.122
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//transaction.py
#
# Client code for Update Agent
# Copyright (c) 1999--2016 Red Hat, Inc.  Distributed under GPLv2.
#
#         Adrian Likins <alikins@redhat.com
#
#
# a couple of classes wrapping up transactions so that we
#    can share transactions instead of creating new ones all over
#

import rpm

read_ts = None
ts = None

# ************* NOTE: ************#
# for the sake of clarity, the names "added/removed" as used here
# are indicative of what happened when the original transaction was
# ran. Aka, if you "up2date foobar" and it updates foobar-1-0 with
# foobar-2-0, you added foobar-2-0 and removed foobar-1-0
#
# The reason I mention this explicitly is the trouble of describing
# what happens when you rollback the transaction, which is basically
# the opposite, and leads to plenty of confusion
#


class TransactionData:
    # simple data structure designed to transport info
    # about rpm transactions around
    def __init__(self):
        self.data = {}
        # a list of tuples of pkg info, and mode ('e', 'i', 'u')
        # the pkgInfo is tuple of [name, version, release, epoch, arch]
        # size is never used directly for this, it's here as a place holder
        # arch is optional, if the server specifies it, go with what
        # removed packages only need [n,v,r,e,arch]
        self.data['packages'] = []
        # list of flags to set for the transaction
        self.data['flags'] = []
        self.data['vsflags'] = []
        self.data['probFilterFlags'] = []


    def display(self):
        out = ""
        removed = []
        installed = []
        updated = []
        misc = []
        for (pkgInfo, mode) in self.data['packages']:
            if mode == 'u':
                updated.append(pkgInfo)
            elif mode == 'i':
                installed.append(pkgInfo)
            elif mode == 'e':
                removed.append(pkgInfo)
            else:
                misc.append(pkgInfo)
        for pkgInfo in removed:
            out = out + "\t\t[e] %s-%s-%s:%s\n" % (pkgInfo[0], pkgInfo[1], pkgInfo[2], pkgInfo[3])
        for pkgInfo in installed:
            out = out + "\t\t[i] %s-%s-%s:%s\n" % (pkgInfo[0], pkgInfo[1], pkgInfo[2], pkgInfo[3])
        for pkgInfo in updated:
            out = out + "\t\t[u] %s-%s-%s:%s\n" % (pkgInfo[0], pkgInfo[1], pkgInfo[2], pkgInfo[3])
        for pkgInfo in misc:
            out = out + "\t\t[%s] %s-%s-%s:%s\n" % (pkgInfo[5], pkgInfo[0], pkgInfo[1],
                                                    pkgInfo[2], pkgInfo[3])
        return out


# wrapper/proxy class for rpm.Transaction so we can
# instrument it, etc easily
class Up2dateTransaction:
    def __init__(self):
        self.ts = rpm.TransactionSet()
        self._methods = ['dbMatch',
                         'check',
                         'order',
                         'addErase',
                         'addInstall',
                         'run',
                         'IDTXload',
                         'IDTXglob',
                         'rollback',
                         'pgpImportPubkey',
                         'pgpPrtPkts',
                         'Debug',
                         'setFlags',
                         'setVSFlags',
                         'setProbFilter',
                         'hdrFromFdno']
        self.tsflags = []

    def __getattr__(self, attr):
        if attr in self._methods:
            return self.getMethod(attr)
        else:
            raise AttributeError(attr)

    def getMethod(self, method):
        # in theory, we can override this with
        # profile/etc info
        return getattr(self.ts, method)

    # push/pop methods so we dont lose the previous
    # set value, and we can potentiall debug a bit
    # easier
    def pushVSFlags(self, flags):
        self.tsflags.append(flags)
        self.ts.setVSFlags(self.tsflags[-1])

    def popVSFlags(self):
        del self.tsflags[-1]
        self.ts.setVSFlags(self.tsflags[-1])

def initReadOnlyTransaction():
    global read_ts
    if read_ts == None:
        read_ts =  Up2dateTransaction()
        # FIXME: replace with macro defination
        read_ts.pushVSFlags(-1)
    return read_ts


[ 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