Commit Graph

74 Commits

Author SHA1 Message Date
Claude
16fd28662c VPN IP로 약국 검색 API 추가 + Phase 3 기존 약국 감지 수정
- farmq-admin: GET /api/pharmacy/search?vpn_ip= 엔드포인트 추가
  - pharmacy_devices + pharmacies 테이블 모두 검색
- 스크립트: 기존 복잡한 Python 파싱 → 단순 API 호출로 변경
- PVE IP, CT IP 둘 다 검색 가능

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:57:03 +00:00
Claude
3359ca04f6 Phase 3: PVE Tailscale IP로 기존 약국 자동 감지 + Phase 7 중복 등록 방지
- Phase 3: PVE VPN IP로 farmq API 조회하여 이미 등록된 약국이면
  약국 정보 자동 로드 + 사용자 확인 후 스킵
- Phase 7: PHARMACY_CODE가 이미 있으면 등록 스킵, hostname만 업데이트
- 재실행 시 불필요한 약국 중복 생성 방지

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:51:15 +00:00
Claude
1f2939cca4 Phase 8(RDP), Phase 9(noVNC) 통합 — 총 10단계로 확장
- Phase 8: RDP 자동 연결 (xorg+openbox+freerdp+toggle API)
  - VM 201(192.168.0.201) 자동 감지, rdpuser 자동 로그인
  - RDP Toggle API (포트 8090) 설치
  - 이미 설치돼있으면 스킵
- Phase 9: noVNC 웹 서비스 (기존 스크립트 호출)
  - 이미 설치돼있으면 스킵
- Phase 10: 검증 + 결과 출력 (기존 Phase 8)
  - RDP API 정보 출력 추가
