# Querying the Status Tree of a Load Balancer

#### Function

This API is used to query the status tree of a load balancer and show information about all resources associated with the load balancer.

When admin_state_up is set to false and operating_status to OFFLINE for a backend server, DISABLED is returned for operating_status of the backend server in the response of this API.

#### URI

GET /v3/{project_id}/elb/loadbalancers/{loadbalancer_id}/statuses

Table 1 Path parameters
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
project_id | Yes | String | Specifies the project ID.
loadbalancer_id | Yes | String | Specifies the load balancer ID.

#### Request Parameters

Table 2 Request header parameters
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
X-Auth-Token | Yes | String | Specifies the token used for IAM authentication.

#### Response Parameters

Status code: 200

Table 3 Response body parameters
Parameter | Type | Description
--- | --- | ---
statuses | LoadBalancerStatusResult object | Provides information about the load balancer status tree.
request_id | String | Specifies the request ID. The value is automatically generated.

Table 4 LoadBalancerStatusResult
Parameter | Type | Description
--- | --- | ---
loadbalancer | LoadBalancerStatus object | Specifies the statuses of the load balancer and its associated resources.

Table 5 LoadBalancerStatus
Parameter | Type | Description
--- | --- | ---
name | String | Specifies the load balancer name. Minimum: 1 Maximum: 255
provisioning_status | String | Specifies the provisioning status of the load balancer. The value can only be ACTIVE.
listeners | Array of LoadBalancerStatusListener objects | Lists the listeners added to the load balancer.
pools | Array of LoadBalancerStatusPool objects | Lists the backend server groups associated with the load balancer.
id | String | Specifies the load balancer ID.

operating_status

String

Specifies the operating status of the load balancer.

The value can only be one of the following:

- ONLINE (default): The load balancer is running normally.

- DEGRADED: This status is displayed only when operating_status is set to OFFLINE for a backend server associated with the load balancer and the API for querying the load balancer status tree is called.

- DISABLED: This status is displayed only when admin_state_up of the load balancer is set to false and the API for querying the load balancer status tree is called.

Table 6 LoadBalancerStatusListener
Parameter | Type | Description
--- | --- | ---
name | String | Specifies the name of the listener added to the load balancer. Minimum: 1 Maximum: 255
provisioning_status | String | Specifies the provisioning status of the listener. The value can only be ACTIVE. Default: ACTIVE
pools | Array of LoadBalancerStatusPool objects | Specifies the operating status of the backend server group associated with the listener.
l7policies | Array of LoadBalancerStatusPolicy objects | Specifies the operating status of the forwarding policy added to the listener.
id | String | Specifies the listener ID.

operating_status

String

Specifies the operating status of the listener.

The value can only be one of the following:

- ONLINE (default): The listener is running normally.

- DISABLED: This status is displayed only when admin_state_up of the load balancer or the listener is set to false and the API for querying the load balancer status tree is called.

Table 7 LoadBalancerStatusPolicy
Parameter | Type | Description
--- | --- | ---
action | String | Specifies whether requests are forwarded to another backend server group or redirected to an HTTPS listener. The value can be REDIRECT_TO_POOL or REDIRECT_TO_LISTENER.
id | String | Specifies the policy ID.
provisioning_status | String | Specifies the provisioning status of the forwarding policy. The value can only be ACTIVE. Default: ACTIVE
name | String | Specifies the policy name. Minimum: 1 Maximum: 255
rules | Array of LoadBalancerStatusL7Rule objects | Specifies the forwarding rule.

Table 8 LoadBalancerStatusL7Rule
Parameter | Type | Description
--- | --- | ---
id | String | Specifies the ID of the forwarding rule.
provisioning_status | String | Specifies the provisioning status of the forwarding rule. The value can only be ACTIVE.
type | String | Specifies the match content. The value can be HOST_NAME or PATH. HOST_NAME indicates that the domain name will be used for matching, and PATH indicates that the URL will be used for matching. The type value must be unique for each forwarding rule in a forwarding policy.

Table 9 LoadBalancerStatusPool
Parameter | Type | Description
--- | --- | ---
provisioning_status | String | Specifies the provisioning status of the backend server group. The value can only be ACTIVE.
name | String | Specifies the name of the backend server group. Minimum: 1 Maximum: 255
healthmonitor | LoadBalancerStatusHealthMonitor object | Specifies the health check results of backend servers in the load balancer status tree.
members | Array of LoadBalancerStatusMember objects | Specifies the backend server.
id | String | Specifies the ID of the backend server group.

