예제 #1
0
파일: query.py 프로젝트: ph87/koenig
def query_disk_usage(path):
    try:
        disk_usage = psutil.disk_usage(path)
    except OSError:
        raise_user_exc(KoenigErrorCode.DISK_PATH_NOT_FOUND)

    return serialize(disk_usage, koenig_thrift.TDiskUsage)
예제 #2
0
def __serialize_dict(obj_dict, ttype):

    if not isinstance(obj_dict, dict):
        raise_user_exc(KoenigErrorCode.PARAMETER_TYPE_INVALID)

    func = partial(__serialize, ttype=ttype)
    return {k: func(obj) for k, obj in obj_dict.iteritems()}
예제 #3
0
def __serialize_list(obj_list, ttype):

    if not isinstance(obj_list, (list, tuple)):
        raise_user_exc(KoenigErrorCode.PARAMETER_TYPE_INVALID)

    func = partial(__serialize, ttype=ttype)
    return [func(obj) for obj in obj_list]
예제 #4
0
파일: query.py 프로젝트: ph87/koenig
def query_net_connections():
    try:
        net_connections = psutil.net_connections()
    except AccessDenied:
        raise_user_exc(KoenigErrorCode.ACCESS_DENIED)

    return serialize(net_connections,
                     koenig_thrift.TNetworkConnections,
                     _list=True)
예제 #5
0
파일: query.py 프로젝트: ph87/koenig
def query_process_by_pid(pid):

    try:
        process = psutil.Process(pid)
    except AccessDenied:
        raise_user_exc(KoenigErrorCode.ACCESS_DENIED)
    except NoSuchProcess:
        raise_system_exc(KoenigErrorCode.PROCESS_NOT_FOUND)

    process = __extend_process(process)

    return serialize(process, koenig_thrift.TProcess)
예제 #6
0
파일: query.py 프로젝트: ph87/koenig
def query_processes_by_pids(pids):

    threads = []

    for pid in pids:
        try:
            process = psutil.Process(pid)
        except AccessDenied:
            raise_user_exc(KoenigErrorCode.ACCESS_DENIED)
        except NoSuchProcess:
            raise_system_exc(KoenigErrorCode.PROCESS_NOT_FOUND)

        threads.append(gevent.spawn(__extend_process, process))

    gevent.joinall(threads)
    result = {thread.value.__dict__['pid']: thread.value for thread in threads}

    return serialize(result, koenig_thrift.TProcess, _map=True)