- 모든 Phase 번호 /8 → /10으로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:44:16 +00:00
Claude
8419c4271c Phase 8 검증: ping → tailscale ping으로 변경
일반 ping은 Tailscale iptables 규칙에 의해 DROP될 수 있음.
tailscale ping으로 변경하여 실제 VPN 통신 상태를 정확히 확인.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:33:27 +00:00
Claude
4d1845c6bc Phase 5/6 스킵 감지 안정화: set -e 충돌 방지 + grep -P 호환성 수정
- ct_exec 실패 시 || true로 스크립트 종료 방지
- grep -oP → sed로 변경 (Debian/PVE 호환)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:26:56 +00:00
Claude
9a662c1251 스마트 재실행: 기존 VM/CT/VPN 감지하여 완료된 Phase 자동 스킵
- Phase 4: VM이 이미 존재하면 PBS 복원 스킵 (qm status 체크)
- Phase 5: ubuntu-api CT가 이미 있으면 생성 스킵 (200~299 스캔)
- Phase 6: CT에 Tailscale + API 코드가 있으면 환경 구축 스킵
- PBS 인증 실패 시 exit 대신 스킵 후 계속 진행
- 상태 파일 없이 시스템 상태만 보고 판단

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:22:57 +00:00
Claude
566280f4c5 Fix Phase 7 crash + improve error handling across all phases
- Fixed: farmq.db empty date strings causing API 500 error
- Phase 7: exit 1 → return 1 (skip and continue instead of crash)
- Phase 4/7 failures no longer kill the script
- Error trap now shows current progress info (pharmacy, VPN IP, CT VMID, etc.)
- Helps debugging when script fails mid-execution

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:55:02 +00:00
Claude
dd53e869d0 Fix: VM selection by list number instead of raw backup ID
Users were entering list number (e.g. 4) but script expected backup ID (e.g. 201).
Now maps selection number to actual VM ID via temp file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:36:43 +00:00
Claude
36fdae3eb1 Don't exit on PBS snapshot not found — skip and continue
VM restore failure should not kill the entire script.
Skip to Phase 5 (CT creation) instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:35:15 +00:00
Claude
f89bbecdcd Fix script crash: remove set -u, handle python exit safely
- set -euo → set -eo (unset var no longer fatal)
- Python snapshot lookup: catch exceptions, use || true
- Prevents script exit on empty PBS responses

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:27:23 +00:00
Claude
394a0b0a7c Fix: empty Enter on VM selection crashes due to set -u (unset variable)
Added || true on read and ${:-} default expansion to handle empty input safely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 00:23:07 +00:00
Claude
f0900204fb Auto-default storage to local-lvm in non-interactive VM restore mode
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:47:52 +00:00
Claude
8d76dc8da2 Add --vm-id, --vm-vmid, --vm-storage for fully non-interactive PBS restore
Auto-selects VM backup, target VMID, storage, and auto-confirms existing VM deletion.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:44:35 +00:00
Claude
a0e94682bf Add --skip-pbs flag for non-interactive PBS phase
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:42:31 +00:00
Claude
6834612deb Add CLI args support: --name, --hira, --addr, --owner, --phone, --mssql
Allows non-interactive execution via SSH pipe or automation.
Falls back to interactive /dev/tty input when no args provided.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 15:40:53 +00:00
Claude
d08ff19470 Improve LAN detection: check Headscale port response, not just ping
Ping 192.168.0.100 can false-positive if external pharmacy has a device
at that IP. Now checks if 192.168.0.100:8070 actually responds like Headscale.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:48:21 +00:00
Claude
985ec18651 Fix Headscale connection: auto-detect LAN vs external network
Same-LAN PVE hosts can't reach head.pharmq.kr via public IP (NAT hairpinning).
Script now pings 192.168.0.100 to detect LAN and uses direct IP:8070 instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:45:58 +00:00
Claude
d0cd2b1137 Add unified PharmQ PVE setup script + design doc
Single script that handles: PVE repo fix, Tailscale/Headscale VPN registration,
PBS Windows VM restore, Ubuntu CT creation with API environment,
pharmacy + device registration in farmq.db, and gateway account creation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 14:31:05 +00:00
Claude
93a2313d37 fix: disable Magic DNS to prevent DNS issues
--accept-dns=false로 변경하여 시스템 DNS 설정 변경 방지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 03:37:21 +00:00
Claude
59a10f48e5 Fix bash syntax error in pipe execution
read 명령의 파이프 호환성 문제 수정:
- `< /dev/tty` 제거 (파이프 환경에서 오류 발생)
- `-p` 옵션을 별도 echo로 분리
- 에러 출력 억제로 안정성 향상

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 14:20:02 +00:00
Claude
85c5f7f930 Add PBS auto restore script for VM 103 to 203
자동화된 PBS 복구 스크립트 추가:
- VM 103 백업을 VM 203으로 자동 복구
- 사용자 입력 최소화 (대부분 자동 처리)
- 고정 설정: source=103, target=203, storage=local-lvm
- 기존 VM 자동 삭제 및 재등록 지원

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 14:17:39 +00:00
Claude
aede1e9197 Fix Korean character encoding in config parsing
UTF-8 인코딩 명시적 지정:
- open() 함수에 encoding='utf-8' 추가
- 약국 이름이 잘리는 문제 해결 (예: 태령약 → 태령약국)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 14:02:42 +00:00
Claude
545ad63b50 Sort VM list by vmid for better readability
VM 목록을 vmid 순서로 정렬:
- running_vms.sort(key=lambda x: x['vmid']) 추가
- 201, 202, 203 순서로 표시되도록 개선

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 14:00:16 +00:00
Claude
5fa7812009 Improve VM selection prompts for clarity
사용자 안내 메시지 개선:
- VM 선택 시 예시 추가 (예: 201-SERVER를 선택하려면 '1' 입력)
- 프롬프트 메시지 명확화 (목록 번호 1, 2, 3 중 선택)
- VM2 선택 시 안내 강화 (VM1과 다른 번호)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:36:50 +00:00
Claude
d975723268 Fix array access for nounset mode
배열 접근 시 nounset 오류 수정:
- VM_INFO 배열 체크 시 parameter expansion 사용
- set -euo pipefail의 -u 옵션 호환성 개선

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:35:33 +00:00
Claude
eb4097e66e Update pharmq-novnc-setup.sh for Ubuntu VM installation
Proxmox API를 통한 VM 목록 조회로 변경:
- Ubuntu VM에서 실행되도록 수정
- Proxmox API를 통해 VM 목록 가져오기
- VNC 포트를 API로 조회
- 환경 자동 감지 (Proxmox Host vs Ubuntu VM)
- 기본 Proxmox 호스트 IP: 192.168.0.200

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:21:15 +00:00
Claude
1841d72ac3 Add PharmQ noVNC auto-installation script
대화형 curl 설치 스크립트 추가:
- VNC/ 폴더 생성
- pharmq-novnc-setup.sh: 대화형 설치 스크립트
  * VM 자동 감지 및 선택
  * 약국 정보 입력
  * Python 가상환경 자동 구성
  * systemd 서비스 자동 등록
  * 방화벽 설정 옵션
  * 재설치 및 업데이트 지원
