Instead of having a per-release backlog directory, create a top level one that holds the last release backlog. In a healthy project this directory is really meant to be empty or only temporary filled. For specs that are two releases older, the content will be moved to an 'archive' directory, purely for the record. Hopefully this one too will be empty. API and Juno incubator were moved to a miscellanea directory to finish off the cleanup. Finally, some blueprints completed and therefore were moved to the Liberty directory. Change-Id: I972a9a56c038864d9c91ead6944c6b9355916668
16 KiB
Agent schedulers
The agent scheduler extensions schedule resources among agents.
The agent scheduler feature consist of several agent scheduler extensions. In Havana, the following extensions are available.
- DHCP agent scheduler (
dhcp_agent_scheduler
) - L3 agent scheduler (
l3_agent_scheduler
) - load balancer agent scheduler
(
lbaas_agent_scheduler
)
In Grizzly, the DHCP agent scheduler and the L3 agent scheduler
features are provided by a single extension named the agent scheduler
(agent_scheduler
). In Havana, this extension is split into
the DHCP agent scheduler and the L3 agent scheduler extensions. The load
balancer agent scheduler extension was introduced in Havana.
DHCP agent scheduler
(dhcp_agent_scheduler
)
The DHCP agent scheduler extension enables administrators to assign DHCP servers for Neutron networks to given Neutron DHCP agents, and retrieve mappings between Neutron networks and DHCP agents. This feature is implemented on top of Agent Management extension.
GET /agents/``agent_id``/dhcp-networks
Lists networks that the specified DHCP agent hosts.
GET /networks/``network_id``/dhcp-agents
Lists DHCP agents that host a specified network.
POST /agents/``agent_id``/dhcp-networks
Schedules the network to that the specified DHCP agent.
DELETE /agents/``agent_id``/dhcp-networks/``network_id``
Removes the network from that the specified DHCP agent.
List networks hosted by a DHCP agent
GET /agents/``agent_id``/dhcp-networks
Lists networks that the specified DHCP agenthosts.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example List networks hosted by on DHCP agent: JSON request
GET /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 797f94caf0a8481c893a232cc0c1dfca
Example List networks hosted by DHCP agent: JSON response
{
"networks":[
{
"status":"ACTIVE",
"subnets":[
"15a09f6c-87a5-4d14-b2cf-03d97cd4b456"
],
"name":"net1",
"provider:physical_network":"physnet1",
"admin_state_up":true,
"tenant_id":"3671f46ec35e4bbca6ef92ab7975e463",
"provider:network_type":"vlan",
"router:external":false,
"shared":false,
"id":"2d627131-c841-4e3a-ace6-f2dd75773b6d",
"provider:segmentation_id":1001
},
{
"status":"ACTIVE",
"subnets":[
],
"name":"net2",
"provider:physical_network":null,
"admin_state_up":true,
"tenant_id":"3671f46ec35e4bbca6ef92ab7975e463",
"provider:network_type":"local",
"router:external":false,
"shared":false,
"id":"524e26ea-fad4-4bb0-b504-1ad0dc770e7a",
"provider:segmentation_id":null
},
{
"status":"ACTIVE",
"subnets":[
"43671fba-c76b-4c33-bd7e-8bef54145f2f"
],
"name":"mynet1",
"provider:physical_network":"physnet1",
"admin_state_up":true,
"tenant_id":"3671f46ec35e4bbca6ef92ab7975e463",
"provider:network_type":"vlan",
"router:external":false,
"shared":false,
"id":"cfa65a54-06a8-4f9f-86b0-73c700c02c41",
"provider:segmentation_id":1000
}
]
}
List DHCP agents hosted by network
GET /networks/``network_id``/dhcp-agents
Lists DHCP agents that hosts a specified network.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example List DHCP agents hosted by network: JSON request
GET /v2.0/networks/2d627131-c841-4e3a-ace6-f2dd75773b6d/dhcp-agents HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: cc0f378bdf1545fb8dea2120c89eb532
Example List DHCP agents hosted by network: JSON response
{
"agents":[
{
"binary":"neutron-dhcp-agent",
"description":null,
"admin_state_up":true,
"heartbeat_timestamp":"2013-03-27T00:24:01.000000",
"alive":false,
"topic":"dhcp_agent",
"host":"HostC",
"agent_type":"DHCP agent",
"created_at":"2013-03-26T23:54:20.000000",
"started_at":"2013-03-26T23:54:20.000000",
"id":"d5724d7e-389d-4ba0-8d00-fc673a147bfa",
"configurations":{
"subnets":2,
"use_namespaces":true,
"dhcp_driver":"neutron.agent.linux.dhcp.Dnsmasq",
"networks":2,
"dhcp_lease_time":120,
"ports":5
}
}
]
}
Schedule network to DHCP agent
POST /agents/``agent_id``/dhcp-networks
Schedules the network to that the specified DHCP agent.
Normal response Code: 201
Error response Codes: Unauthorized (401), Forbidden (403), Conflict (409) if the network is already hosted by that the specified DHCP agent, NotFound(404) when the specified agent is not a valid DHCP agent.
This operation requires a request body.
This operation returns a null
body.
Example Schedule network: JSON request
POST /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: d88f7af21ee34f6c87e23e46cf3f986d
Content-Length: 54
{"network_id": "1ae075ca-708b-4e66-b4a7-b7698632f05f"}
Example Schedule network: JSON response
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Content-Length: 4
Date: Wed, 27 Mar 2013 01:22:46 GMT
null
Remove network from DHCP agent
DELETE /agents/``agent_id``/dhcp-networks/``network_id``
Removes the network from that the specified DHCP agent.
Normal response Code: 204
Error response Codes: Unauthorized (401), Forbidden (403), NotFound (404), Conflict (409) if the network is not hosted by that the specified DHCP agent.
This operation does not require a request body.
This operation does not return a response body.
Example Remove network from DHCP agent: JSON request
DELETE /v2.0/agents/d5724d7e-389d-4ba0-8d00-fc673a147bfa/dhcp-networks/1ae075ca-708b-4e66-b4a7-b7698632f05f.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 7ae91cde8f504031be5a2cd5b99d4fe9
L3 agent scheduler
(l3_agent_scheduler
)
The L3 agent scheduler extension allows administrators to assign Neutron routers to Neutron L3 agents, and retrieve mappings between Neutron routers and L3 agents. This feature is implemented on top of Agent Management extension.
GET /agents/``agent_id``/l3-routers
Lists routers that the specified L3 agent hosts.
GET /routers/``router_id``/l3-agents
Lists L3 agents that hosts a specified router.
POST /agents/``agent_id``/l3-routers
Schedules the router to that the specified L3 agent.
DELETE /agents/``agent_id``/l3-routers/``router_id``
Removes the router from that the specified L3 agent.
List routers hosted by an L3 agent
GET /agents/``agent_id``/l3-routers
Lists routers that the specified L3 agent hosts.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example List routers hosted by L3 agent: JSON request
GET /v2.0/agents/fa24e88e-3d2f-4fc2-b038-5fb5be294c03/l3-routers.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 6eeea6e73b68415f85d8368902a32c11
Example List routers hosted by L3 agent: JSON response
{
"routers":[
{
"status":"ACTIVE",
"external_gateway_info":null,
"name":"router1",
"admin_state_up":true,
"tenant_id":"3671f46ec35e4bbca6ef92ab7975e463",
"routes":[
],
"id":"8eef2388-f27d-4a17-986e-9319a77ccd9d"
}
]
}
List L3 agents hosted by router
GET /routers/``router_id``/l3-agents
Lists L3 agents that hosts a specified router.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example List L3 agents hosted by router: JSON request
GET /v2.0/routers/8eef2388-f27d-4a17-986e-9319a77ccd9d/l3-agents.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: bce63afb1e794c70972a19a7c2d6dcab
Example List L3 agents hosted by router: JSON response
{
"agents":[
{
"binary":"neutron-l3-agent",
"description":null,
"admin_state_up":true,
"heartbeat_timestamp":"2013-03-27T00:24:03.000000",
"alive":false,
"topic":"l3_agent",
"host":"HostC",
"agent_type":"L3 agent",
"created_at":"2013-03-26T23:54:26.000000",
"started_at":"2013-03-26T23:54:26.000000",
"id":"fa24e88e-3d2f-4fc2-b038-5fb5be294c03",
"configurations":{
"router_id":"",
"gateway_external_network_id":"",
"handle_internal_only_routers":true,
"use_namespaces":true,
"routers":0,
"interfaces":0,
"floating_ips":0,
"interface_driver":"neutron.agent.linux.interface.OVSInterfaceDriver",
"ex_gw_ports":0
}
}
]
}
Schedule router to L3 agent
POST /agents/``agent_id``/l3-routers
Schedules one router to that the specified L3 agent.
Normal response Code: 201
Error response Codes: Unauthorized (401), Forbidden (403), Conflict (409) if the router is already hosted, NotFound (404) if the specified agent is not a valid L3 agent.
This operation requires a request body.
This operation returns a null
body.
Example Schedule router: JSON request
POST /v2.0/agents/fa24e88e-3d2f-4fc2-b038-5fb5be294c03/l3-routers.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: d88f7af21ee34f6c87e23e46cf3f986d
Content-Length: 54
{"router_id": "8eef2388-f27d-4a17-986e-9319a77ccd9d"}
Example Schedule router: JSON response
HTTP/1.1 201 Created
Content-Type: application/json; charset=UTF-8
Content-Length: 4
Date: Wed, 27 Mar 2013 01:22:46 GMT
null
Remove router from L3 agent
DELETE /agents/``agent_id``/l3-routers/``network_id``
Removes the router from that the specified L3 agent.
Normal response Code: 204
Error response Codes: Unauthorized (401), Forbidden (403), Conflict (409) if the router is not hosted by that the specified L3 agent.
This operation does not require a request body.
This operation does not return a response body.
Example Remove router from L3 agent: JSON request
DELETE /v2.0/agents/b7d7ba43-1a05-4b09-ba07-67242d4a98f4/l3-routers/8eef2388-f27d-4a17-986e-9319a77ccd9d.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 2147ef6fe4444f0299b1c0b6b529ff47
Load
balancer agent scheduler (lbaas_agent_scheduler
)
The LBaaS agent scheduler extension allows administrators to retrieve mappings between load balancer pools to LBaaS agents. In Havana, this extension does not provide an ability to assign load balancer pool to specific LBaaS agent. Pools are scheduled automatically when created. This feature is implemented on top of Agent Management extension. The load balancer agent scheduler extension was introduced in Havana.
GET /agents/``agent_id``/loadbalancer-pools
Lists pools that the specified LBaaS agent hosts.
GET /lb/pools/``pool_id``/loadbalancer-agent
Shows an LBaaS agent that hosts a specified pool.
List pools hosted by an LBaaS agent
GET /agents/``agent_id``/loadbalancer-pools
Lists pools that the specified LBaaS agent hosts.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example List pools hosted by LBaaS agent: JSON request
GET /v2.0/agents/6ee1df7f-bae4-4ee9-910a-d33b000773b0/loadbalancer-pools.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: 6eeea6e73b68415f85d8368902a32c11
Example List pools hosted by LBaaS agent: JSON response
{
"pools": [
{
"admin_state_up": true,
"description": "",
"health_monitors": [],
"health_monitors_status": [],
"id": "28296abb-e675-4288-9cd0-6c112c720db0",
"lb_method": "ROUND_ROBIN",
"members": [],
"name": "pool1",
"protocol": "HTTP",
"provider": "haproxy",
"status": "PENDING_CREATE",
"status_description": null,
"subnet_id": "f8fd83d3-2080-4ab9-9814-391fe7b8a7a4",
"tenant_id": "54d7b6253c8c4e64862fbd08b3fc08cd",
"vip_id": null
}
]
}
Show LBaaS agent that hosts pool
GET /lb/pools/``pool_id``/loadbalancer-agent
Shows an LBaaS agent that hosts a specified pool.
Normal response Code: 200
Error response Codes: Unauthorized (401), Forbidden (403)
This operation does not require a request body.
This operation returns a response body.
Example Show LBaaS agent that hosts pool: JSON request
GET /v2.0/lb/pools/28296abb-e675-4288-9cd0-6c112c720db0/loadbalancer-agent.json HTTP/1.1
Host: localhost:9696
User-Agent: python-neutronclient
Content-Type: application/json
Accept: application/json
X-Auth-Token: bce63afb1e794c70972a19a7c2d6dcab
Example Show LBaaS agent that hosts pool: JSON response
{
"agent": {
"admin_state_up": true,
"agent_type": "Loadbalancer agent",
"alive": true,
"binary": "neutron-loadbalancer-agent",
"configurations": {
"device_driver": "neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver",
"devices": 0,
"interface_driver": "neutron.agent.linux.interface.OVSInterfaceDriver"
},
"created_at": "2013-10-01 12:50:13",
"description": null,
"heartbeat_timestamp": "2013-10-01 12:56:29",
"host": "ostack02",
"id": "6ee1df7f-bae4-4ee9-910a-d33b000773b0",
"started_at": "2013-10-01 12:50:13",
"topic": "lbaas_process_on_host_agent"
}
}