-
Notifications
You must be signed in to change notification settings - Fork 218
Closed
Labels
Description
Steps to reproduce
Create an SSH fleet with hosts[].proxy_jump:
type: fleet
name: vm
ssh_config:
hosts:
- hostname: 192.168.122.75
user: debian
identity_file: ~/.ssh/vm_debian
proxy_jump:
hostname: 192.168.122.58
user: ubuntu
identity_file: ~/.ssh/vm_ubuntuthen change some option in hosts[], e.g., user, and apply the configuration again.
Actual behaviour
Unexpected error: status code 500 when requesting http://localhost:3000/api/project/main/fleets/get_plan. Check the server logs for backend
issues, and the CLI logs at (~/.dstack/logs/cli/latest.log) local CLI output
Expected behaviour
No response
dstack version
Server logs
File "/home/def/dev/dstack/src/dstack/_internal/server/services/fleets.py", line 1050, in _check_can_update_fleet_configuration
_check_can_update_ssh_config(current_ssh_config, new_ssh_config)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/def/dev/dstack/src/dstack/_internal/server/services/fleets.py", line 1013, in inner
fn(current, new, diff)
~~^^^^^^^^^^^^^^^^^^^^
File "/home/def/dev/dstack/src/dstack/_internal/server/services/fleets.py", line 1056, in _check_can_update_ssh_config
_, _, changed_hosts = _calculate_ssh_hosts_changes(current.hosts, new.hosts)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/def/dev/dstack/src/dstack/_internal/server/services/fleets.py", line 1077, in _calculate_ssh_hosts_changes
elif diff_models(
~~~~~~~~~~~^
current_host, new_host, reset={"identity_file": True, "proxy_jump": {"identity_file"}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
):
^
File "/home/def/dev/dstack/src/dstack/_internal/core/services/diff.py", line 40, in diff_models
old = copy_model(old, reset=reset)
File "/home/def/dev/dstack/src/dstack/_internal/core/services/diff.py", line 71, in copy_model
return type(model).parse_obj(model.dict(exclude=reset))
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "pydantic/main.py", line 532, in pydantic.main.BaseModel.parse_obj
File "pydantic/main.py", line 347, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for SSHHostParamsRequest
proxy_jump -> identity_file
field required (type=value_error.missing)Additional information
No response
Reactions are currently unavailable