- README.md: 설치 가이드 및 문서

RDP 스크립트와 동일한 패턴으로 구현
사용법: curl -fsSL https://git.0bin.in/thug0bin/pve9-repo-fix/raw/branch/main/VNC/pharmq-novnc-setup.sh | bash

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 11:17:16 +00:00
Claude
86e34d6916 Fix PBS API namespace: Add ns=PQ parameter to all API calls
모든 PBS API 호출에 ns=PQ 파라미터를 추가하여 PQ 네임스페이스의 백업만 조회하도록 수정

- groups API에 ns=PQ 추가
- snapshots API에 ns=PQ 추가 (get_snapshot_comment 함수)
- snapshots API에 ns=PQ 추가 (get_latest_snapshot 함수)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 01:35:43 +00:00
root
05a063eb1e Add PQ namespace to PBS storage registration
PBS 스토리지 등록 시 자동으로 PQ 네임스페이스를 지정하도록 개선했습니다.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 11:38:34 +09:00
Claude
267d262eb3 Simplify RDP config editor: auto-set local user to rdpuser
Changes:
- Remove local user prompt from config editor
- Auto-set local_user to "rdpuser" (default value)
- Display "(자동 설정)" label for local user in confirmation
- Fix "알 수 없음" display: show "설정되지 않음" for unset values
- Improve prompts: show "(Enter=유지)" or example values

This simplifies the config editing process since local_user
is always rdpuser by default in our setup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 04:29:31 +00:00
Claude
fbea9419c3 Add RDP config editor to all-in-one installer rerun menu
When rerunning the installer on existing setup:
- Display current RDP configuration (server, username, local user)
- Add option 2: "RDP 설정 수정" to modify settings
- Allow editing: RDP server, username, password, local user
- Show current values as defaults (press Enter to keep)
- Update both /var/lib/rdp-toggle/config.json and .xinitrc
- After update, show toggle menu to apply changes

Menu options on rerun:
1. RDP toggle menu
2. Edit RDP settings (NEW)
3. Reinstall
4. Exit

This allows users to easily change RDP target without reinstalling.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 04:27:30 +00:00
Claude
86eb7ea806 Fix: Save user-input RDP config to API instead of using hardcoded values
Problem:
- All-in-one installer collected RDP connection info from user
- But API was using hardcoded DEFAULT_CONFIG values
- User's input was ignored by the API

Solution:
- Save user's RDP configuration to /var/lib/rdp-toggle/config.json
- API loads this config instead of hardcoded defaults
- Config includes: rdp_server, rdp_username, rdp_password, local_user

Now the API will use the actual RDP settings the user entered during installation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 04:26:31 +00:00
Claude
d02883256f Add rerun detection and toggle menu to all-in-one RDP installer
When script is rerun on already-installed system:
- Detect existing RDP setup (API + getty config)
- Show menu with 3 options:
  1) RDP toggle menu - Interactive RDP/Shell switching
  2) Reinstall - Overwrite existing setup
  3) Exit

Toggle menu features:
- Switch between RDP and Shell modes
- Check current status
- Loop until user exits
- Uses same API as standalone installer

This turns the installer into a convenient RDP control tool on rerun.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 03:05:29 +00:00
Claude
e7d5dd02d2 Improve RDP API installer with rerun detection
Changes:
- Detect if RDP Toggle API is already installed and running
- Show test menu immediately on rerun (no reinstallation)
- Add option 3 (status check) and option 4 (exit) to test menu
- Extract test menu to reusable function show_test_menu()
- Both fresh install and rerun show same interactive test menu

Now users can easily test RDP toggle by simply rerunning the installer script.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 03:00:55 +00:00
Claude
1977d21a9b Add interactive testing menu to RDP API installer
Add post-installation testing menu with options to:
1) Test RDP mode activation
2) Test Shell mode activation
3) Skip testing

This allows users to immediately test API functionality after installation
without manually typing curl commands. The menu uses the installed API
to toggle modes and displays current status after each action.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 02:32:14 +00:00
Claude
2bf3754d62 Improve IP detection: prioritize Headscale VPN IP
- Added get_primary_ip() helper function
- Prioritize Headscale VPN IP (100.64.x.x) detection
- Fallback to local IP if Headscale not available
- Applied to both proxmox-auto-rdp-setup.sh and install-rdp-api.sh
- More reliable IP display for API endpoint

