Skip to content

改善: CI導入・停止待機タイムアウト検出・入力バリデーション・APIエラー表示#3

Merged
aida0710 merged 6 commits into
mainfrom
claude/design-refactoring-review-x0fblf
Jun 11, 2026
Merged

改善: CI導入・停止待機タイムアウト検出・入力バリデーション・APIエラー表示#3
aida0710 merged 6 commits into
mainfrom
claude/design-refactoring-review-x0fblf

Conversation

@aida0710

Copy link
Copy Markdown
Owner

概要

PR #2 のレビューで挙がった残課題6点をTDDで対応しました。全253テストグリーン(+12件)、ruff 導入済みでリント警告ゼロ

1. テスト・リンタのCI導入

  • .github/workflows/test.yml: push(main) / PR で ruff check + pytest を実行
  • ruff を dev 依存に追加(E4/E7/E9/F ルール)。検出された未使用import・プレースホルダなしf-string等 39件を修正

2. VM停止待機のタイムアウト検出(安全性)

従来は5分待っても停止しないVMがあっても黙って destroy / reconfigure に進んでいた_wait_for_poweroff が停止未確認のVMを返すようになり、_ensure_stopped が警告表示のうえ default=False で続行確認を挟む。

3. 数値入力のバリデーション

  • パック数・ディスクGBの対話入力を prompt_int に置換(非数値・0以下・上限超えはリトライ。従来は ValueError トレースバック)
  • --pack-num フラグにも 1〜上限(cpu=152 / gpu=8)の範囲チェックを追加

4. APIエラーの表示改善

エントリポイントを cli() に変更し、httpx の HTTPStatusError / ConnectError / TimeoutException をトップレベルで捕捉。トレースバックの代わりに APIエラー: 404 Not Found (GET <URL>) 形式で表示して exit 1。詳細は従来どおり --verbose で確認可能。実APIに対して 401 → 短いエラー表示+exit 1 を確認済み。

5. 細かい改善

  • parallel.py: POSTリトライが TimeoutException を対象外にしている意図(二重実行リスク回避)をコメントで明示
  • sso_login: httpx.Clientwith で確実にクローズ
  • client.py: 再ログイン関数内の CredentialStore 直接生成を get_store() に統一

6. 対話フローのリグレッションテスト追加

  • deploy のテンプレート対話選択(-t 省略時)
  • reconfigure の稼働中VM停止フロー
  • ssh の接続先組み立て(プライベートIP / --global

検証

  • uv run pytest: 253 passed / uv run ruff check: All checks passed
  • 全サブコマンド --help スモークテスト通過
  • このPR自体で新CIワークフローが動作するはず

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J


Generated by Claude Code

claude added 6 commits June 11, 2026 16:44
- .github/workflows/test.yml: push(main)/PR で ruff + pytest を実行
- ruff を dev 依存に追加し、E4/E7/E9/F ルールで設定
- ruff 検出の未使用import・プレースホルダなしf-string等 39件を修正
  (models/vm.py の未使用 VMStatus import 含む)

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
従来は5分待っても停止しないVMがあっても黙って destroy / reconfigure に
進んでいた。_wait_for_poweroff が停止未確認のVMを返すようになり、
_ensure_stopped が警告表示のうえ default=False で続行確認する。

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
- 対話入力を prompt_int に置換(非数値・0以下・上限超えはリトライ。
  従来は ValueError トレースバック)
- --pack-num フラグも 1〜上限(cpu=152 / gpu=8)の範囲チェックを追加

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
エントリポイントを cli() に変更し、httpx の HTTPStatusError /
ConnectError / TimeoutException をトップレベルで捕捉して
「APIエラー: 404 Not Found (GET <URL>)」形式で表示・exit 1 する。
詳細は従来どおり --verbose で確認できる。

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
- parallel.py: POSTリトライが TimeoutException を対象外にしている
  意図(二重実行リスク回避)をコメントで明示
- sso_login: httpx.Client を with で確実にクローズ
- client.py: 再ログイン関数内の CredentialStore 直接生成を get_store() に統一

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
- deploy のテンプレート対話選択(-t 省略時)
- reconfigure の稼働中VM停止フロー(シャットダウン→停止待ち→構成変更)
- ssh コマンドの接続先組み立て(プライベートIP / --global)

https://claude.ai/code/session_01TW29TePWvbYad8oYecRC1J
@aida0710 aida0710 merged commit 95df347 into main Jun 11, 2026
1 check passed
@aida0710 aida0710 deleted the claude/design-refactoring-review-x0fblf branch June 11, 2026 16:57
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