Skip to content

Name change ScalingController to ScalingPolicy#586

Merged
sharpener6 merged 2 commits intofinos:mainfrom
gxuu:mar-rename-scaling
Mar 10, 2026
Merged

Name change ScalingController to ScalingPolicy#586
sharpener6 merged 2 commits intofinos:mainfrom
gxuu:mar-rename-scaling

Conversation

@gxuu
Copy link
Contributor

@gxuu gxuu commented Mar 5, 2026

READY FOR REVIEW.

This PR make naming changes. This PR is the predecessor of #579.

  • ScalerPolicy → PolicyController (moved to controllers/mixins.py)
  • SimplePolicy → SimplePolicyController
  • ScalingController → ScalingPolicy (and all implementations: VanillaScalingPolicy,
    CapabilityScalingPolicy, etc.)

Branch: mar-rename-scaling

1. WorkerAdapterController -> WorkerManagerController

  • Renamed file worker_adapter_controller.py -> worker_manager_controller.py
  • Renamed class WorkerAdapterController -> WorkerManagerController
  • Renamed all instance variables _worker_adapter_controller -> _worker_manager_controller
  • Renamed internal fields: _adapter_alive_since -> _manager_alive_since, _adapter_worker_groups -> _manager_worker_groups
  • Renamed constant DEFAULT_WORKER_ADAPTER_TIMEOUT_SECONDS -> DEFAULT_WORKER_MANAGER_TIMEOUT_SECONDS
  • Updated information_controller.py and scheduler.py to use new names
  • Updated log messages and comments

2. WorkerAdapter protocol types -> WorkerManager protocol types

Renamed all protocol message classes, Cap'n Proto structs, and related variables:

  • WorkerAdapterHeartbeat -> WorkerManagerHeartbeat
  • WorkerAdapterHeartbeatEcho -> WorkerManagerHeartbeatEcho
  • WorkerAdapterCommandType -> WorkerManagerCommandType
  • WorkerAdapterCommand -> WorkerManagerCommand
  • WorkerAdapterCommandResponse -> WorkerManagerCommandResponse
  • Cap'n Proto union fields: workerAdapterHeartbeat -> workerManagerHeartbeat, etc.

Updated across: message.capnp, message.py, scheduler.py, worker_manager_controller.py, worker manager adapters (native.py, worker_manager.py, ecs.py), test_scaling.py

3. ScalerPolicy interface + PolicyController + SimplePolicy refactor

New PolicyController abstract class in controllers/mixins.py

  • Moved all abstract methods from ScalerPolicy (plus docstrings) into a new PolicyController ABC
  • Includes: add_worker, remove_worker, get_worker_ids, get_worker_by_task_id, balance, assign_task, remove_task, has_available_worker, statistics, get_scaling_commands, get_scaling_status
  • ScalerPolicy (in policies/mixins.py) retains the same methods without docstrings — serves as the internal policy interface

New VanillaPolicyController in controllers/vanilla_policy_controller.py

  • Implements PolicyController, delegates all calls to an internal ScalerPolicy instance
  • Takes (policy_engine_type, policy_content) and creates the policy via create_policy()