This ensures VPN IP is shown when available, making remote access
more reliable and predictable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 01:58:43 +00:00
Claude
41e9fa1056 README 업데이트: RDP 올인원 설정 강조 및 통합 방식 설명
- 기존 '초기 설정'을 '올인원 설정 (권장)'으로 변경
- API 자동 설치 및 API 기반 활성화 명시
- 주요 특징 강조:
  * API 작동 = RDP 제어 가능 보장
  * 즉시 적용 옵션 (재부팅 불필요)
  * 원격 Shell/RDP 모드 전환 가능
- API 단독 설치는 이미 초기 설정 완료된 경우만 사용하도록 안내
2025-11-17 01:41:30 +00:00
Claude
9c952449d9 RDP 초기 설정에 API 자동 설치 및 API 기반 활성화 추가
- install_rdp_api() 함수 추가 (자동 API 설치)
- RDP 활성화 시 API를 통해 모드 전환 (curl POST /toggle)
- API 작동 = RDP 제어 가능 보장
- API 실패 시 자동으로 직접 활성화 fallback
- 설정 요약에 API 설치 상태 표시
- 수동 적용 안내에 API 명령어 포함

장점:
- API 없이 RDP만 켜지는 상황 방지
- 항상 원격 제어 가능한 상태 보장
- 사용자가 두 스크립트 따로 실행할 필요 없음
2025-11-17 01:40:59 +00:00
Claude
85c5e1ec29 RDP 초기 설정 스크립트 재부팅 대신 즉시 적용 옵션 추가
- 재부팅 없이 getty@tty1 서비스 재시작으로 즉시 적용 가능
- 사용자에게 3가지 선택 옵션 제공:
  1) 즉시 적용 (systemctl restart getty@tty1, 권장)
  2) 시스템 재부팅
  3) 나중에 수동 적용
- systemd daemon-reload 추가로 설정 파일 변경사항 즉시 반영
- 사용자 경험 개선 (불필요한 재부팅 방지)
2025-11-17 01:19:46 +00:00
Claude
13b1da4ee0 RDP 초기 설정 스크립트 패키지 확인 로직 개선
- dpkg 기반 확인에서 command -v 기반 확인으로 변경
- 실제 실행 파일 존재 여부로 설치 확인
- 패키지 이름 매칭 문제 해결
- 확인 실패 시 에러 대신 경고 후 계속 진행
- 검증 대상: startx, openbox, xfreerdp3, unclutter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 01:06:18 +00:00
Claude
ccd34c7f54 RDP 초기 설정 스크립트 입력 처리 수정 (curl | bash 지원)
- 모든 read 명령에 </dev/tty 추가
- curl | bash 실행 시 표준 입력 문제 해결
- 파이프로 실행해도 사용자 입력 정상 작동
- 5개 입력 포인트 모두 수정:
  - RDP 서버 주소
  - RDP 사용자명
  - RDP 패스워드 (2회)
  - 로컬 사용자명
  - 설정 확인
  - 네트워크 연결 실패 시 계속 진행 여부
  - 재부팅 확인

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 01:02:31 +00:00
Claude
d0c8b26138 RDP 초기 설정 스크립트 버전 체크 로직 개선
- Proxmox 버전 확인 시 에러 처리 강화
- pveversion 명령 출력 형식 다양하게 지원
- 버전 확인 실패 시 경고 후 계속 진행
- 정규표현식으로 버전 번호 추출 개선
- 숫자 검증 로직 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 00:53:11 +00:00
Claude
4934b0a8f9 RDP 자동화 시스템 문서 및 설치 스크립트 개선
- install-rdp-api.sh: curl 원라이너 설치 지원
  - requirements.txt 의존성 제거 (패키지 버전 스크립트 내장)
  - rdp-toggle-api.py Gitea에서 자동 다운로드
  - 상세한 설치 완료 메시지 추가

- RDP/README.md: 완전히 재구성
  - curl 원라이너 설치 가이드 추가
  - API 엔드포인트 상세 설명 및 응답 예시
  - React 프론트엔드 연동 예시 개선
  - 문제 해결 섹션 추가
  - 네트워크 설정 및 방화벽 가이드

