Commit f355d057 authored by Thomas Goirand's avatar Thomas Goirand

Merge tag '4.0.0_rc1' into debian/stein

octavia 4.0.0.0rc1 release candidate

meta:version: 4.0.0.0rc1
meta:diff-start: -
meta:series: stein
meta:release-type: release candidate
meta:pypi: yes
meta:first: no
meta:release:Author: Kendall Nelson <kennelson11@gmail.com>
meta:release:Commit: Michael Johnson <johnsomor@gmail.com>
meta:release:Change-Id: I4aa4ecea6bb4544eb658aa688eda55afe5beeae5
meta:release:Code-Review+1: Michael Johnson <johnsomor@gmail.com>
meta:release:Code-Review+2: Thierry Carrez <thierry@openstack.org>
meta:release:Workflow+1: Thierry Carrez <thierry@openstack.org>
parents cc6cde27 68b9d06d
......@@ -39,7 +39,7 @@ The project source code repository is located at
https://git.openstack.org/cgit/openstack/octavia
Project status, bugs, and requests for feature enhancements are tracked on
https://launchpad.net/octavia
https://storyboard.openstack.org/#!/project/openstack/octavia
For more information on project direction and guiding principles for
contributors, please see the CONSTITUTION.rst file in this directory, or
......@@ -47,3 +47,12 @@ specifications in the specs/ sub-directory.
The project roadmap is available at
https://wiki.openstack.org/wiki/Octavia/Roadmap
External Resources
~~~~~~~~~~~~~~~~~~
* Octavia Wiki: https://wiki.openstack.org/wiki/Octavia
* For help on usage and hacking of Octavia, please send an email to
OpenStack-dev Mailing List <mailto:openstack-discuss@lists.openstack.org>
with **[Octavia]** tag.
......@@ -194,8 +194,8 @@ htmlhelp_basename = 'octaviadoc'
# -- Options for LaTeX output -------------------------------------------------
pdf_theme_path = openstackdocstheme.get_pdf_theme_path()
openstack_logo = openstackdocstheme.get_openstack_logo_path()
pdf_theme_path = openstackdocstheme.get_pdf_theme_path('openstackdocs')
openstack_logo = openstackdocstheme.get_theme_logo_path('openstackdocs')
latex_custom_template = r"""
\newcommand{\openstacklogo}{%s}
......
......@@ -27,7 +27,7 @@ Deprecated API version
Octavia API minor releases are additive to the API major revision and share
the same URL path. Minor revision changes to the API are called out in the API
reference in the section the change occured in. Subsquent minor versions are a
reference in the section the change occurred in. Subsequent minor versions are a
superset of the previous versions of the same major revision.
The API status reflects the state of the endpoint on the service.
......
This diff is collapsed.
......@@ -70,6 +70,7 @@ Response Parameters
- created_at: created_at
- updated_at: updated_at
- image_id: image-id
- compute_flavor: compute-flavor
Response Example
----------------
......@@ -78,7 +79,7 @@ Response Example
:language: javascript
Show Amphora details
===========================
====================
.. rest_method:: GET /v2/octavia/amphorae/{amphora_id}
......@@ -144,6 +145,7 @@ Response Parameters
- created_at: created_at
- updated_at: updated_at
- image_id: image-id
- compute_flavor: compute-flavor
Response Example
----------------
......@@ -151,6 +153,114 @@ Response Example
.. literalinclude:: examples/amphora-show-response.json
:language: javascript
Show Amphora Statistics
=======================
.. rest_method:: GET /v2/octavia/amphorae/{amphora_id}/stats
Show the statistics for an amphora.
If you are not an administrative user, the service returns the HTTP
``Forbidden (403)`` response code.
Use the ``fields`` query parameter to control which fields are
returned in the response body.
**New in version 2.3**
.. rest_status_code:: success ../http-status.yaml
- 200
.. rest_status_code:: error ../http-status.yaml
- 400
- 401
- 403
- 404
- 500
Request
-------
.. rest_parameters:: ../parameters.yaml
- amphora_id: path-amphora-id
- fields: fields
Curl Example
------------
.. literalinclude:: examples/amphora-show-stats-curl
:language: bash
Response Parameters
-------------------
.. rest_parameters:: ../parameters.yaml
- active_connections: active_connections
- amphora_stats: amphora-stats
- bytes_in: bytes_in
- bytes_out: bytes_out
- id: amphora-id
- listener_id: listener-id
- loadbalancer_id: loadbalancer-id
- request_errors: request_errors
- total_connections: total_connections
Response Example
----------------
.. literalinclude:: examples/amphora-show-stats-response.json
:language: javascript
Configure Amphora
=================
.. rest_method:: PUT /v2/octavia/amphorae/{amphora_id}/config
Update the amphora agent configuration. This will push the new configuration
to the amphora agent and will update the configuration options that are
mutatable.
If you are not an administrative user, the service returns the HTTP
``Forbidden (403)`` response code.
This operation does not require a request body.
**New in version 2.7**
.. rest_status_code:: success ../http-status.yaml
- 202
.. rest_status_code:: error ../http-status.yaml
- 400
- 401
- 403
- 404
- 500
Request
-------
.. rest_parameters:: ../parameters.yaml
- amphora_id: path-amphora-id
Curl Example
------------
.. literalinclude:: examples/amphora-config-curl
:language: bash
Response
--------
There is no body content for the response of a successful PUT request.
Failover Amphora
================
......@@ -172,6 +282,7 @@ This operation does not require a request body.
- 400
- 401
- 403
- 404
- 500
Request
......
curl -X PUT -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/6bd55cd3-802e-447e-a518-1e74e23bb106/config
......@@ -19,7 +19,8 @@
"cached_zone": "zone1",
"created_at": "2017-05-10T18:14:44",
"updated_at": "2017-05-10T23:08:12",
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74"
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
},
{
"id": "89c186a3-cb16-497b-b099-c4bd40316642",
......@@ -40,7 +41,8 @@
"cached_zone": "zone2",
"created_at": "2017-06-11T19:15:45",
"updated_at": "2017-06-11T24:09:13",
"image_id": "1014292d-cbaa-4ad6-b38b-2e138389f87f"
"image_id": "1014292d-cbaa-4ad6-b38b-2e138389f87f",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
}
]
}
......@@ -18,6 +18,7 @@
"cached_zone": "zone1",
"created_at": "2017-05-10T18:14:44",
"updated_at": "2017-05-10T23:08:12",
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74"
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
}
}
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/63d8349e-c4d7-4156-bc94-29260607b04f/stats
{
"amphora_stats": [
{
"active_connections": 48629,
"bytes_in": 65671420,
"bytes_out": 774771186,
"id": "63d8349e-c4d7-4156-bc94-29260607b04f",
"listener_id": "bbe44114-cda2-4fe0-b192-d9e24ce661db",
"loadbalancer_id": "65b5a7c3-1437-4909-84cf-cec9f7e371ea",
"request_errors": 0,
"total_connections": 26189172
},
{
"active_connections": 0,
"bytes_in": 5,
"bytes_out": 100,
"id": "63d8349e-c4d7-4156-bc94-29260607b04f",
"listener_id": "af45a658-4eeb-4ce9-8b7e-16b0e5676f87",
"loadbalancer_id": "65b5a7c3-1437-4909-84cf-cec9f7e371ea",
"request_errors": 0,
"total_connections": 1
}
]
}
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavor":{"name":"Basic","description":"A basic standalone Octavia load balancer.","enabled":true,"flavor_profile_id":"5712097e-0092-45dc-bff0-ab68b61ad51a"}}' http://198.51.100.10:9876/v2.0/lbaas/flavors
{
"flavor": {
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavor":{"name":"Basic","description":"A basic standalone Octavia load balancer.","enabled":false}}' http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
{
"flavor": {
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": false
}
}
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": false,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavorprofile":{"name":"amphora-act-stdby","provider_name":"amphora","flavor_data":"{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles
{
"flavorprofile":
{
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavorprofile":{"name":"amphora-standalone","provider_name":"amphora","flavor_data":"{\"loadbalancer_topology\": \"SINGLE\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
{
"flavorprofile":
{
"name": "amphora-standalone",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"SINGLE\"}"
}
}
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-standalone",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"SINGLE\"}"
}
}
{
"flavorprofiles": [
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
]
}
{
"flavors": [
{
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
]
}
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor","admin_state_up":true,"pool_id":"4029d267-3983-4224-a3d0-afb3fe16a2cd","delay":"10","expected_codes":"200","max_retries":"1","http_method":"GET","timeout":"5","url_path":"/","type":"HTTP","max_retries_down":3}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor","admin_state_up":true,"pool_id":"4029d267-3983-4224-a3d0-afb3fe16a2cd","delay":"10","expected_codes":"200","max_retries":"1","http_method":"GET","timeout":"5","url_path":"/","type":"HTTP","max_retries_down":3,"tags":["test_tag"],"http_version":1.1,"domain_name":"testlab.com"}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors
......@@ -10,6 +10,9 @@
"timeout": "5",
"url_path": "/",
"type": "HTTP",
"max_retries_down": 3
"max_retries_down": 3,
"tags": ["test_tag"],
"http_version": 1.1,
"domain_name": "testlab.com"
}
}
......@@ -20,6 +20,9 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_version": 1.1,
"domain_name": "testlab.com"
}
}
......@@ -20,6 +20,9 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_version": 1.0,
"domain_name": null
}
}
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor-updated","admin_state_up":true,"delay":5,"expected_codes":"200","http_method":"HEAD","timeout":2,"url_path":"/index.html","max_retries":2,"max_retries_down":2}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor-updated","admin_state_up":true,"delay":5,"expected_codes":"200","http_method":"HEAD","timeout":2,"url_path":"/index.html","max_retries":2,"max_retries_down":2,"tags":["updated_tag"],"http_version":1.1}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
......@@ -8,6 +8,8 @@
"timeout": 2,
"url_path": "/index.html",
"max_retries": 2,
"max_retries_down": 2
"max_retries_down": 2,
"tags": ["updated_tag"],
"http_version": 1.1
}
}
......@@ -20,6 +20,9 @@
"url_path": "/index.html",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["updated_tag"],
"http_version": 1.1,
"domain_name": null
}
}
......@@ -21,7 +21,10 @@
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE"
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_vesion": 1.0,
"domain_name": null
}
]
}
......@@ -12,14 +12,17 @@
"created_at": "2017-06-24T23:25:14",
"provisioning_status": "ACTIVE",
"updated_at": "2017-06-24T23:30:05",
"redirect_http_code": 302,
"redirect_pool_id": null,
"redirect_prefix": null,
"redirect_url": "http://www.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com"
"name": "redirect-example.com",
"tags": ["test_tag"]
}
]
}
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to example.com","admin_state_up":true,"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","redirect_url":"http://www.example.com","name":"redirect-example.com","action":"REDIRECT_TO_URL","position":1}}' http://198.51.100.10:9876/v2/lbaas/l7policies
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to example.com","admin_state_up":true,"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","redirect_http_code":301,"redirect_url":"http://www.example.com","name":"redirect-example.com","action":"REDIRECT_TO_URL","position":1,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies
......@@ -4,8 +4,10 @@
"admin_state_up": true,
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"redirect_url": "http://www.example.com",
"redirect_http_code": 301,
"name": "redirect-example.com",
"action": "REDIRECT_TO_URL",
"position": 1