BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //usr/local/sysak/.sysak_components/tools/podinfo.pyc
�
�]ic@s�ddlZddlZddlZddlmZmZmZejdd�Zda
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�ZdS(i����N(tCDLLtc_inttc_char_ptSYSAK_WORK_PATHtcCsqttd�atgtj_ttj_tgtj_ttj_ttj_t	gtj
_dtj
_tS(Ns/tools/libpodinfo.so(Rt	work_pathtpodinfo_libRtCGetPodInfobyIDorNameorUidtargtypestrestypetCGetContainersOfPodtCGetContainerInfosRtSetLogLeveltNone(((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytset_podinfo_libscCsRtjd�tj�}tjd�|s0iS|jd�}tj|�}|S(Niisutf-8(RRRtdecodetjsontloads(tresultt
result_strtcons((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytget_all_containers

cCsytjd�|jd�}tj|�}|sJd|GHtjd�n|jd�}tj|�}tjd�|S(s,获取Pod中的容器信息

    Args:
        pod_name (str): Pod的名称/ID/UID

    Returns:
        [
            {
                "Id"              string
                "PodName"         string
                "PodId"           string
                "Pid"             int
                "Namespace"       string
                "PodCgroup"       string
                "ContainerCgroup" string
                "ContainerName"   string
                "Image"           string
                "PodIp"           string
            }
        ]
    isutf-8s'Failed to get containers info of pod %sii(	RRtencodeR
tsystexitRRR(tpod_nametrestinfos((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytget_containers_of_pod%s
	
cCsytjd�|jd�}tj|�}|sJd|GHtjd�n|jd�}tj|�}tjd�|S(s!获取Pod的信息

    Args:
        pod_name (str): Pod的名称/ID/UID

    Returns:
        {
            "Id": "Pod ID",
            "Uid": "Pod UID",
            "Name": "Pod Name",
            "Namespace": "Pod Namespace",
            "CgroupParent": "Pod CgroupPath"
        }
    isutf-8sFailed to get pod info of %sii(	RRRRRRRRR(RRtinfo((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytget_pod_infoHs
	
cCsetj�}|siS|jd�}tj|�}x*|D]"}|j|jd��r;|Sq;WiS(Nsutf-8tContainerCgroup(RRRRRt
startswithtget(tcg_pathRRRtcon((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytget_con_by_cgroupes
cCsetj�}|siS|jd�}tj|�}x*|D]"}|j|jd��r;|Sq;WiS(Nsutf-8tCgroupParent(Rt	CListPodsRRRR R!(R"Rtpodstpod((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytget_pod_by_cgroupts
cCs(tjd�}|dkr$d}n|S(s�读取环境变量 ROOT_DIR
    1. 如果环境变量存在则使用环境变量;
    2. 如果环境变量不存在默认为 /
    tROOT_DIRt/N(tostgetenvR
(troot_dir((s3/usr/local/sysak/.sysak_components/tools/podinfo.pyt
get_root_path�s	cCs2|jd�r|d}ntjjt�|�S(NR+i(R R,tpathtjoinR/(R0((s3/usr/local/sysak/.sysak_components/tools/podinfo.pyt
get_real_path�s
cCs$tjjtd��rtStSdS(sCIs cgroup v1 or v2

    Returns:
        _type_: _description_
    s!/sys/fs/cgroup/cgroup.controllersN(R,R0texistsR2tFalsetTrue(((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytis_cgroup_v1�scCs!t�rtd�Std�SdS(sEGet memory root path

    Returns:
        _type_: _description_
    s/sys/fs/cgroup/memorys/sys/fs/cgroupN(R6R2(((s3/usr/local/sysak/.sysak_components/tools/podinfo.pytmemory_cgroup_root�s	
(R,RRtctypesRRRR-RR
RRRRRR$R)R/R2R6R7(((s3/usr/local/sysak/.sysak_components/tools/podinfo.pyt<module>s		
	#