예제 #1
0
파일: psapi.py 프로젝트: vishu77/ncpa
def get_root_node(config=False):
    cpu = get_cpu_node()
    memory = get_memory_node()
    disk = get_disk_node(config)
    interface = get_interface_node()
    plugins = get_plugins_node()
    user = get_user_node()
    system = get_system_node()
    service = services.get_node()
    process = processes.get_node()

    children = [
        cpu, memory, disk, interface, plugins, user, system, service, process
    ]

    if environment.SYSTEM == "Windows":
        for importable in importables:
            try:
                relative_name = 'listener.' + importable
                tmp = __import__(relative_name, fromlist=['get_node'])
                get_node = getattr(tmp, 'get_node')

                node = get_node()
                children.append(node)
                logging.debug("Imported %s into the API tree.", importable)
            except ImportError:
                logging.warning("Could not import %s, skipping.", importable)
            except AttributeError:
                logging.warning(
                    "Trying to import %s but does not get_node() function, skipping.",
                    importable)

    return ParentNode('root', children=children)
예제 #2
0
def get_root_node(config=False):
    cpu = get_cpu_node()
    memory = get_memory_node()
    disk = get_disk_node(config)
    interface = get_interface_node()
    plugins = get_plugins_node()
    user = get_user_node()
    system = get_system_node()
    service = services.get_node()
    process = processes.get_node()

    children = [cpu, memory, disk, interface, plugins, user, system, service, process]

    if environment.SYSTEM == "Windows":
        for importable in importables:
            try:
                relative_name = 'listener.' + importable
                tmp = __import__(relative_name, fromlist=['get_node'])
                get_node = getattr(tmp, 'get_node')

                node = get_node()
                children.append(node)
                logging.debug("Imported %s into the API tree.", importable)
            except ImportError:
                logging.warning("Could not import %s, skipping.", importable)
            except AttributeError:
                logging.warning("Trying to import %s but does not get_node() function, skipping.", importable)

    return ParentNode('root', children=children)
예제 #3
0
def top_websocket():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            load = psutil.cpu_percent()
            vir_mem = psutil.virtual_memory().percent
            swap_mem = psutil.swap_memory().percent
            pnode = processes.get_node()
            procs = pnode.get_process_dict()

            process_list = []

            for process in procs:
                if process['pid'] == 0:
                    continue
                process_list.append(process)

            json_val = json.dumps({
                'load': load,
                'vir': vir_mem,
                'swap': swap_mem,
                'process': process_list
            })
            try:
                ws.send(json_val)
                gevent.sleep(1)
            except Exception as e:
                # Socket was probably closed by the browser changing pages
                logging.debug(e)
                ws.close()
                break
    return ''
예제 #4
0
def top_websocket():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
        while True:
            load = psutil.cpu_percent()
            vir_mem = psutil.virtual_memory().percent
            swap_mem = psutil.swap_memory().percent
            pnode = processes.get_node()
            procs = pnode.get_process_dict()

            process_list = []

            for process in procs:
                if process['pid'] == 0:
                    continue
                process_list.append(process)

            json_val = json.dumps({'load': load, 'vir': vir_mem, 'swap': swap_mem, 'process': process_list})
            try:
                ws.send(json_val)
                gevent.sleep(1)
            except Exception as e:
                # Socket was probably closed by the browser changing pages
                logging.debug(e)
                ws.close()
                break
    return ''