.gitignore
.gitlab-ci.yml
.pre-commit-config.yaml
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.rst
COPYRIGHT.md
DISCLAIMER.md
LICENSE
NOTICE
README.rst
SECURITY.md
install.sh
provision_env.sh
pyproject.toml
tox.ini
.github/dependabot.yml
.github/pull_request_template.md
.github/release-drafter.yml
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/feature_request.md
.github/actions/prepare-discovery/action.yml
.github/actions/prepare-firewheel/action.yml
.github/actions/prepare-minimega/action.yml
.github/actions/prepare-tox/action.yml
.github/workflows/docker.yml
.github/workflows/documentation.yml
.github/workflows/linting.yml
.github/workflows/pr-title-checker.yml
.github/workflows/python-publish.yml
.github/workflows/release-drafter.yml
.github/workflows/testing.yml
.github/workflows/update-changelog.yml
.github/workflows/update-major-version.yml
.gitlab/ci/setup.yml
docker/README.md
docker/firewheel.dockerfile
docker/fsroot/start-minimega.sh
docker/fsroot/etc/default/minimega
docker/fsroot/root/.tmux.conf
docker/fsroot/usr/bin/chgrp
docker/fsroot/usr/bin/sudo
docker/fsroot/usr/local/bin/entry
docs/Makefile
docs/make.bat
docs/source/cheat_sheet.rst
docs/source/conf.py
docs/source/emulytics.rst
docs/source/glossary.rst
docs/source/index.rst
docs/source/quickstart.rst
docs/source/spelling_names.txt
docs/source/spelling_wordlist.txt
docs/source/_static/FIREWHEEL_Cheat_Sheet_final.pdf
docs/source/_static/favicon.ico
docs/source/_static/logo.png
docs/source/_static/logo_horizontal.png
docs/source/_static/proto_doc.html
docs/source/_static/theme_overrides.css
docs/source/cli/commands.rst
docs/source/cli/helper_docs.rst
docs/source/cli/index.rst
docs/source/developer/changelog.md
docs/source/developer/cli_extension.rst
docs/source/developer/code_of_conduct.md
docs/source/developer/contributing.rst
docs/source/developer/git-lfs.rst
docs/source/developer/index.rst
docs/source/developer/license.md
docs/source/developer/security.md
docs/source/developer/code/cli.rst
docs/source/developer/code/config.rst
docs/source/developer/code/control.rst
docs/source/developer/code/index.rst
docs/source/developer/code/lib.rst
docs/source/developer/code/vm_resource_manager.rst
docs/source/install/configuration.rst
docs/source/install/docker.md
docs/source/install/index.rst
docs/source/install/install.rst
docs/source/install/prereqs.rst
docs/source/install/prereqs/dependencies.rst
docs/source/install/prereqs/git.rst
docs/source/install/prereqs/minimega.rst
docs/source/install/prereqs/pip-dependencies.rst
docs/source/install/prereqs/ssh_keys.rst
docs/source/install/prereqs/sudo.rst
docs/source/local_inventories/clustershell_objects.inv
docs/source/local_inventories/netaddr_objects.inv
docs/source/local_inventories/networkx_objects.inv
docs/source/local_inventories/python3_objects.inv
docs/source/local_inventories/rich_objects.inv
docs/source/system/Firewheel 2.0 Software Architecture.pptx
docs/source/system/architecture.rst
docs/source/system/classes.png
docs/source/system/cli_design.rst
docs/source/system/diagrams.rst
docs/source/system/fw20_sw_arch.png
docs/source/system/index.rst
docs/source/system/infrastructure.rst
docs/source/system/objectives.rst
docs/source/system/packages.png
docs/source/system/physical_schedule.png
docs/source/system/security.rst
docs/source/system/simple_experiment_topology.png
docs/source/system/model_component/dependencies.rst
docs/source/system/model_component/fw2_model_components_repo.vsdx
docs/source/system/model_component/fw_repo.png
docs/source/system/model_component/index.rst
docs/source/system/model_component/mc_examples.rst
docs/source/system/model_component/mc_install.rst
docs/source/system/model_component/model_component.rst
docs/source/system/model_component/repository.rst
docs/source/system/vm_resource_manager/0001-Allow-exceed-processes-to-ret-data-on-every-status.patch
docs/source/system/vm_resource_manager/index.rst
docs/source/system/vm_resource_manager/qga.rst
docs/source/system/vm_resource_manager/qga_patch.rst
docs/source/system/vm_resource_manager/vm_resource_handler.rst
docs/source/system/vm_resource_manager/vmr_in_experiment.rst
docs/source/system/vm_resource_manager/vmr_schedule.rst
docs/source/tutorials/acme.rst
docs/source/tutorials/bios.rst
docs/source/tutorials/image.rst
docs/source/tutorials/index.rst
docs/source/tutorials/install_file.rst
docs/source/tutorials/offline_resources.rst
docs/source/tutorials/router_tree.png
docs/source/tutorials/router_tree.rst
docs/source/tutorials/router_tree_diag.py
docs/source/tutorials/simple_server.rst
docs/source/tutorials/tap.rst
docs/source/tutorials/vm_builder.rst
docs/source/tutorials/acme/acme_complexity.rst
docs/source/tutorials/acme/acme_diag.py
docs/source/tutorials/acme/acme_manifest.rst
docs/source/tutorials/acme/acme_topology.png
docs/source/tutorials/acme/acme_topology.rst
docs/source/tutorials/acme/acme_vm_configuration.rst
docs/source/tutorials/acme/network_topology.png
docs/source/tutorials/acme/running_acme_topology.rst
docs/source/tutorials/image/building_from_iso.rst
docs/source/tutorials/image/creating_model_component.rst
docs/source/tutorials/image/optimizing_image_size.rst
docs/source/tutorials/image/troubleshooting_images.rst
docs/source/tutorials/images/bios-after.png
docs/source/tutorials/images/bios-before.png
docs/source/tutorials/images/inaccessible_boot_device.png
docs/source/tutorials/images/no_bootable_device.png
docs/source/tutorials/images/ubuntu_offline_1.png
docs/source/tutorials/images/ubuntu_offline_2.png
docs/source/tutorials/images/ubuntu_offline_3.png
docs/source/tutorials/images/ubuntu_offline_4.png
docs/source/tutorials/images/ubuntu_offline_5.png
docs/source/tutorials/offline/centos_offline.inc
docs/source/tutorials/offline/ubuntu_offline.inc
docs/source/tutorials/simple_server/adding_topological_complexity.rst
docs/source/tutorials/simple_server/manual_interaction.rst
docs/source/tutorials/simple_server/simple_server_diag.py
docs/source/tutorials/simple_server/simple_server_manifest.rst
docs/source/tutorials/simple_server/simple_server_topology.rst
docs/source/tutorials/simple_server/testing_connectivity.rst
docs/source/tutorials/simple_server/using_elk.rst
docs/source/tutorials/simple_server/vm_configuration.rst
docs/source/tutorials/simple_server/vmr_debugging.rst
docs/source/tutorials/simple_server/images/client-search.png
docs/source/tutorials/simple_server/images/client_json_log.png
docs/source/tutorials/simple_server/images/connect_to_client0.png
docs/source/tutorials/simple_server/images/connector_connection.png
docs/source/tutorials/simple_server/images/connector_tcpdump.png
docs/source/tutorials/simple_server/images/ping-server-ip.png
docs/source/tutorials/simple_server/images/ping_from_client_to_server.png
docs/source/tutorials/simple_server/images/simple_server_complex_topology.png
docs/source/tutorials/simple_server/images/simple_server_tap_topology.png
docs/source/tutorials/simple_server/images/simple_server_topology.png
docs/source/tutorials/simple_server/images/simple_server_vmr_compress.png
docs/source/tutorials/simple_server/images/simple_server_vmr_compress_fixed.png
docs/source/tutorials/simple_server/images/simple_server_vmr_tested.png
docs/source/tutorials/simple_server/images/updated_dashboard.png
docs/source/tutorials/simple_server/notebooks/.gitkeep
docs/source/tutorials/simple_server/notebooks/simple_server_jupyter.ipynb
src/firewheel/__init__.py
src/firewheel.egg-info/PKG-INFO
src/firewheel.egg-info/SOURCES.txt
src/firewheel.egg-info/dependency_links.txt
src/firewheel.egg-info/entry_points.txt
src/firewheel.egg-info/requires.txt
src/firewheel.egg-info/top_level.txt
src/firewheel/cli/__init__.py
src/firewheel/cli/configure_firewheel.py
src/firewheel/cli/executable_section.py
src/firewheel/cli/firewheel_cli.py
src/firewheel/cli/helper.py
src/firewheel/cli/helper_group.py
src/firewheel/cli/host_accessor.py
src/firewheel/cli/init_firewheel.py
src/firewheel/cli/section.py
src/firewheel/cli/ssh_manager.py
src/firewheel/cli/utils.py
src/firewheel/cli/completion/__init__.py
src/firewheel/cli/completion/actions.py
src/firewheel/cli/completion/completion-template.sh
src/firewheel/cli/completion/get_available_cli_commands.py
src/firewheel/cli/completion/get_model_component_names.py
src/firewheel/cli/completion/get_total_model_components_size.py
src/firewheel/cli/completion/prepare_completion_script.py
src/firewheel/cli/executors/__init__.py
src/firewheel/cli/executors/abstract_executor.py
src/firewheel/cli/executors/helpers.py
src/firewheel/cli/executors/local_python.py
src/firewheel/cli/executors/python.py
src/firewheel/cli/executors/shell.py
src/firewheel/cli/helpers/experiment
src/firewheel/cli/helpers/scp
src/firewheel/cli/helpers/ssh
src/firewheel/cli/helpers/start
src/firewheel/cli/helpers/status
src/firewheel/cli/helpers/time
src/firewheel/cli/helpers/example_helpers/pytest
src/firewheel/cli/helpers/example_helpers/test
src/firewheel/cli/helpers/example_helpers/subgroup/index
src/firewheel/cli/helpers/example_helpers/subgroup/test
src/firewheel/cli/helpers/mc/dep_graph
src/firewheel/cli/helpers/mc/generate
src/firewheel/cli/helpers/mc/list
src/firewheel/cli/helpers/mm/clean_bridge
src/firewheel/cli/helpers/mm/clear_cache
src/firewheel/cli/helpers/mm/flush_locks
src/firewheel/cli/helpers/mm/make_bridge
src/firewheel/cli/helpers/mm/mesh
src/firewheel/cli/helpers/mm/show_caches
src/firewheel/cli/helpers/pull/file
src/firewheel/cli/helpers/push/file
src/firewheel/cli/helpers/repository/install
src/firewheel/cli/helpers/repository/list
src/firewheel/cli/helpers/repository/uninstall
src/firewheel/cli/helpers/restart/experiment
src/firewheel/cli/helpers/restart/hard
src/firewheel/cli/helpers/restart/index
src/firewheel/cli/helpers/stop/hard
src/firewheel/cli/helpers/stop/index
src/firewheel/cli/helpers/test/all
src/firewheel/cli/helpers/test/functional
src/firewheel/cli/helpers/test/index
src/firewheel/cli/helpers/test/unit
src/firewheel/cli/helpers/tmux/cluster
src/firewheel/cli/helpers/tshoot/check_nics
src/firewheel/cli/helpers/tshoot/diskspace
src/firewheel/cli/helpers/tshoot/index
src/firewheel/cli/helpers/tshoot/mtu
src/firewheel/cli/helpers/vm/builder
src/firewheel/cli/helpers/vm/list
src/firewheel/cli/helpers/vm/log
src/firewheel/cli/helpers/vm/mix
src/firewheel/cli/helpers/vm/resume
src/firewheel/config/__init__.py
src/firewheel/config/_config.py
src/firewheel/config/config-template.yaml
src/firewheel/control/__init__.py
src/firewheel/control/dependency_graph.py
src/firewheel/control/experiment_graph.py
src/firewheel/control/image_store.py
src/firewheel/control/model_component.py
src/firewheel/control/model_component_dependency_graph.py
src/firewheel/control/model_component_exceptions.py
src/firewheel/control/model_component_install.py
src/firewheel/control/model_component_iterator.py
src/firewheel/control/model_component_manager.py
src/firewheel/control/model_component_path_iterator.py
src/firewheel/control/repository_db.py
src/firewheel/control/ansible_playbooks/main.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/check_and_end.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/git.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/git_clone_loop.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/s3.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/s3_pull_loop.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/url.yml
src/firewheel/control/ansible_playbooks/roles/firewheel/tasks/url_pull_loop.yml
src/firewheel/control/utils/__init__.py
src/firewheel/control/utils/new_model_component.py
src/firewheel/control/utils/paths.py
src/firewheel/control/utils/vm_builder.py
src/firewheel/control/utils/templates/README.rst.template
src/firewheel/control/utils/templates/model_component_objects.py.template
src/firewheel/control/utils/templates/plugin.py.template
src/firewheel/control/utils/templates/tasks.yml.j2
src/firewheel/control/utils/templates/vars.yml.j2
src/firewheel/lib/__init__.py
src/firewheel/lib/log.py
src/firewheel/lib/utilities.py
src/firewheel/lib/discovery/__init__.py
src/firewheel/lib/discovery/api.py
src/firewheel/lib/grpc/__init__.py
src/firewheel/lib/grpc/firewheel_grpc.proto
src/firewheel/lib/grpc/firewheel_grpc_client.py
src/firewheel/lib/grpc/firewheel_grpc_pb2.py
src/firewheel/lib/grpc/firewheel_grpc_pb2.pyi
src/firewheel/lib/grpc/firewheel_grpc_pb2_grpc.py
src/firewheel/lib/grpc/firewheel_grpc_resources.py
src/firewheel/lib/grpc/firewheel_grpc_server.py
src/firewheel/lib/minimega/__init__.py
src/firewheel/lib/minimega/api.py
src/firewheel/lib/minimega/file_store.py
src/firewheel/tests/__init__.py
src/firewheel/tests/conftest.py
src/firewheel/tests/functional/__init__.py
src/firewheel/tests/functional/check_times_testcase.py
src/firewheel/tests/functional/common.py
src/firewheel/tests/functional/minimal_testcase.py
src/firewheel/tests/functional/network_testcase.py
src/firewheel/tests/functional/qos_testcase.py
src/firewheel/tests/functional/reboot_testcase.py
src/firewheel/tests/functional/router_tree_testcase.py
src/firewheel/tests/functional/run_functional_tests.py
src/firewheel/tests/functional/verifier.py
src/firewheel/tests/functional/vm_resource_testcase.py
src/firewheel/tests/functional/windows_router_tree_testcase.py
src/firewheel/tests/functional/windows_vm_resource_testcase.py
src/firewheel/tests/unit/__init__.py
src/firewheel/tests/unit/conftest.py
src/firewheel/tests/unit/test_utils.py
src/firewheel/tests/unit/cli/test_cli.py
src/firewheel/tests/unit/cli/test_cli_completion.py
src/firewheel/tests/unit/cli/test_cli_configure.py
src/firewheel/tests/unit/cli/test_cli_executable_section.py
src/firewheel/tests/unit/cli/test_cli_executors.py
src/firewheel/tests/unit/cli/test_cli_helper.py
src/firewheel/tests/unit/cli/test_cli_helper_group.py
src/firewheel/tests/unit/cli/test_cli_init.py
src/firewheel/tests/unit/cli/test_cli_section.py
src/firewheel/tests/unit/cli/test_cli_utils.py
src/firewheel/tests/unit/cli/test_ssh_manager.py
src/firewheel/tests/unit/control/test_dependency_graph.py
src/firewheel/tests/unit/control/test_experiment_graph.py
src/firewheel/tests/unit/control/test_experiment_graph_decorable.py
src/firewheel/tests/unit/control/test_experiment_graph_decorator_conflict_handlers.py
src/firewheel/tests/unit/control/test_experiment_graph_edge.py
src/firewheel/tests/unit/control/test_experiment_graph_edge_iterator.py
src/firewheel/tests/unit/control/test_experiment_graph_vertex.py
src/firewheel/tests/unit/control/test_experiment_graph_vertex_iterator.py
src/firewheel/tests/unit/control/test_external_order.py
src/firewheel/tests/unit/control/test_graph_object_depends.py
src/firewheel/tests/unit/control/test_graph_object_load.py
src/firewheel/tests/unit/control/test_graph_object_recursive_depends.py
src/firewheel/tests/unit/control/test_mcm_circular_dependency.py
src/firewheel/tests/unit/control/test_mcm_defaults.py
src/firewheel/tests/unit/control/test_mcm_dependency_graph.py
src/firewheel/tests/unit/control/test_mcm_experiment_graph.py
src/firewheel/tests/unit/control/test_mcm_precedes.py
src/firewheel/tests/unit/control/test_mcm_process_model_component.py
src/firewheel/tests/unit/control/test_mcm_recursive_mc_depends.py
src/firewheel/tests/unit/control/test_model_component.py
src/firewheel/tests/unit/control/test_model_component_dependency_graph.py
src/firewheel/tests/unit/control/test_model_component_generator.py
src/firewheel/tests/unit/control/test_model_component_image_upload.py
src/firewheel/tests/unit/control/test_model_component_install.py
src/firewheel/tests/unit/control/test_model_component_iterator.py
src/firewheel/tests/unit/control/test_model_component_path_iterator.py
src/firewheel/tests/unit/control/test_model_component_vm_resource_upload.py
src/firewheel/tests/unit/control/test_performance.py
src/firewheel/tests/unit/control/test_plugin_arguments.py
src/firewheel/tests/unit/control/test_plugin_load.py
src/firewheel/tests/unit/control/test_python_module.py
src/firewheel/tests/unit/control/test_repository_db.py
src/firewheel/tests/unit/control/test_require_class.py
src/firewheel/tests/unit/control/test_utils_testcase.py
src/firewheel/tests/unit/vrm/test_drivers.py
src/firewheel/tests/unit/vrm/test_experiment_start.py
src/firewheel/tests/unit/vrm/test_schedule_db.py
src/firewheel/tests/unit/vrm/test_vm_mapping.py
src/firewheel/tests/unit/vrm/test_vm_resource_handler.py
src/firewheel/tests/unit/vrm/test_vm_resource_store.py
src/firewheel/tests/unit/vrm/test_vrm_api.py
src/firewheel/tests/unit/vrm/test_vrm_utils.py
src/firewheel/vm_resource_manager/__init__.py
src/firewheel/vm_resource_manager/abstract_driver.py
src/firewheel/vm_resource_manager/api.py
src/firewheel/vm_resource_manager/experiment_start.py
src/firewheel/vm_resource_manager/schedule_db.py
src/firewheel/vm_resource_manager/schedule_entry.py
src/firewheel/vm_resource_manager/schedule_event.py
src/firewheel/vm_resource_manager/schedule_updater.py
src/firewheel/vm_resource_manager/utils.py
src/firewheel/vm_resource_manager/vm_mapping.py
src/firewheel/vm_resource_manager/vm_resource_handler.py
src/firewheel/vm_resource_manager/vm_resource_store.py
src/firewheel/vm_resource_manager/drivers/__init__.py
src/firewheel/vm_resource_manager/drivers/qemu_guest_agent_driver.py