- README.md: RDP 자동화 섹션 추가
  - Proxmox RDP 초기 설정 스크립트 소개
  - RDP Toggle API 설치 가이드
  - API 사용 예시 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 00:42:19 +00:00
c6919abf1c Add RDP Toggle API with venv support
RDP 관련 파일들을 RDP 폴더로 정리하고 API 시스템 추가

주요 변경사항:
- FastAPI 기반 RDP/Shell 모드 전환 API 서버 추가
- venv 환경을 사용하는 자동 설치 스크립트
- requirements.txt로 패키지 의존성 관리
- systemd 서비스로 자동 시작 설정
- CORS 지원으로 외부 프론트엔드 연동 가능
- 실시간 상태 모니터링 API
- 웹 기반 컨트롤 패널 포함

파일 구성:
- rdp-toggle-api.py: FastAPI REST API 서버
- install-rdp-api.sh: venv 환경 자동 설치
- requirements.txt: Python 패키지 의존성
- rdp-toggle-web.html: 웹 컨트롤 패널
- README.md: 사용 가이드

API 기능:
- GET /status: 현재 모드 확인
- POST /toggle: RDP/Shell 모드 전환
- GET /config: 설정 확인
- PUT /config: 설정 업데이트

리액트 프론트엔드에서 토글로 화면 모드 제어 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 09:14:41 +09:00
1f926d6b35 Add Proxmox Auto RDP Setup script
- Automated RDP connection setup for Proxmox VE hosts
- Full-screen RDP client with auto-login configuration
- X11 and FreeRDP3 integration
2025-11-17 08:52:28 +09:00
f5a7c7f695 Add 시간교정.md 2025-11-15 19:26:05 +09:00
Claude
4f7929fc61 약국 생성 시 장비 자동 등록 기능 추가
## 주요 변경사항

### 1. 장비 타입 자동 감지 (detect_device_info)
- Proxmox Host, Windows PC (WSL), macOS, Linux Server 자동 구분
- 호스트명 자동 수집
- 장비명 자동 생성 (예: "테스트약국 Proxmox Host")

### 2. API 호출 개선
- farmq-admin API(/api/pharmacy)에 장비 정보 전송
  - device_type: proxmox_host/windows_pc/mac/linux_server
  - device_name: 자동 생성된 장비명
  - hostname: 시스템 호스트명
- 응답에서 device_registered 확인 및 사용자 피드백

### 3. 출력 개선
- 장비 감지 정보 실시간 출력
- 최종 완료 메시지에 장비 정보 추가

## 백엔드 연동
- farmq-admin/app.py에서 pharmacy_devices 테이블 자동 등록
- 첫 장비는 자동으로 is_primary=TRUE 설정
- device_role: main_server로 고정

## 테스트
- 문법 검사 완료 (bash -n)
- Proxmox Host 환경에서 테스트 준비 완료

🤖 Generated with Claude Code
2025-11-15 10:20:38 +00:00
02137c50a8 Fix stdin issue for curl | bash execution
pbs_allinone.sh 입력 문제 수정:
- 모든 read -p 명령어에 < /dev/tty 추가
- curl | bash 실행 시 stdin 소진 문제 해결
- 사용자 입력이 정상적으로 작동하도록 수정

수정된 read 명령어:
- PBS 스토리지 재등록 확인
- 백업 타입 입력 (vm/ct)
- 백업 ID 입력
- 복구 VM/CT ID 입력
- 저장 스토리지 입력
- 복구 확인
- 기존 VM/CT 삭제 확인
- VM/CT 시작 확인

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 00:37:27 +00:00
Claude
1c6e6dcf56 pbs_allinone.sh: 스토리지 선택 개선
- 복구 시 사용 가능한 스토리지 목록 자동 표시
- 스토리지 존재 여부 및 VM/CT 이미지 저장 가능 여부 검증
- 잘못된 스토리지 입력 시 재입력 요청
- 스토리지 용량 및 사용률 정보 표시 (GB 단위)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 23:32:23 +09:00
Claude
269350c1d2 Fix: Success check failing due to JSON formatting with spaces
- 'success:true' → 'success' AND 'true' 검사로 변경
- pretty-printed JSON (공백/줄바꿈 포함) 대응
- 실제로는 성공했는데 실패로 표시되던 버그 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:38:07 +00:00