dstack 0.16.3__tar.gz → 0.16.4__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.
- {dstack-0.16.3 → dstack-0.16.4}/PKG-INFO +1 -1
- {dstack-0.16.3 → dstack-0.16.4}/setup.py +1 -1
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/__init__.py +6 -1
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/dstack.py +7 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/backends.py +3 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/projects.py +18 -5
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/version.py +1 -1
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/PKG-INFO +1 -1
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/requires.txt +1 -1
- {dstack-0.16.3 → dstack-0.16.4}/LICENSE.md +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/README.md +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/setup.cfg +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/gateway.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/init.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/pool.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/ps.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/run.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/server.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/commands/stop.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/main.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/services/args.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/services/configurators/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/services/configurators/profile.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/services/configurators/run.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/utils/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/utils/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/utils/gateway.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/utils/run.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/cli/utils/updates.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/aws/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/aws/auth.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/aws/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/aws/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/aws/resources.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/azure/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/azure/auth.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/azure/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/azure/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/azure/utils.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/base/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/base/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/base/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/base/offers.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/cudo/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/cudo/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/cudo/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/cudo/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/datacrunch/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/datacrunch/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/datacrunch/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/datacrunch/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/auth.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/resources.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/gcp/utils.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/kubernetes/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/kubernetes/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/kubernetes/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/kubernetes/utils.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/lambdalabs/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/lambdalabs/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/lambdalabs/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/lambdalabs/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/local/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/local/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/nebius/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/nebius/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/nebius/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/nebius/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/nebius/types.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/tensordock/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/tensordock/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/tensordock/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/tensordock/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/vastai/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/vastai/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/vastai/compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/backends/vastai/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/errors.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/aws.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/azure.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/base.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/cudo.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/datacrunch.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/gcp.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/kubernetes.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/lambdalabs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/nebius.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/tensordock.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/backends/vastai.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/configurations.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/instances.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/profiles.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/projects.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/repos/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/repos/base.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/repos/local.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/repos/remote.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/repos/virtual.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/resources.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/secrets.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/models/users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/api_client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/configs/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/ssh/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/ssh/attach.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/ssh/ports.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/core/services/ssh/tunnel.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/app.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_finished_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_pending_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_running_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_submitted_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/db.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/deps.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/main.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/env.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/112753bc17dd_remove_nullable_fields.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/14f2cb002fc2_add_jobmodel_removed_flag.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/1a48dfe44a40_rework_termination_handling.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/23e01c56279a_make_blob_nullable.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/252d3743b641_.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/27d3e55759fa_add_pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/686fb8341ea5_add_user_emails.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/9eea6af28e10_added_fail_reason_for_instancemodel.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/a060e2440936_.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/b88d55c2a07d_replace_instancestatus_ready.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/bfba43f6def2_.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/d0bb68e48b9f_add_project_owners_and_quotas.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/d3e8af4786fa_gateway_compute_flag_deleted.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/e6391ca6a264_separate_gateways_from_compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/ed0ca30e13bb_migrate_instancestatus_provisioning.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/fe72c4de8376_add_gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/models.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/projects.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/secrets.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/routers/users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/backends.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/projects.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/runner.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/secrets.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/schemas/users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/security/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/security/permissions.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/aws.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/azure.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/base.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/cudo.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/datacrunch.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/gcp.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/kubernetes.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/lambdalabs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/nebius.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/tensordock.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/backends/configurators/vastai.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/docker.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/gateways/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/gateways/client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/gateways/connection.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/gateways/pool.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/base.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/dev.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/extensions/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/extensions/base.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/extensions/openai.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/extensions/vscode.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/service.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/jobs/configurators/task.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/logging.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/runner/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/runner/client.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/runner/ssh.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/ssh/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/storage.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/services/users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/settings.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/testing/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/testing/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/utils/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/utils/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/utils/logging.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/utils/routers.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/settings.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/crypto.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/hash.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/ignore.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/interpolator.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/logging.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/path.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/random_names.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/utils/ssh.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/backends.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/huggingface/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/huggingface/completions/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/huggingface/finetuning/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/huggingface/finetuning/sft/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/huggingface/finetuning/sft/train.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/resources.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/_public/runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/huggingface/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_backends.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_group.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_projects.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_secrets.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/_users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/server/utils.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/api/utils.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack/core/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/SOURCES.txt +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/dependency_links.txt +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/entry_points.txt +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/dstack.egg-info/top_level.txt +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/commands/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/commands/test_config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/commands/test_dstack.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/services/configurators/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/services/configurators/test_profile.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/cli/services/configurators/test_run.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/backends/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/backends/kubernetes/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/backends/kubernetes/test_compute.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/models/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/models/test_resources.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/core/services/test_logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/test_process_pending_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/test_process_pool.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/test_process_running_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/test_process_submitted_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/background/tasks/test_process_terminating_jobs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/conftest.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_backends.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_gateways.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_projects.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_repos.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_runs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/routers/test_users.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/services/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/services/test_config.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/services/test_logs.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/services/test_pools.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/utils/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/server/utils/test_routers.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/utils/__init__.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/utils/test_common.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/utils/test_interpolator.py +0 -0
- {dstack-0.16.3 → dstack-0.16.4}/src/tests/_internal/utils/test_path.py +0 -0
|
@@ -26,7 +26,11 @@ from dstack._internal.core.models.backends.datacrunch import (
|
|
|
26
26
|
DataCrunchConfigInfoWithCredsPartial,
|
|
27
27
|
DataCrunchConfigValues,
|
|
28
28
|
)
|
|
29
|
-
from dstack._internal.core.models.backends.dstack import
|
|
29
|
+
from dstack._internal.core.models.backends.dstack import (
|
|
30
|
+
DstackBaseBackendConfigInfo,
|
|
31
|
+
DstackConfigInfo,
|
|
32
|
+
DstackConfigValues,
|
|
33
|
+
)
|
|
30
34
|
from dstack._internal.core.models.backends.gcp import (
|
|
31
35
|
GCPConfigInfo,
|
|
32
36
|
GCPConfigInfoWithCreds,
|
|
@@ -76,6 +80,7 @@ AnyConfigInfoWithoutCreds = Union[
|
|
|
76
80
|
TensorDockConfigInfo,
|
|
77
81
|
VastAIConfigInfo,
|
|
78
82
|
DstackConfigInfo,
|
|
83
|
+
DstackBaseBackendConfigInfo,
|
|
79
84
|
]
|
|
80
85
|
AnyConfigInfoWithCreds = Union[
|
|
81
86
|
AWSConfigInfoWithCreds,
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
1
3
|
from pydantic import BaseModel
|
|
2
4
|
from typing_extensions import Literal
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class DstackConfigInfo(BaseModel):
|
|
6
8
|
type: Literal["dstack"] = "dstack"
|
|
9
|
+
base_backends: List[str]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class DstackBaseBackendConfigInfo(BaseModel):
|
|
13
|
+
type: str
|
|
7
14
|
|
|
8
15
|
|
|
9
16
|
class DstackConfigValues(BaseModel):
|
|
@@ -22,6 +22,9 @@ root_router = APIRouter(prefix="/api/backends", tags=["backends"])
|
|
|
22
22
|
project_router = APIRouter(prefix="/api/project/{project_name}/backends", tags=["backends"])
|
|
23
23
|
|
|
24
24
|
|
|
25
|
+
# These routes are not currently in use since backend UI configuration is disabled.
|
|
26
|
+
|
|
27
|
+
|
|
25
28
|
@root_router.post("/list_types")
|
|
26
29
|
async def list_backend_types() -> List[BackendType]:
|
|
27
30
|
return backends.list_available_backend_types()
|
|
@@ -6,6 +6,10 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
6
6
|
|
|
7
7
|
from dstack._internal.core.errors import ForbiddenError, ResourceExistsError, ServerClientError
|
|
8
8
|
from dstack._internal.core.models.backends import BackendInfo
|
|
9
|
+
from dstack._internal.core.models.backends.dstack import (
|
|
10
|
+
DstackBaseBackendConfigInfo,
|
|
11
|
+
DstackConfigInfo,
|
|
12
|
+
)
|
|
9
13
|
from dstack._internal.core.models.projects import Member, Project
|
|
10
14
|
from dstack._internal.core.models.users import GlobalRole, ProjectRole
|
|
11
15
|
from dstack._internal.server.models import MemberModel, ProjectModel, UserModel
|
|
@@ -272,11 +276,20 @@ def project_model_to_project(project_model: ProjectModel) -> Project:
|
|
|
272
276
|
logger.warning("Configurator for backend %s not found", b.type)
|
|
273
277
|
continue
|
|
274
278
|
config_info = configurator.get_config_info(model=b, include_creds=False)
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
279
|
+
if isinstance(config_info, DstackConfigInfo):
|
|
280
|
+
for backend_type in config_info.base_backends:
|
|
281
|
+
backends.append(
|
|
282
|
+
BackendInfo(
|
|
283
|
+
name=backend_type, config=DstackBaseBackendConfigInfo(type=backend_type)
|
|
284
|
+
)
|
|
285
|
+
)
|
|
286
|
+
else:
|
|
287
|
+
backends.append(
|
|
288
|
+
BackendInfo(
|
|
289
|
+
name=b.type,
|
|
290
|
+
config=config_info,
|
|
291
|
+
)
|
|
292
|
+
)
|
|
280
293
|
return Project(
|
|
281
294
|
project_id=project_model.id,
|
|
282
295
|
project_name=project_model.name,
|
|
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
|
|
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
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_pending_jobs.py
RENAMED
|
File without changes
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_pools.py
RENAMED
|
File without changes
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/background/tasks/process_running_jobs.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
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/252d3743b641_.py
RENAMED
|
File without changes
|
|
File without changes
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/a060e2440936_.py
RENAMED
|
File without changes
|
|
File without changes
|
{dstack-0.16.3 → dstack-0.16.4}/src/dstack/_internal/server/migrations/versions/bfba43f6def2_.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
|