opengris-scaler 1.12.8__tar.gz → 1.12.9__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 opengris-scaler might be problematic. Click here for more details.
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/PKG-INFO +1 -1
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.cpp +11 -4
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.h +3 -2
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/pymod_object_storage_server.cpp +13 -2
- opengris_scaler-1.12.9/scaler/version.txt +1 -0
- opengris_scaler-1.12.9/tests/test_cluster_config.py +49 -0
- opengris_scaler-1.12.9/tests/test_config_types.py +50 -0
- opengris_scaler-1.12.8/tests/test_config.py → opengris_scaler-1.12.9/tests/test_scheduler_config.py +1 -85
- opengris_scaler-1.12.8/scaler/version.txt +0 -1
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.clang-format +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-compile/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-download/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-install/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/compile-libraries/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/create-artifacts/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/harden-check/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/publish-doc/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/run-linter/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/run-test/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/setup-env/action.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/dependabot.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/build-and-test.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/codeql.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/dependency-review.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/publish-artifact.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/publish-documentation.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/scorecard.yml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.gitignore +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/CMakePresets.json +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/CONTRIBUTING.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/LICENSE +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/LICENSE.spdx +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/NOTICE +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/README.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/benchmarks/dask_local_test.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/benchmarks/dask_remote_test.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/benchmarks/scaler_test.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/.gitignore +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/Makefile +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/make.bat +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/requirements_docs.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/_static/style.css +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/_templates/layout.html +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/conf.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/index.rst +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/configuration.rst +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/examples.rst +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/features.rst +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/images/architecture.png +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/quickstart.rst +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/downloaded/capnproto-c++-1.1.0.tar.gz +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/downloaded_data.csv +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/implied_volatility.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/pillow.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/requirements_applications.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/timeseries.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/yfinance_historical_price.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/automated_echo_client.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/echo_client.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/echo_server.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/pingpong.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/pub_server.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/remove_iosocket.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/sub_client.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/timestamp.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/disconnect_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/graphtask_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/graphtask_nested_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/images/cat_1.jpg +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/images/cat_2.jpg +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/map_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/nested_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/readme.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/send_object_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/simple_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/task_capabilities.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/pyproject.toml +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/renovate.json +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_cluster.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_object_storage_server.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_scheduler.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_top.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_webui.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_worker_adapter_native.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/run_worker_adapter_symphony.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/about.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/client_agent.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/disconnect_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/future_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/object_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/agent/task_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/future.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/object_buffer.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/object_reference.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/serializer/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/serializer/default.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/client/serializer/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/cluster/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/cluster/cluster.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/cluster/combo.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/cluster/object_storage_server.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/cluster/scheduler.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/defaults.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/loader.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/cluster.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/native_worker_adapter.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/object_storage_server.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/scheduler.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/symphony_worker_adapter.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/top.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/webui.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/types/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/types/object_storage_server.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/types/worker.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/types/zmq.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/cluster.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/object_storage_server.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/scheduler.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/top.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/webui.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/worker_adapter_native.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/entry_points/worker_adapter_symphony.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/async_binder.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/async_connector.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/async_object_storage_connector.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/sync_connector.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/sync_object_storage_connector.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/sync_subscriber.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/utility.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/_ymq.pyi +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/bytes.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/common.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/configuration.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/epoll_context.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/epoll_context.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/error.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop_thread.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop_thread.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/event_manager.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/interruptive_concurrent_queue.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/io_context.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/io_context.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/io_socket.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/io_socket.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/iocp_context.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/iocp_context.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/logging.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/message.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection_tcp.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection_tcp.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/network_utils.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/bytes.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/exception.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/gil.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/io_context.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/io_socket.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/message.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/python.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/ymq.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/ymq.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/readme.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/simple_interface.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/simple_interface.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_client.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_client.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_operations.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_server.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_server.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/third_party/concurrentqueue.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/timed_queue.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/timestamp.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/typedefs.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/utils.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/io/ymq/ymq.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/constants.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/defs.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/io_helper.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/io_helper.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/message.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/message.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_manager.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_manager.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/_python.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/common.capnp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/message.capnp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/object_storage.capnp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/capnp/status.capnp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/introduction.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/common.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/message.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/object_storage.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/python/status.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/protocol/worker.md +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/allocate_policy.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/capability_allocate_policy.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/even_load_allocate_policy.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/balance_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/client_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/config_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/graph_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/information_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/object_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/scaling_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/task_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/worker_controller.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/object_usage/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/object_usage/object_tracker.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/scheduler.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/task/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/task/task_state_machine.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/scheduler/task/task_state_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/constants.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/live_display.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/memory_window.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/setting_page.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/task_graph.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/task_log.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/utility.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/webui.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/ui/worker_processors.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/debug.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/event_list.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/event_loop.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/exceptions.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/formatter.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/graph/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/graph/optimization.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/graph/topological_sorter.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/graph/topological_sorter_graphblas.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/identifiers.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/logging/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/logging/decorators.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/logging/scoped_logger.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/logging/utility.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/many_to_many_dict.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/metadata/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/metadata/profile_result.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/metadata/task_flags.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/network_util.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/one_to_many_dict.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/queues/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/queues/async_indexed_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/queues/async_priority_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/queues/async_sorted_priority_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/queues/indexed_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/utility/serialization.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/mixins.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/object_cache.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/processor.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/streaming_buffer.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor_holder.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/processor_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/profiling_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/task_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/agent/timeout_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/preload.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker/worker.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/native.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/callback.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/message.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/task_manager.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/worker.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/worker_adapter.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scripts/build.sh +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scripts/library_tool.ps1 +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scripts/library_tool.sh +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scripts/test.sh +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/slides/Effortless Distributed Computing in Python - FOSDEM 2025.pdf +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/slides/OSFF 2025 London.pdf +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/object_storage/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/object_storage/test_object_manager.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/object_storage/test_object_storage_server.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/common.h +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/__init__.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/main.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/passthrough.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/randomly_drop_packets.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/send_rst_to_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/types.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/cpp/ymq/test_ymq.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/io/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/io/ymq/test_logging.cpp +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_async_indexed_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_async_priority_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_async_sorted_priority_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_balance.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_capabilities.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_capability_allocate_policy.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_client.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_cluster.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_cluster_disconnect.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_death_timeout.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_future.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_graph.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_indexed_queue.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_nested_task.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_object_usage.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_profiling.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_protected.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_scaling.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_serializer.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/test_ui.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/tests/utility.py +0 -0
- {opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/version.h.in +0 -0
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.cpp
RENAMED
|
@@ -29,7 +29,8 @@ void ObjectStorageServer::run(
|
|
|
29
29
|
ObjectStorageServer::Identity identity,
|
|
30
30
|
std::string log_level,
|
|
31
31
|
std::string log_format,
|
|
32
|
-
std::vector<std::string> log_paths
|
|
32
|
+
std::vector<std::string> log_paths,
|
|
33
|
+
std::function<bool()> running)
|
|
33
34
|
{
|
|
34
35
|
_logger = scaler::ymq::Logger(log_format, std::move(log_paths), scaler::ymq::Logger::stringToLogLevel(log_level));
|
|
35
36
|
|
|
@@ -44,7 +45,7 @@ void ObjectStorageServer::run(
|
|
|
44
45
|
|
|
45
46
|
_logger.log(scaler::ymq::Logger::LoggingLevel::info, "ObjectStorageServer: started");
|
|
46
47
|
|
|
47
|
-
processRequests();
|
|
48
|
+
processRequests(running);
|
|
48
49
|
|
|
49
50
|
_ioContext.removeIOSocket(_ioSocket);
|
|
50
51
|
} catch (const std::exception& e) {
|
|
@@ -117,7 +118,7 @@ void ObjectStorageServer::closeServerReadyFds()
|
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
void ObjectStorageServer::processRequests()
|
|
121
|
+
void ObjectStorageServer::processRequests(std::function<bool()> running)
|
|
121
122
|
{
|
|
122
123
|
using namespace std::chrono_literals;
|
|
123
124
|
Identity lastMessageIdentity;
|
|
@@ -134,7 +135,13 @@ void ObjectStorageServer::processRequests()
|
|
|
134
135
|
}
|
|
135
136
|
});
|
|
136
137
|
|
|
137
|
-
auto
|
|
138
|
+
auto maybeMessageFuture = ymq::futureRecvMessage(_ioSocket);
|
|
139
|
+
while (maybeMessageFuture.wait_for(100ms) == std::future_status::timeout) {
|
|
140
|
+
if (!running()) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
auto maybeMessage = maybeMessageFuture.get();
|
|
138
145
|
|
|
139
146
|
if (!maybeMessage) {
|
|
140
147
|
auto error = maybeMessage.error();
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.h
RENAMED
|
@@ -35,7 +35,8 @@ public:
|
|
|
35
35
|
Identity identity = "ObjectStorageServer",
|
|
36
36
|
std::string log_level = "INFO",
|
|
37
37
|
std::string log_format = "%(levelname)s: %(message)s",
|
|
38
|
-
std::vector<std::string> log_paths = {"/dev/stdout"}
|
|
38
|
+
std::vector<std::string> log_paths = {"/dev/stdout"},
|
|
39
|
+
std::function<bool()> running = []() { return true; });
|
|
39
40
|
|
|
40
41
|
void waitUntilReady();
|
|
41
42
|
|
|
@@ -78,7 +79,7 @@ private:
|
|
|
78
79
|
|
|
79
80
|
void closeServerReadyFds();
|
|
80
81
|
|
|
81
|
-
void processRequests();
|
|
82
|
+
void processRequests(std::function<bool()> stopCondition);
|
|
82
83
|
|
|
83
84
|
void processSetRequest(std::shared_ptr<Client> client, std::pair<ObjectRequestHeader, Bytes> request);
|
|
84
85
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#define PY_SSIZE_T_CLEAN
|
|
2
2
|
#include <Python.h>
|
|
3
|
+
#include <pyerrors.h>
|
|
3
4
|
|
|
5
|
+
#include "scaler/io/ymq/pymod_ymq/gil.h"
|
|
4
6
|
#include "scaler/object_storage/object_storage_server.h"
|
|
5
7
|
|
|
6
8
|
extern "C" {
|
|
@@ -52,10 +54,19 @@ static PyObject* PyObjectStorageServerRun(PyObject* self, PyObject* args)
|
|
|
52
54
|
logging_paths.push_back(PyUnicode_AsUTF8(path_obj));
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
auto running = []() -> bool {
|
|
58
|
+
AcquireGIL gil;
|
|
59
|
+
(void)gil;
|
|
60
|
+
return PyErr_CheckSignals() == 0;
|
|
61
|
+
};
|
|
62
|
+
|
|
55
63
|
((PyObjectStorageServer*)self)
|
|
56
|
-
->server.run(
|
|
64
|
+
->server.run(
|
|
65
|
+
addr, std::to_string(port), identity, log_level, log_format, std::move(logging_paths), std::move(running));
|
|
57
66
|
|
|
58
|
-
|
|
67
|
+
// TODO: Ideally, run should return a bool and we return failure with nullptr.
|
|
68
|
+
return nullptr;
|
|
69
|
+
// Py_RETURN_NONE;
|
|
59
70
|
}
|
|
60
71
|
|
|
61
72
|
static PyObject* PyObjectStorageServerWaitUntilReady(PyObject* self, [[maybe_unused]] PyObject* args)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.12.9
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import tempfile
|
|
3
|
+
import unittest
|
|
4
|
+
from argparse import Namespace
|
|
5
|
+
|
|
6
|
+
from scaler.config.loader import load_config
|
|
7
|
+
from scaler.config.section.cluster import ClusterConfig
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TestClusterConfig(unittest.TestCase):
|
|
11
|
+
"""Tests for the ClusterConfig class."""
|
|
12
|
+
|
|
13
|
+
def setUp(self):
|
|
14
|
+
self.temp_dir = tempfile.TemporaryDirectory()
|
|
15
|
+
self.config_path = os.path.join(self.temp_dir.name, "cluster.toml")
|
|
16
|
+
with open(self.config_path, "w") as f:
|
|
17
|
+
f.write(
|
|
18
|
+
"""
|
|
19
|
+
scheduler_address = "tcp://127.0.0.1:5555"
|
|
20
|
+
num_of_workers = 2
|
|
21
|
+
worker_names = "w1,w2"
|
|
22
|
+
"""
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
def tearDown(self):
|
|
26
|
+
self.temp_dir.cleanup()
|
|
27
|
+
|
|
28
|
+
def test_load_from_toml_only(self):
|
|
29
|
+
"""Test loading ClusterConfig from a flat TOML file."""
|
|
30
|
+
config = load_config(ClusterConfig, self.config_path, Namespace())
|
|
31
|
+
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
32
|
+
self.assertEqual(config.num_of_workers, 2)
|
|
33
|
+
self.assertEqual(config.worker_names.names, ["w1", "w2"])
|
|
34
|
+
|
|
35
|
+
def test_command_line_overrides_toml(self):
|
|
36
|
+
"""Test that argparse args correctly override TOML values for ClusterConfig."""
|
|
37
|
+
worker_list = [f"worker_{i}" for i in range(20)]
|
|
38
|
+
args = Namespace(num_of_workers=20, worker_names=",".join(worker_list), heartbeat_interval_seconds=99)
|
|
39
|
+
|
|
40
|
+
config = load_config(ClusterConfig, self.config_path, args)
|
|
41
|
+
|
|
42
|
+
self.assertEqual(config.num_of_workers, 20)
|
|
43
|
+
self.assertEqual(config.worker_names.names, worker_list)
|
|
44
|
+
self.assertEqual(config.heartbeat_interval_seconds, 99)
|
|
45
|
+
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
unittest.main()
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
|
|
3
|
+
from scaler.config.types.worker import WorkerCapabilities, WorkerNames
|
|
4
|
+
from scaler.config.types.zmq import ZMQConfig
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TestConfigTypes(unittest.TestCase):
|
|
8
|
+
"""Tests for individual ConfigType helper classes."""
|
|
9
|
+
|
|
10
|
+
def test_zmq_config_validation(self):
|
|
11
|
+
"""Test ZMQConfig.from_string raises ValueError for malformed strings."""
|
|
12
|
+
with self.assertRaises(ValueError):
|
|
13
|
+
ZMQConfig.from_string("this-is-not-a-valid-address")
|
|
14
|
+
with self.assertRaises(ValueError):
|
|
15
|
+
ZMQConfig.from_string("tcp://127.0.0.1")
|
|
16
|
+
with self.assertRaises(ValueError):
|
|
17
|
+
ZMQConfig.from_string("badprotocol://127.0.0.1:1234")
|
|
18
|
+
|
|
19
|
+
cfg = ZMQConfig.from_string("ipc://a-valid-path")
|
|
20
|
+
self.assertEqual(cfg.host, "a-valid-path")
|
|
21
|
+
|
|
22
|
+
def test_worker_names_config_value(self):
|
|
23
|
+
"""Test the WorkerNames ConfigType class."""
|
|
24
|
+
wn = WorkerNames.from_string(" worker1 , worker2 ")
|
|
25
|
+
self.assertEqual(wn.names, ["worker1", "worker2"])
|
|
26
|
+
self.assertEqual(str(wn), "worker1,worker2")
|
|
27
|
+
self.assertEqual(len(wn), 2)
|
|
28
|
+
wn_empty = WorkerNames.from_string("")
|
|
29
|
+
self.assertEqual(wn_empty.names, [])
|
|
30
|
+
|
|
31
|
+
def test_worker_capabilities_config_value(self):
|
|
32
|
+
"""Test the WorkerCapabilities ConfigType class."""
|
|
33
|
+
wc = WorkerCapabilities.from_string(" gpu=2, linux ")
|
|
34
|
+
self.assertEqual(wc.capabilities, {"gpu": 2, "linux": -1})
|
|
35
|
+
self.assertIn("gpu=2", str(wc))
|
|
36
|
+
self.assertIn("linux", str(wc))
|
|
37
|
+
|
|
38
|
+
def test_worker_capabilities_invalid_input(self):
|
|
39
|
+
"""Test that WorkerCapabilities raises an error for non-integer values."""
|
|
40
|
+
with self.assertRaises(ValueError):
|
|
41
|
+
WorkerCapabilities.from_string("gpu=two")
|
|
42
|
+
|
|
43
|
+
def test_worker_capabilities_invalid_value_in_string(self):
|
|
44
|
+
"""Test that WorkerCapabilities.from_string raises a helpful ValueError for non-integer values."""
|
|
45
|
+
with self.assertRaisesRegex(ValueError, "Expected an integer, but got 'MostPowerful'"):
|
|
46
|
+
WorkerCapabilities.from_string("linux,cpu=MostPowerful")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
if __name__ == "__main__":
|
|
50
|
+
unittest.main()
|
opengris_scaler-1.12.8/tests/test_config.py → opengris_scaler-1.12.9/tests/test_scheduler_config.py
RENAMED
|
@@ -3,58 +3,13 @@ import tempfile
|
|
|
3
3
|
import unittest
|
|
4
4
|
from argparse import Namespace
|
|
5
5
|
|
|
6
|
-
from scaler.config
|
|
6
|
+
from scaler.config import defaults
|
|
7
7
|
from scaler.config.loader import load_config
|
|
8
8
|
from scaler.config.section.scheduler import SchedulerConfig
|
|
9
9
|
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
10
|
-
from scaler.config.types.worker import WorkerCapabilities, WorkerNames
|
|
11
|
-
from scaler.config.types.zmq import ZMQConfig
|
|
12
|
-
from scaler.config import defaults
|
|
13
10
|
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
14
11
|
|
|
15
12
|
|
|
16
|
-
class TestConfigTypes(unittest.TestCase):
|
|
17
|
-
"""Tests for individual ConfigType helper classes."""
|
|
18
|
-
|
|
19
|
-
def test_zmq_config_validation(self):
|
|
20
|
-
"""Test ZMQConfig.from_string raises ValueError for malformed strings."""
|
|
21
|
-
with self.assertRaises(ValueError):
|
|
22
|
-
ZMQConfig.from_string("this-is-not-a-valid-address")
|
|
23
|
-
with self.assertRaises(ValueError):
|
|
24
|
-
ZMQConfig.from_string("tcp://127.0.0.1")
|
|
25
|
-
with self.assertRaises(ValueError):
|
|
26
|
-
ZMQConfig.from_string("badprotocol://127.0.0.1:1234")
|
|
27
|
-
|
|
28
|
-
cfg = ZMQConfig.from_string("ipc://a-valid-path")
|
|
29
|
-
self.assertEqual(cfg.host, "a-valid-path")
|
|
30
|
-
|
|
31
|
-
def test_worker_names_config_value(self):
|
|
32
|
-
"""Test the WorkerNames ConfigType class."""
|
|
33
|
-
wn = WorkerNames.from_string(" worker1 , worker2 ")
|
|
34
|
-
self.assertEqual(wn.names, ["worker1", "worker2"])
|
|
35
|
-
self.assertEqual(str(wn), "worker1,worker2")
|
|
36
|
-
self.assertEqual(len(wn), 2)
|
|
37
|
-
wn_empty = WorkerNames.from_string("")
|
|
38
|
-
self.assertEqual(wn_empty.names, [])
|
|
39
|
-
|
|
40
|
-
def test_worker_capabilities_config_value(self):
|
|
41
|
-
"""Test the WorkerCapabilities ConfigType class."""
|
|
42
|
-
wc = WorkerCapabilities.from_string(" gpu=2, linux ")
|
|
43
|
-
self.assertEqual(wc.capabilities, {"gpu": 2, "linux": -1})
|
|
44
|
-
self.assertIn("gpu=2", str(wc))
|
|
45
|
-
self.assertIn("linux", str(wc))
|
|
46
|
-
|
|
47
|
-
def test_worker_capabilities_invalid_input(self):
|
|
48
|
-
"""Test that WorkerCapabilities raises an error for non-integer values."""
|
|
49
|
-
with self.assertRaises(ValueError):
|
|
50
|
-
WorkerCapabilities.from_string("gpu=two")
|
|
51
|
-
|
|
52
|
-
def test_worker_capabilities_invalid_value_in_string(self):
|
|
53
|
-
"""Test that WorkerCapabilities.from_string raises a helpful ValueError for non-integer values."""
|
|
54
|
-
with self.assertRaisesRegex(ValueError, "Expected an integer, but got 'MostPowerful'"):
|
|
55
|
-
WorkerCapabilities.from_string("linux,cpu=MostPowerful")
|
|
56
|
-
|
|
57
|
-
|
|
58
13
|
class TestSchedulerConfig(unittest.TestCase):
|
|
59
14
|
"""Tests for the SchedulerConfig class."""
|
|
60
15
|
|
|
@@ -136,44 +91,5 @@ allocate_policy = "even"
|
|
|
136
91
|
self.assertEqual(config.logging_paths, ("/var/log/scaler.log", "/dev/stdout"))
|
|
137
92
|
|
|
138
93
|
|
|
139
|
-
class TestClusterConfig(unittest.TestCase):
|
|
140
|
-
"""Tests for the ClusterConfig class."""
|
|
141
|
-
|
|
142
|
-
def setUp(self):
|
|
143
|
-
self.temp_dir = tempfile.TemporaryDirectory()
|
|
144
|
-
self.config_path = os.path.join(self.temp_dir.name, "cluster.toml")
|
|
145
|
-
with open(self.config_path, "w") as f:
|
|
146
|
-
f.write(
|
|
147
|
-
"""
|
|
148
|
-
scheduler_address = "tcp://127.0.0.1:5555"
|
|
149
|
-
# FIX: Changed num_of_workers to match the number of worker_names
|
|
150
|
-
num_of_workers = 2
|
|
151
|
-
worker_names = "w1,w2"
|
|
152
|
-
"""
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
def tearDown(self):
|
|
156
|
-
self.temp_dir.cleanup()
|
|
157
|
-
|
|
158
|
-
def test_load_from_toml_only(self):
|
|
159
|
-
"""Test loading ClusterConfig from a flat TOML file."""
|
|
160
|
-
config = load_config(ClusterConfig, self.config_path, Namespace())
|
|
161
|
-
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
162
|
-
self.assertEqual(config.num_of_workers, 2)
|
|
163
|
-
self.assertEqual(config.worker_names.names, ["w1", "w2"])
|
|
164
|
-
|
|
165
|
-
def test_command_line_overrides_toml(self):
|
|
166
|
-
"""Test that argparse args correctly override TOML values for ClusterConfig."""
|
|
167
|
-
worker_list = [f"worker_{i}" for i in range(20)]
|
|
168
|
-
args = Namespace(num_of_workers=20, worker_names=",".join(worker_list), heartbeat_interval_seconds=99)
|
|
169
|
-
|
|
170
|
-
config = load_config(ClusterConfig, self.config_path, args)
|
|
171
|
-
|
|
172
|
-
self.assertEqual(config.num_of_workers, 20)
|
|
173
|
-
self.assertEqual(config.worker_names.names, worker_list)
|
|
174
|
-
self.assertEqual(config.heartbeat_interval_seconds, 99)
|
|
175
|
-
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
176
|
-
|
|
177
|
-
|
|
178
94
|
if __name__ == "__main__":
|
|
179
95
|
unittest.main()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.12.8
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/compile-libraries/action.yml
RENAMED
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/actions/create-artifacts/action.yml
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
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/.github/workflows/publish-documentation.yml
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
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/docs/source/tutorials/images/architecture.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/implied_volatility.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/applications/yfinance_historical_price.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/examples/cpp/ymq/automated_echo_client.cpp
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
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/native_worker_adapter.py
RENAMED
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/object_storage_server.py
RENAMED
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/section/symphony_worker_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opengris_scaler-1.12.8 → opengris_scaler-1.12.9}/scaler/config/types/object_storage_server.py
RENAMED
|
File without changes
|