New create_policy() factory in policies/library/utility.py

  • Replaces the old create_scaler_policy() in policies/utility.py
  • policies/utility.py deleted (it also did policy_content parsing; that's now in SimplePolicy)

SimplePolicy changes

  • Constructor now takes raw policy_content: str instead of pre-parsed Dict[str, str]
  • Parses policy_content internally (splits on ; and =)
  • Explicit type annotations for _allocation_policy: TaskAllocatePolicy and _scaling_policy: ScalingPolicy

Scheduler wiring

  • scheduler.py: _scaler_policy: ScalerPolicy -> _policy_controller: PolicyController = VanillaPolicyController(...)
  • VanillaWorkerController: scaler_policy param -> policy_controller, _scaler_policy -> _policy_controller
  • VanillaBalanceController: scaler_policy param -> policy_controller, _scaler_policy -> _policy_controller

4. ScalingController -> ScalingPolicy (internal scaling policies)

Renamed all scaling controller classes and related types:

  • ScalingController (mixin) -> ScalingPolicy
  • NoScalingController -> NoScalingPolicy
  • VanillaScalingController -> VanillaScalingPolicy
  • CapabilityScalingController -> CapabilityScalingPolicy
  • FixedElasticScalingController -> FixedElasticScalingPolicy
  • ScalingControllerStrategy enum -> ScalingPolicyStrategy
  • create_scaling_controller() -> create_scaling_policy()
  • SimplePolicy._scaling_controller -> SimplePolicy._scaling_policy
  • Parameter adapter_heartbeat -> worker_manager_heartbeat in all scaling policy interfaces and implementations
  • Test helper _create_adapter_heartbeat -> _create_worker_manager_heartbeat

5. WorkerAdapterConfig -> WorkerManagerConfig

  • Renamed file src/scaler/config/common/worker_adapter.py -> worker_manager.py
  • Renamed class WorkerAdapterConfig -> WorkerManagerConfig
  • Updated help text: "for fixed native worker adapter" -> "for fixed native worker manager"

Config section class renames + file renames

  • native_worker_adapter.py -> native_worker_manager.py: NativeWorkerAdapterConfig -> NativeWorkerManagerConfig
  • fixed_native_worker_adapter.py -> fixed_native_worker_manager.py: FixedNativeWorkerAdapterConfig -> FixedNativeWorkerManagerConfig
  • ecs_worker_adapter.py -> ecs_worker_manager.py: ECSWorkerAdapterConfig -> ECSWorkerManagerConfig
  • symphony_worker_adapter.py -> symphony_worker_manager.py: SymphonyWorkerConfig -> SymphonyWorkerManagerConfig
  • aws_hpc_worker_adapter.py -> aws_hpc_worker_manager.py: AWSBatchWorkerAdapterConfig -> AWSBatchWorkerManagerConfig
  • Updated FixedNativeWorkerManagerConfig.__post_init__ validation reference

Field rename worker_adapter_config -> worker_manager_config

Field access sites:

  • worker_manager_adapter/baremetal/native.py
  • worker_manager_adapter/baremetal/fixed_native.py
  • worker_manager_adapter/symphony/worker_manager.py (renamed from worker_adapter.py)
  • worker_manager_adapter/aws_raw/ecs.py
  • entry_points/worker_manager_aws_hpc_batch.py
  • cluster/cluster.py (self._worker_adapter_config -> self._worker_manager_config)
  • tests/scheduler/test_scaling.py

Implementation class renames

  • NativeWorkerAdapter -> NativeWorkerManager in worker_manager_adapter/baremetal/native.py
    • Internal name "worker_adapter_native" -> "worker_manager_native"
  • FixedNativeWorkerAdapter -> FixedNativeWorkerManager in worker_manager_adapter/baremetal/fixed_native.py
  • ECSWorkerAdapter -> ECSWorkerManager in worker_manager_adapter/aws_raw/ecs.py
    • Internal name "worker_adapter_ecs" -> "worker_manager_ecs"
  • SymphonyWorkerAdapter -> SymphonyWorkerManager in worker_manager_adapter/symphony/worker_manager.py (file renamed from worker_adapter.py)
    • Internal name "worker_adapter_symphony" -> "worker_manager_symphony"
  • Updated log messages: "Worker adapter" -> "Worker manager"

Updated all imports in entry points, cluster/cluster.py, and tests/scheduler/test_scaling.py.

Run script fixes

Fixed broken imports in src/run_worker_manager_*.py scripts:

  • run_worker_manager_baremetal_native.py: worker_adapter_native -> worker_manager_baremetal_native
  • run_worker_manager_baremetal_fixed_native.py: worker_adapter_fixed_native -> worker_manager_baremetal_fixed_native
  • run_worker_manager_aws_raw_ecs.py: worker_adapter_ecs -> worker_manager_aws_raw_ecs
  • run_worker_manager_symphony.py: worker_adapter_symphony -> worker_manager_symphony

Test renames

  • tests/scheduler/test_scaling.py: _run_native_worker_adapter -> _run_native_worker_manager, variable adapter -> manager

6. TOML section names in entry point parse() calls

  • "native_worker_adapter" -> "native_worker_manager" (+ description: "Scaler Native Worker Manager")
  • "fixed_native_worker_adapter" -> "fixed_native_worker_manager" (+ description: "Scaler Fixed Native Worker Manager")
  • "symphony_worker_adapter" -> "symphony_worker_manager" (+ description: "Scaler Symphony Worker Manager")
  • "ecs_worker_adapter" -> "ecs_worker_manager" (+ description: "Scaler ECS Worker Manager")
  • "aws_hpc_worker_adapter" -> "aws_hpc_worker_manager" (+ description: "Scaler AWS HPC Worker Manager")

Local variables in entry points also renamed (e.g., native_adapter_config -> native_manager_config, native_worker_adapter -> native_worker_manager).

7. Docs directory rename + prose updates

  • docs/source/tutorials/worker_adapters/ -> worker_manager_adapter/
  • Updated index.rst toctree references
  • Updated configuration.rst cross-reference path
  • Replaced "Worker Adapter(s)" with "Worker Manager(s)" in all docs under the renamed directory:
    • index.rst, native.rst, fixed_native.rst, common_parameters.rst, aws_hpc/index.rst, aws_hpc/setup.rst
  • Updated features.rst: heading + prose
  • Updated configuration.rst: heading, CLI commands table, TOML section names
  • Updated scaling.rst: all "Worker Adapter" -> "Worker Manager", "Scaling Controller" -> "Scaling Policy", CLI command names, protocol message names

8. README.md updates

  • CLI commands: scaler_worker_adapter_* -> scaler_worker_manager_* (with updated baremetal paths)
  • TOML sections: [native_worker_adapter] -> [native_worker_manager], etc.
  • Prose: "Worker Adapter" -> "Worker Manager" throughout section heading and body

9. Final-sweep comment/docstring fixes

Remaining "worker adapter" references in comments, docstrings, and UI strings:

  • worker_manager_adapter/aws_hpc/__init__.py: "AWS HPC Worker Adapter" -> "AWS HPC Worker Manager"
  • worker_manager_adapter/aws_hpc/heartbeat_manager.py: "worker adapter" -> "worker manager" in docstring
  • capability_scaling.py: "scaling controller" -> "scaling policy", "worker adapter" -> "worker manager" in class docstring
  • tests/scheduler/test_scaling.py: TestFixedElasticScaling docstring "worker adapters" -> "worker managers"
  • tests/worker_manager_adapter/aws_hpc/aws_hpc_test_harness.py: "Worker Adapter Test Harness" -> "Worker Manager Test Harness" (docstring, argparse description, print banner)

10. Minor formatting / import-order fixes

  • client_agent.py: import reorder (UVYMQException before YMQException alphabetically)
  • io/uv_ymq/__init__.py: collapsed multi-line import to single line
  • io/uv_ymq/_uv_ymq.pyi: removed blank lines in class bodies
  • io/uv_ymq/sockets.py: minor formatting
  • ui/common/task_graph.py: minor formatting (function call parentheses)
  • worker/worker.py: added trailing comma in multi-line set literal
  • worker_manager_adapter/symphony/worker_manager.py: added trailing comma in multi-line set literal
  • tests/config/test_config_class.py: updated WorkerAdapterConfig -> WorkerManagerConfig in config tests
  • tests/io/uv_ymq/test_sockets.py: minor formatting

Files changed summary

  • Added: policies/library/__init__.py, policies/library/utility.py, vanilla_policy_controller.py
  • Deleted: policies/utility.py, worker_adapter_controller.py
  • Renamed:
    • worker_adapter_controller.py -> worker_manager_controller.py
    • config/common/worker_adapter.py -> worker_manager.py
    • config/section/native_worker_adapter.py -> native_worker_manager.py
    • config/section/fixed_native_worker_adapter.py -> fixed_native_worker_manager.py
    • config/section/ecs_worker_adapter.py -> ecs_worker_manager.py
    • config/section/symphony_worker_adapter.py -> symphony_worker_manager.py
    • config/section/aws_hpc_worker_adapter.py -> aws_hpc_worker_manager.py
    • worker_manager_adapter/symphony/worker_adapter.py -> worker_manager.py
    • docs/source/tutorials/worker_adapters/ -> worker_manager_adapter/
  • Modified: 65 files total (see git diff master...HEAD --stat)

@gxuu gxuu marked this pull request as ready for review March 5, 2026 22:06
@gxuu gxuu force-pushed the mar-rename-scaling branch from 3e668c1 to 74d136e Compare March 5, 2026 22:10
@gxuu gxuu requested review from 1597463007, e117649 and sharpener6 and removed request for e117649 March 5, 2026 22:12
@gxuu gxuu force-pushed the mar-rename-scaling branch from 74d136e to f7b9e4a Compare March 5, 2026 22:31
@gxuu gxuu requested a review from sharpener6 March 6, 2026 18:22
@gxuu gxuu force-pushed the mar-rename-scaling branch from f7b9e4a to 6ec3ab0 Compare March 7, 2026 20:55
@gxuu gxuu force-pushed the mar-rename-scaling branch 2 times, most recently from 700abc1 to 66f6bf7 Compare March 9, 2026 19:21
@gxuu gxuu force-pushed the mar-rename-scaling branch 2 times, most recently from 9e8f6dc to 2582810 Compare March 9, 2026 19:31
@gxuu gxuu force-pushed the mar-rename-scaling branch 3 times, most recently from b2b33cc to 7ee18d2 Compare March 10, 2026 15:35
Signed-off-by: gxu <georgexu420@163.com>
@gxuu gxuu force-pushed the mar-rename-scaling branch from 31520bf to 2f008a9 Compare March 10, 2026 15:48
Signed-off-by: gxu <georgexu420@163.com>
@sharpener6 sharpener6 merged commit 622429f into finos:main Mar 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants