5cff7d8506
DSM starts containers asynchronously - start_project returns immediately while containers are still initialising. Adds _wait_for_project_running: polls SYNO.Docker.Project/list every 2s up to 30s after issuing start. Reports RUNNING on success; emits a warning instead of failure on timeout so callers can still verify with get_project_status. Applies to all three redeploy paths (RUNNING, STOPPED, BUILD_FAILED). Also bumps version 0.2.0 → 0.2.1 and adds CHANGELOG entry. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Changelog
All notable changes to this project will be documented in this file.
[0.2.1] - 2026-04-21
Fixed
redeploy_project: After issuingstart, the tool now polls the project status every 2 seconds for up to 30 seconds until the project reachesRUNNING. Previously DSM returned immediately while containers were still starting, causing the project to appear asexitedwhen checked right after redeploy. On timeout a warning is returned instead of an error.delete_image: Now distinguishes between running and stopped container references. A stopped container holding the image produces a clear hint to usedelete_containerorsystem_pruneinstead of a generic "in use" error.redeploy_project(BUILD_FAILED path): Added explicit image pull step before restart (stop → pull → start). Previously the old cached image could be reused.
Added
delete_container— delete a stopped container by name; refuses if container is still running; requiresconfirmed=True.
[0.2.0] - 2026-04-14
Added
Images
list_images— list local images sorted by size; marks images in use and with available updatesdelete_image— delete image byname:tagor hash; refuses if image is used by a container
Container
container_stats— live CPU %, RAM used/limit, network I/O, block I/O
System
system_df— Docker disk usage: image count/size, running/stopped containers, reclaimable spacesystem_prune— remove dangling images, stopped containers, and unused networks
Networks
list_networks— list all Docker networks with driver, subnet, gateway, attached containerscreate_network— create a new bridge (or other driver) networkdelete_network— delete a network; refuses if any container is still attached
Fixed
get_container_statusnow reads the correct DSM response fields (details.Statefor status/running,profile.imagefor image name) and displays IP addresses, port bindings, and mountsredeploy_projectis now status-aware: RUNNING → stop + start; STOPPED → start directly; BUILD_FAILED → force-stop + start; unknown status returns a clear error with workaround hint- Container names with hash prefix (e.g.
f93cb8b504f7_jenkins) are now transparently stripped inlist_containers,container_stats,get_container_status,get_container_logs, andexec_in_container
Changed
DsmClientgained apost_request()method for form-encoded POST operations required by image delete, network create/delete
[0.1.0] - 2026-04-13
Added
- Initial implementation
- Projects:
list_projects,get_project_status,start_project,stop_project,redeploy_project - Containers:
list_containers,get_container_status,get_container_logs,exec_in_container - Compose:
read_compose,update_compose,update_image_tag,update_env_var - Images:
check_image_updates - DSM session management with auto re-authentication on session timeout
- OS keyring integration for secure credential storage
- 2FA / device token support
- Interactive
setupwizard andcheckconnectivity command