|
|
7918a78bfa
|
add comprehensive test suites and fix VM creation
- Fix create_vm: add required files property to ConfigSpec
- Fix disk backing: use fileName instead of datastore reference
- test_client.py: comprehensive read-only test suite (86 tools, 6 resources)
- test_destructive.py: destructive test suite covering 29 operations:
- VM lifecycle (create, info, rename, reconfigure)
- Power operations (on, suspend, off)
- Disk management (add, list, extend, remove)
- NIC management (add, list, connect, remove)
- Snapshots (create, list, rename, revert, delete)
- Folder operations (create, move VM)
- Datastore operations (create folder, delete)
- vCenter advanced (storage_vmotion, convert_to_template,
deploy_from_template, convert_to_vm)
|
2025-12-26 08:52:33 -07:00 |
|
|
|
9e39c1c678
|
Refactor to modular mixin architecture with 74 tools
Major refactoring from monolithic server.py to modular MCPMixin pattern:
Architecture:
- src/esxi_mcp_server/ package with proper src-layout
- FastMCP MCPMixin pattern for tool organization
- Separate mixins for each functional area
- Shared VMwareConnection class with lazy datastore/network lookup
New Mixins Added:
- DiskManagementMixin: add_disk, remove_disk, extend_disk, list_disks,
attach_iso, detach_iso
- NICManagementMixin: add_nic, remove_nic, change_nic_network,
connect_nic, set_nic_mac, list_nics
- HostManagementMixin: get_host_info, enter/exit_maintenance_mode,
list_services, start/stop_service, set_service_policy,
get/configure_ntp, reboot_host, shutdown_host, get_host_hardware,
get_host_networking
- OVFManagementMixin: deploy_ovf, export_vm_ovf, list_ovf_networks
- ResourcesMixin: Added move_datastore_file, copy_datastore_file
Streaming Support:
- Generator-based streaming for datastore downloads
- Memory-efficient large file handling with save_to parameter
- Chunked uploads from disk
Testing:
- test_client.py: MCP SDK-based test client
- Validates all 74 tools against real ESXi host
Build System:
- pyproject.toml with uv, ruff configuration
- Docker dev/prod modes with hot-reload
- Updated Makefile for uv-based workflow
|
2025-12-26 05:53:51 -07:00 |
|