synology: live-verify against cascadesDS, fix services method + pipe handling

First live exercise of the skill against the Cascades DS718+ (DSM 7.2.1, VPN up).
- Fix `services`: SYNO.Core.Service.list 103s on DSM 7.2.1 -> method is `get`.
- Fix `apis | head` BrokenPipeError traceback -> caught, clean exit.
- SKILL.md status PLUMBED -> VERIFIED 2026-06-25 with live device facts.
- wiki/cascades-tucson: add NAS specs, resolve model/RAM/DSM TODO.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-25 11:08:28 -07:00
parent 384aa6ac43
commit 7173f4dc12
3 changed files with 26 additions and 9 deletions

View File

@@ -332,7 +332,8 @@ def main(argv):
elif args.cmd == "packages":
_print(c.call("SYNO.Core.Package", "list", additional='["status","installed_info"]'))
elif args.cmd == "services":
_print(c.call("SYNO.Core.Service", "list"))
# DSM 7.2.x: SYNO.Core.Service enumerates via `get` (not `list`); returns {"service":[...]}
_print(c.call("SYNO.Core.Service", "get"))
elif args.cmd == "connections":
_print(c.call("SYNO.Core.CurrentConnection", "list"))
elif args.cmd == "ls":
@@ -375,4 +376,12 @@ def main(argv):
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
try:
sys.exit(main(sys.argv[1:]))
except BrokenPipeError:
# downstream pipe closed (e.g. `apis | head`) -- exit cleanly, no traceback
try:
sys.stdout.close()
except Exception:
pass
os._exit(0)