nebula.frontend.app

Contents

nebula.frontend.app#

Attributes#

Classes#

Functions#

websocket_endpoint(websocket, client_id)

datetimeformat(value[, format])

add_global_context(request)

get_session(request)

set_default_user()

startup_event()

signal_handler(signal, frame)

custom_http_exception_handler(request, exc)

index()

nebula_home(request)

nebula_dashboard_private(request, scenario_name[, session])

nebula_admin(request[, session])

save_note_for_scenario(scenario_name, request[, session])

get_notes_for_scenario(scenario_name)

nebula_login(request[, session, user, password])

nebula_logout(request[, session])

nebula_delete_user(user, request[, session])

nebula_add_user(request[, session, user, password, role])

nebula_update_user(request[, session, user, password, ...])

nebula_dashboard_runningscenario()

nebula_dashboard(request[, session])

nebula_dashboard_monitor(scenario_name, request[, session])

update_topology(scenario_name, nodes_list, nodes_config)

nebula_update_node(scenario_name, request[, session])

nebula_register_node(scenario_name, request)

nebula_list_all_scenarios([session])

nebula_erase_all_nodes([session])

nebula_wait_nodes(scenario_name)

nebula_monitor_log(scenario_name, id)

nebula_monitor_log_x(scenario_name, id, number)

nebula_monitor_log_debug(scenario_name, id)

nebula_monitor_log_error(scenario_name, id)

nebula_monitor_image(scenario_name)

stop_scenario(scenario_name)

stop_all_scenarios()

nebula_stop_scenario(scenario_name, stop_all, request)

remove_scenario([scenario_name])

nebula_remove_scenario(scenario_name, request[, session])

get_tracking_hash_scenario(scenario_name)

zipdir(path, ziph)

nebula_dashboard_download_logs_metrics(scenario_name, ...)

nebula_dashboard_deployment(request[, session])

attack_node_assign(nodes, federation, attack, ...)

Identify which nodes will be attacked

mobility_assign(nodes, mobile_participants_percent)

Assign mobility to nodes

node_stopped(scenario_name, request)

run_scenario(scenario_data, role)

run_scenarios(data, role)

nebula_dashboard_deployment_run(request, background_tasks)

Module Contents#

class nebula.frontend.app.Settings#
port: int#
production: bool#
gpu_available: bool#
advanced_analytics: bool#
host_platform: str#
log_dir: str#
config_dir: str#
cert_dir: str#
root_host_path: str#
config_frontend_dir: str#
statistics_port: int#
secret_key: str#
PERMANENT_SESSION_LIFETIME: datetime.timedelta#
templates_dir: str = 'templates'#
nebula.frontend.app.settings#
nebula.frontend.app.app#
class nebula.frontend.app.ConnectionManager#
active_connections: list[fastapi.WebSocket] = []#
async connect(websocket)#
Parameters:

websocket (fastapi.WebSocket)

disconnect(websocket)#
Parameters:

websocket (fastapi.WebSocket)

async send_personal_message(message, websocket)#
Parameters:
  • message (str)

  • websocket (fastapi.WebSocket)

async broadcast(message)#
Parameters:

message (str)

nebula.frontend.app.manager#
async nebula.frontend.app.websocket_endpoint(websocket, client_id)#
Parameters:
  • websocket (fastapi.WebSocket)

  • client_id (int)

nebula.frontend.app.templates#
nebula.frontend.app.datetimeformat(value, format='%B %d, %Y %H:%M')#
nebula.frontend.app.add_global_context(request)#
Parameters:

request (fastapi.Request)

nebula.frontend.app.get_session(request)#
Parameters:

request (fastapi.Request)

Return type:

Dict

nebula.frontend.app.set_default_user()#
async nebula.frontend.app.startup_event()#
nebula.frontend.app.nodes_registration#
nebula.frontend.app.scenarios_list_length = 0#
nebula.frontend.app.scenarios_finished = 0#
nebula.frontend.app.signal_handler(signal, frame)#
async nebula.frontend.app.custom_http_exception_handler(request, exc)#
Parameters:
  • request (fastapi.Request)

  • exc (starlette.exceptions.HTTPException)

async nebula.frontend.app.index()#
async nebula.frontend.app.nebula_home(request)#
Parameters:

request (fastapi.Request)