operating_status

String

Specifies the operating status of the backend server group.

The value can be one of the following:

- ONLINE: The backend server group is running normally.

- DEGRADED: This status is displayed only when operating_status of a backend server in the group is set to OFFLINE and the API for querying the load balancer status tree is called.

- DISABLED: This status is displayed only when admin_state_up of the backend server group or the associated load balancer is set to false and the API for querying the load balancer status tree is called.

Table 10 LoadBalancerStatusHealthMonitor
Parameter | Type | Description
--- | --- | ---
type | String | Specifies the health check protocol. The value can be TCP, UDP_CONNECT, or HTTP.
id | String | Specifies the health check ID.
name | String | Specifies the health check name. Minimum: 1 Maximum: 255
provisioning_status | String | Specifies the provisioning status of the health check. The value can only be ACTIVE.

Table 11 LoadBalancerStatusMember
Parameter | Type | Description
--- | --- | ---
provisioning_status | String | Specifies the provisioning status of the backend server. The value can only be ACTIVE. Default: ACTIVE
address | String | Specifies the IP address of the backend server.
protocol_port | Integer | Specifies the port used by the backend server to receive requests. The port number ranges from 1 to 65535.
id | String | Specifies the backend server ID.

operating_status

String

Specifies the operating status of the backend server.

The value can be one of the following:

- ONLINE: The backend server is running normally.

- NO_MONITOR: No health check is configured for the backend server group to which the backend server belongs.

- DISABLED: The backend server is not available. This status is displayed only when admin_state_up of the backend server, or the backend server group to which it belongs, or the associated load balancer is set to false and the API for querying the load balancer status tree is called.

- OFFLINE: The cloud server used as the backend server is stopped or does not exist.

#### Example Requests

Querying the status tree of a load balancer

    GET

    https://{ELB_Endpoint}/v3/{project_id}/elb/loadbalancers/38278031-cfca-44be-81be-a412f618773b/statuses

#### Example Responses

Status code: 200

Successful request.

    {
      "statuses" : {
        "loadbalancer" : {
          "name" : "lb-jy",
          "provisioning_status" : "ACTIVE",
          "listeners" : [ {
            "name" : "listener-jy-1",
            "provisioning_status" : "ACTIVE",
            "pools" : [ {
              "name" : "pool-jy-1",
              "provisioning_status" : "ACTIVE",
              "healthmonitor" : {
                "type" : "TCP",
                "id" : "7422b51a-0ed2-4702-9429-4f88349276c6",
                "name" : "",
                "provisioning_status" : "ACTIVE"
              },
              "members" : [ {
                "protocol_port" : 80,
                "address" : "192.168.44.11",
                "id" : "7bbf7151-0dce-4087-b316-06c7fa17b894",
                "operating_status" : "ONLINE",
                "provisioning_status" : "ACTIVE"
              } ],
              "id" : "c54b3286-2349-4c5c-ade1-e6bb0b26ad18",
              "operating_status" : "ONLINE"
            } ],
            "l7policies" : [ ],
            "id" : "eb84c5b4-9bc5-4bee-939d-3900fb05dc7b",
            "operating_status" : "ONLINE"
          } ],
          "pools" : [ {
            "name" : "pool-jy-1",
            "provisioning_status" : "ACTIVE",
            "healthmonitor" : {
              "type" : "TCP",
              "id" : "7422b51a-0ed2-4702-9429-4f88349276c6",
              "name" : "",
              "provisioning_status" : "ACTIVE"
            },
            "members" : [ {
              "protocol_port" : 80,
              "address" : "192.168.44.11",
              "id" : "7bbf7151-0dce-4087-b316-06c7fa17b894",
              "operating_status" : "ONLINE",
              "provisioning_status" : "ACTIVE"
            } ],
            "id" : "c54b3286-2349-4c5c-ade1-e6bb0b26ad18",
            "operating_status" : "ONLINE"
          } ],
          "id" : "38278031-cfca-44be-81be-a412f618773b",
          "operating_status" : "ONLINE"
        }
      }
    }

#### Status Codes

Status Code | Description
--- | ---
200 | Successful request.

#### Error Codes

See Error Codes.

Parent topic: Load Balancer