delete_segment
Remove a network segment from VMware NSX to decommission unused infrastructure. Warning: This disconnects all attached virtual machines.
Instructions
Delete a network segment. WARNING: This will disconnect all attached VMs.
Args: segment_id: The segment ID to delete. target: Optional NSX Manager target name from config. Uses default if omitted.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes | ||
| target | No |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- vmware_nsx/ops/segment_mgmt.py:131-155 (handler)Core business logic for deleting a segment in NSX.
def delete_segment(client: NsxClient, segment_id: str) -> dict: """Delete a segment after verifying no ports are attached. Checks for existing ports first to prevent orphaned resources. Args: client: Authenticated NSX API client. segment_id: Segment identifier to delete. Returns: Dict with deletion status. """ _validate_id(segment_id) # Safety check: verify no ports are attached ports = client.get_all( f"/policy/api/v1/infra/segments/{segment_id}/ports" ) if ports: return { "deleted": False, "segment_id": segment_id, "error": ( f"Segment has {len(ports)} active port(s). " "Detach all ports before deleting." - mcp_server/server.py:432-443 (handler)MCP tool handler wrapper for deleting a segment.
def delete_segment(segment_id: str, target: str | None = None) -> str: """Delete a network segment. WARNING: This will disconnect all attached VMs. Args: segment_id: The segment ID to delete. target: Optional NSX Manager target name from config. Uses default if omitted. """ from vmware_nsx.ops.segment_mgmt import delete_segment as _delete client = _get_connection(target) _delete(client, segment_id) return f"Segment '{segment_id}' deleted." - mcp_server/server.py:431-431 (registration)Tool registration for delete_segment.
@mcp.tool()