async nebula.frontend.app.nebula_dashboard_private(request, scenario_name, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • scenario_name (str)

  • session (Dict)

async nebula.frontend.app.nebula_admin(request, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.save_note_for_scenario(scenario_name, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.get_notes_for_scenario(scenario_name)#
Parameters:

scenario_name (str)

async nebula.frontend.app.nebula_login(request, session=Depends(get_session), user=Form(...), password=Form(...))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

  • user (str)

  • password (str)

async nebula.frontend.app.nebula_logout(request, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.nebula_delete_user(user, request, session=Depends(get_session))#
Parameters:
  • user (str)

  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.nebula_add_user(request, session=Depends(get_session), user=Form(...), password=Form(...), role=Form(...))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

  • user (str)

  • password (str)

  • role (str)

async nebula.frontend.app.nebula_update_user(request, session=Depends(get_session), user=Form(...), password=Form(...), role=Form(...))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

  • user (str)

  • password (str)

  • role (str)

async nebula.frontend.app.nebula_dashboard_runningscenario()#
async nebula.frontend.app.nebula_dashboard(request, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.nebula_dashboard_monitor(scenario_name, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

  • session (Dict)

nebula.frontend.app.update_topology(scenario_name, nodes_list, nodes_config)#
async nebula.frontend.app.nebula_update_node(scenario_name, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.nebula_register_node(scenario_name, request)#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

async nebula.frontend.app.nebula_list_all_scenarios(session=Depends(get_session))#
Parameters:

session (Dict)

async nebula.frontend.app.nebula_erase_all_nodes(session=Depends(get_session))#
Parameters:

session (Dict)

async nebula.frontend.app.nebula_wait_nodes(scenario_name)#
Parameters:

scenario_name (str)

async nebula.frontend.app.nebula_monitor_log(scenario_name, id)#
Parameters:
  • scenario_name (str)

  • id (str)

async nebula.frontend.app.nebula_monitor_log_x(scenario_name, id, number)#
Parameters:
  • scenario_name (str)

  • id (str)

  • number (int)

async nebula.frontend.app.nebula_monitor_log_debug(scenario_name, id)#
Parameters:
  • scenario_name (str)

  • id (str)

async nebula.frontend.app.nebula_monitor_log_error(scenario_name, id)#
Parameters:
  • scenario_name (str)

  • id (str)

async nebula.frontend.app.nebula_monitor_image(scenario_name)#
Parameters:

scenario_name (str)

nebula.frontend.app.stop_scenario(scenario_name)#
nebula.frontend.app.stop_all_scenarios()#
async nebula.frontend.app.nebula_stop_scenario(scenario_name, stop_all, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • stop_all (bool)

  • request (fastapi.Request)

  • session (Dict)

nebula.frontend.app.remove_scenario(scenario_name=None)#
async nebula.frontend.app.nebula_remove_scenario(scenario_name, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

  • session (Dict)

nebula.frontend.app.get_tracking_hash_scenario(scenario_name)#
nebula.frontend.app.zipdir(path, ziph)#
async nebula.frontend.app.nebula_dashboard_download_logs_metrics(scenario_name, request, session=Depends(get_session))#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

  • session (Dict)

async nebula.frontend.app.nebula_dashboard_deployment(request, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • session (Dict)

nebula.frontend.app.attack_node_assign(nodes, federation, attack, poisoned_node_percent, poisoned_sample_percent, poisoned_noise_percent)#

Identify which nodes will be attacked

nebula.frontend.app.mobility_assign(nodes, mobile_participants_percent)#

Assign mobility to nodes

nebula.frontend.app.stop_all_scenarios_event#
nebula.frontend.app.finish_scenario_event#
nebula.frontend.app.nodes_finished = []#
async nebula.frontend.app.node_stopped(scenario_name, request)#
Parameters:
  • scenario_name (str)

  • request (fastapi.Request)

async nebula.frontend.app.run_scenario(scenario_data, role)#
async nebula.frontend.app.run_scenarios(data, role)#
async nebula.frontend.app.nebula_dashboard_deployment_run(request, background_tasks, session=Depends(get_session))#
Parameters:
  • request (fastapi.Request)

  • background_tasks (fastapi.BackgroundTasks)

  • session (Dict)

nebula.frontend.app.parser#