class ProjectManager(object):
The project manager class exposes basic methods to manage scenarios, record them, replay them and start a REVEN server to analyse them.
| Method | __init__ | 
    Undocumented | 
| Instance Variable | client | 
    Undocumented | 
| Instance Variable | document | 
    Undocumented | 
| Property | hostname | 
    Property: The hostname of this project manager | 
| Property | port | 
    Property: The port of this project manager | 
| Method | get_files_list | 
    Undocumented | 
| Method | upload_file | 
    Undocumented | 
| Method | delete_file | 
    Undocumented | 
| Method | get_tasks_list | 
    Undocumented | 
| Method | get_active_tasks_list | 
    Undocumented | 
| Method | get_task | 
    Undocumented | 
| Method | get_task_log | 
    Undocumented | 
| Method | cancel_task | 
    Undocumented | 
| Method | delete_task | 
    Undocumented | 
| Method | update_qemu_snapshot | 
    Undocumented | 
| Method | get_snapshot | 
    Undocumented | 
| Method | get_scenarios_list | 
    Undocumented | 
| Method | create_scenario | 
    Undocumented | 
| Method | update_scenario | 
    Undocumented | 
| Method | delete_scenario | 
    Undocumented | 
| Method | import_scenario | 
    Undocumented | 
| Method | export_scenario | 
    Undocumented | 
| Method | get_sessions_list | 
    Undocumented | 
| Method | get_session | 
    Undocumented | 
| Method | get_session_log | 
    Undocumented | 
| Method | delete_session | 
    Undocumented | 
| Method | start_qemu_snapshot_session | 
    Undocumented | 
| Method | load_live_snapshot_qemu_session | 
    Undocumented | 
| Method | save_live_snapshot_qemu_session | 
    Undocumented | 
| Method | insert_cdrom_qemu_session | 
    Undocumented | 
| Method | eject_cdrom_qemu_session | 
    Undocumented | 
| Method | auto_record_binary | 
    Undocumented | 
| Method | auto_record_asm_stub | 
    Undocumented | 
| Method | start_record | 
    Undocumented | 
| Method | stop_record | 
    Undocumented | 
| Method | commit_record | 
    Undocumented | 
| Method | delete_qemu_session_record | 
    Undocumented | 
| Method | start_vbox_snapshot_session | 
    Undocumented | 
| Method | insert_cdrom_vbox_session | 
    Undocumented | 
| Method | eject_cdrom_vbox_session | 
    Undocumented | 
| Method | stop_session | 
    Undocumented | 
| Method | get_resources_list | 
    Undocumented | 
| Method | get_actions_list | 
    Undocumented | 
| Method | replay_scenario | 
    Undocumented | 
| Method | get_scenario | 
    Undocumented | 
| Method | delete_scenario_record | 
    Undocumented | 
| Method | get_scenario_resources_list | 
    Undocumented | 
| Method | get_scenario_resource | 
    Undocumented | 
| Method | delete_scenario_resources | 
    Undocumented | 
| Method | delete_scenario_resource | 
    Undocumented | 
| Method | get_scenario_actions_list | 
    Undocumented | 
| Method | get_scenario_action | 
    Undocumented | 
| Method | start_reven_session | 
    Undocumented | 
| Method | connect | 
    Use this method in a `with` pattern to get a `RevenServer` instance connected to the specified scenario name. | 
| Instance Variable | _url | 
    Undocumented | 
| Static Method | _init_url | 
    Undocumented | 
| Method | _do_request | 
    Undocumented | 
| Method | _request | 
    Undocumented | 
Undocumented
Use this method in a `with` pattern to get a `RevenServer` instance connected to the specified scenario name.
This avoids having to use port numbers to connect to a server.
A new server will be started if there is no server for this scenario. If ephemeral is set to True (the default) and a new server is started by this call, then disposing of the connection will stop the server.
>>> # Using the 'with' syntax >>> with pm.connect("ddref") as server: ... print(server.trace.transition_count)
>>> # From the command line, it can be easier to do: >>> connection = Connection(pm, "ddref") >>> server = connection.server >>> print(server.trace.transition_count) >>> connection.disconnect() # to stop the server if we started it
>>> # If you want to keep the server >>> host = None >>> port = None >>> with pm.connect("ddref", ephemeral=False) as server: ... # save the port for later use ... host = server.host ... port = server.port ... # The REVEN server is still accessible here ... server = reven2.RevenServer(host, port) ... print(server.trace.transition_count)