list_fault_domains
Retrieve fault domains within an availability domain to plan high-availability deployments and distribute resources across isolated hardware segments in Oracle Cloud Infrastructure.
Instructions
List all fault domains in an availability domain.
Args:
compartment_id: OCID of the compartment
availability_domain: Name of the availability domain
Returns:
List of fault domains with their names and IDs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| compartment_id | Yes | ||
| availability_domain | Yes |
Implementation Reference
- mcp_server_oci/mcp_server.py:1302-1319 (handler)MCP tool handler function registered as 'list_fault_domains'. Wraps the core helper with error handling, logging, and profile checks; delegates to resources.list_fault_domains.@mcp.tool(name="list_fault_domains") @mcp_tool_wrapper( start_msg="Listing fault domains in availability domain {availability_domain}...", error_prefix="Error listing fault domains" ) async def mcp_list_fault_domains(ctx: Context, compartment_id: str, availability_domain: str) -> List[Dict[str, Any]]: """ List all fault domains in an availability domain. Args: compartment_id: OCID of the compartment availability_domain: Name of the availability domain Returns: List of fault domains with their names and IDs """ return list_fault_domains(oci_clients["identity"], compartment_id, availability_domain)
- mcp_server_oci/mcp_server.py:1302-1319 (registration)Tool registration via @mcp.tool(name="list_fault_domains") decorator on the handler function.@mcp.tool(name="list_fault_domains") @mcp_tool_wrapper( start_msg="Listing fault domains in availability domain {availability_domain}...", error_prefix="Error listing fault domains" ) async def mcp_list_fault_domains(ctx: Context, compartment_id: str, availability_domain: str) -> List[Dict[str, Any]]: """ List all fault domains in an availability domain. Args: compartment_id: OCID of the compartment availability_domain: Name of the availability domain Returns: List of fault domains with their names and IDs """ return list_fault_domains(oci_clients["identity"], compartment_id, availability_domain)
- Supporting utility function that performs the actual OCI API call to list_fault_domains and formats the response data.def list_fault_domains(identity_client: oci.identity.IdentityClient, compartment_id: str, availability_domain: str) -> List[Dict[str, Any]]: """ List all fault domains in an availability domain. Args: identity_client: OCI Identity client compartment_id: OCID of the compartment availability_domain: Name of the availability domain Returns: List of fault domains with their details """ try: fds_response = identity_client.list_fault_domains( compartment_id=compartment_id, availability_domain=availability_domain ) fds = [] for fd in fds_response.data: fds.append({ "name": fd.name, "id": fd.id, "compartment_id": fd.compartment_id, "availability_domain": fd.availability_domain, }) logger.info(f"Found {len(fds)} fault domains in availability domain {availability_domain}") return fds except Exception as e: logger.exception(f"Error listing fault domains: {e}") raise