isar 1.12.4__tar.gz → 1.12.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of isar might be problematic. Click here for more details.
- {isar-1.12.4 → isar-1.12.5}/PKG-INFO +1 -1
- {isar-1.12.4 → isar-1.12.5}/main.py +8 -3
- {isar-1.12.4 → isar-1.12.5}/radixconfig.yml +1 -1
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/api.py +6 -7
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/security/authentication.py +3 -5
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/settings.py +9 -5
- {isar-1.12.4 → isar-1.12.5}/src/isar.egg-info/PKG-INFO +1 -1
- {isar-1.12.4 → isar-1.12.5}/.dockerignore +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/ISSUE_TEMPLATE/improvement.md +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/release.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/project_automations.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/publish_isar_base_image.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/pythonpackage.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/pythonpublish.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/repository_dispatch_on_merge.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.github/workflows/stale.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/.gitignore +0 -0
- {isar-1.12.4 → isar-1.12.5}/.pre-commit-config.yaml +0 -0
- {isar-1.12.4 → isar-1.12.5}/Dockerfile +0 -0
- {isar-1.12.4 → isar-1.12.5}/LICENSE +0 -0
- {isar-1.12.4 → isar-1.12.5}/README.md +0 -0
- {isar-1.12.4 → isar-1.12.5}/docker-compose-turtlebot.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/docker-compose.yml +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/Makefile +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/make.bat +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/rst_processing.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/source/conf.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/source/index.rst +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/source/readme_link.md +0 -0
- {isar-1.12.4 → isar-1.12.5}/docs/state_machine_diagram.png +0 -0
- {isar-1.12.4 → isar-1.12.5}/pyproject.toml +0 -0
- {isar-1.12.4 → isar-1.12.5}/setup.cfg +0 -0
- {isar-1.12.4 → isar-1.12.5}/setup.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/models/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/models/models.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/models/start_mission_definition.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/schedule/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/schedule/scheduling_controller.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/apis/security/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/certs/ca-cert.pem +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/configuration_error.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/keyvault/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/keyvault/keyvault_error.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/keyvault/keyvault_service.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/log.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/logging.conf +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/JSP1_intermediate_deck.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/JSP1_weather_deck.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/default_map.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/klab_b.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/klab_compressor.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/klab_turtlebot.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/maps/turtleworld.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_mission_definition/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_mission_definition/default_mission.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_mission_definition/default_turtlebot.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_missions/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_missions/default.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_missions/default_turtlebot.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_poses/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_poses/predefined_poses.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/config/settings.env +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/echo_planner.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/local_planner.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/mission_planner_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/sequential_task_selector.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/mission_planner/task_selector_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/message.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/queues/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/queues/queue_io.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/queues/queue_timeout_error.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/queues/queues.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/communication/queues/status_queue.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/mission/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/mission/mission.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/mission/status.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/mission_metadata/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/models/mission_metadata/mission_metadata.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/modules.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/auth/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/auth/azure_credentials.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/readers/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/readers/base_reader.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/mqtt_client.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/robot_info_publisher.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/robot_status_publisher.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/request_handler.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/stid/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/stid/stid_service.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/utilities/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/utilities/queue_utilities.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/utilities/scheduling_utilities.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/services/utilities/threaded_request.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/state_machine.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/idle.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/initialize.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/initiate_step.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/monitor.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/off.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/paused.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states/stop_step.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/state_machine/states_enum.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/blob_storage.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/local_storage.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/slimm_storage.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/storage_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/uploader.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar/storage/utilities.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar.egg-info/SOURCES.txt +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar.egg-info/dependency_links.txt +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar.egg-info/requires.txt +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/isar.egg-info/top_level.txt +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/exceptions/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/exceptions/robot_exceptions.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/initialize/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/initialize/initialize_params.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/inspection/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/inspection/inspection.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/mission/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/mission/status.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/mission/step.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/robots/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/models/robots/robot_model.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/robot_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/telemetry/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/telemetry/mqtt_client.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/telemetry/payloads.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/test_robot_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/utilities/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/src/robot_interface/utilities/json_service.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/conftest.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/config/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/config/maps/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/config/maps/turtleworld.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/config/missions/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/config/missions/default.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/integration/turtlebot/test_successful_mission.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/apis/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/apis/scheduler/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/apis/scheduler/test_scheduler_router.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/apis/security/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/apis/security/test_authentication.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/models/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/models/communication/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/models/communication/test_queues.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/readers/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/readers/test_base_reader.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/readers/test_mission_reader.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/echo/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/echo/test_echo_service.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/stid/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/stid/test_stid_service.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/test_base_request_handler.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/utilities/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/utilities/test_queue_utilities.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/services/utilities/test_scheduling_utilities.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/state_machine/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/state_machine/states/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/state_machine/states/test_monitor.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/state_machine/test_state_machine.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/storage/test_blob_storage.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/isar/storage/test_uploader.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/__init__.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/blob_storage.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/mission_definition.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/mqtt_client.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/pose.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/request.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/robot_interface.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/status.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/step.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/task.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/mocks/token.py +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_json_file.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_map_config/test_map_config.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_mission_not_working.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_mission_working.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_mission_working_no_tasks.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_data/test_thermal_image_mission.json +0 -0
- {isar-1.12.4 → isar-1.12.5}/tests/test_modules.py +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import os
|
|
3
|
+
import time
|
|
2
4
|
from logging import Logger
|
|
3
5
|
from threading import Thread
|
|
4
6
|
from typing import List
|
|
@@ -93,6 +95,9 @@ if __name__ == "__main__":
|
|
|
93
95
|
thread.start()
|
|
94
96
|
logger.info(f"Started thread: {thread.name}")
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
thread
|
|
98
|
-
|
|
98
|
+
while True:
|
|
99
|
+
for thread in threads:
|
|
100
|
+
if not thread.is_alive():
|
|
101
|
+
logger.critical("Thread '%s' failed - ISAR shutting down", thread.name)
|
|
102
|
+
exit(1)
|
|
103
|
+
time.sleep(state_machine.sleep_time)
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import os
|
|
2
3
|
from http import HTTPStatus
|
|
3
4
|
from logging import Logger
|
|
4
|
-
import os
|
|
5
5
|
from typing import List, Union
|
|
6
6
|
|
|
7
7
|
import click
|
|
8
8
|
import uvicorn
|
|
9
|
-
from fastapi import FastAPI,
|
|
9
|
+
from fastapi import FastAPI, Request, Security
|
|
10
10
|
from fastapi.middleware.cors import CORSMiddleware
|
|
11
11
|
from fastapi.routing import APIRouter
|
|
12
12
|
from injector import inject
|
|
13
|
-
from pydantic import AnyHttpUrl
|
|
14
|
-
|
|
15
13
|
from opencensus.ext.azure.trace_exporter import AzureExporter
|
|
14
|
+
from opencensus.trace.attributes_helper import COMMON_ATTRIBUTES
|
|
16
15
|
from opencensus.trace.samplers import ProbabilitySampler
|
|
17
|
-
from opencensus.trace.tracer import Tracer
|
|
18
16
|
from opencensus.trace.span import SpanKind
|
|
19
|
-
from opencensus.trace.
|
|
17
|
+
from opencensus.trace.tracer import Tracer
|
|
18
|
+
from pydantic import AnyHttpUrl
|
|
20
19
|
|
|
21
20
|
from isar.apis.models.models import ControlMissionResponse, StartMissionResponse
|
|
22
21
|
from isar.apis.schedule.scheduling_controller import SchedulingController
|
|
@@ -76,7 +75,7 @@ class API:
|
|
|
76
75
|
swagger_ui_oauth2_redirect_url="/oauth2-redirect",
|
|
77
76
|
swagger_ui_init_oauth={
|
|
78
77
|
"usePkceWithAuthorizationCodeGrant": True,
|
|
79
|
-
"clientId":
|
|
78
|
+
"clientId": settings.AZURE_CLIENT_ID,
|
|
80
79
|
},
|
|
81
80
|
)
|
|
82
81
|
|
|
@@ -21,10 +21,10 @@ class NoSecurity(SecurityBase):
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
azure_scheme = SingleTenantAzureAuthorizationCodeBearer(
|
|
24
|
-
app_client_id=settings.
|
|
24
|
+
app_client_id=settings.AZURE_CLIENT_ID,
|
|
25
25
|
tenant_id=settings.AZURE_TENANT_ID,
|
|
26
26
|
scopes={
|
|
27
|
-
f"api://{settings.
|
|
27
|
+
f"api://{settings.AZURE_CLIENT_ID}/user_impersonation": "user_impersonation",
|
|
28
28
|
},
|
|
29
29
|
)
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ azure_scheme = SingleTenantAzureAuthorizationCodeBearer(
|
|
|
32
32
|
async def validate_has_role(user: User = Depends(azure_scheme)) -> None:
|
|
33
33
|
"""
|
|
34
34
|
Validate if the user has the required role in order to access the API.
|
|
35
|
-
Raises a
|
|
35
|
+
Raises a 403 authorization error if not.
|
|
36
36
|
"""
|
|
37
37
|
if settings.REQUIRED_ROLE not in user.roles:
|
|
38
38
|
raise InvalidAuth(
|
|
@@ -43,11 +43,9 @@ async def validate_has_role(user: User = Depends(azure_scheme)) -> None:
|
|
|
43
43
|
class Authenticator:
|
|
44
44
|
def __init__(
|
|
45
45
|
self,
|
|
46
|
-
openapi_client_id: str = settings.OPENAPI_CLIENT_ID,
|
|
47
46
|
authentication_enabled: bool = settings.AUTHENTICATION_ENABLED,
|
|
48
47
|
) -> None:
|
|
49
48
|
self.logger = logging.getLogger("api")
|
|
50
|
-
self.openapi_client_id: str = openapi_client_id
|
|
51
49
|
self.authentication_enabled: bool = authentication_enabled
|
|
52
50
|
enabled_string = "enabled" if self.authentication_enabled else "disabled"
|
|
53
51
|
self.logger.info(f"API authentication is {enabled_string}")
|
|
@@ -101,11 +101,15 @@ class Settings(BaseSettings):
|
|
|
101
101
|
# Tenant ID for the Azure tenant with your Azure Active Directory application
|
|
102
102
|
AZURE_TENANT_ID: str = Field(default="3aa4a235-b6e2-48d5-9195-7fcf05b459b0")
|
|
103
103
|
|
|
104
|
-
# Client ID for
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
#
|
|
108
|
-
|
|
104
|
+
# Client ID for ISAR
|
|
105
|
+
AZURE_CLIENT_ID: str = Field(default="fd384acd-5c1b-4c44-a1ac-d41d720ed0fe")
|
|
106
|
+
# If AZURE_CLIENT_ID is set as an environment variable, overwrite this despite missing prefix.
|
|
107
|
+
# This is done to avoid double config of ISAR_AZURE_CLIENT_ID and AZURE_CLIENT_ID.
|
|
108
|
+
# We need the latter as an environment variable for the EnvironmentCredential method for AzureAD.
|
|
109
|
+
azure_client_id_name: str = "AZURE_CLIENT_ID"
|
|
110
|
+
if os.environ.get(azure_client_id_name) is not None:
|
|
111
|
+
print("Using environment variable for AZURE_CLIENT_ID")
|
|
112
|
+
AZURE_CLIENT_ID = os.environ[azure_client_id_name]
|
|
109
113
|
|
|
110
114
|
# MQTT username
|
|
111
115
|
# The username and password is set by the MQTT broker and must be known in advance
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_mission_definition/default_mission.json
RENAMED
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/src/isar/config/predefined_mission_definition/default_turtlebot.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/robot_info_publisher.py
RENAMED
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/src/isar/services/service_connections/mqtt/robot_status_publisher.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/echo/test_echo_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/stid/test_stid_service.py
RENAMED
|
File without changes
|
{isar-1.12.4 → isar-1.12.5}/tests/isar/services/service_connections/test_base_request_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|