43 Commits

Author SHA1 Message Date
ZhaoBo
51f6f7258b Extend api to accept qos_policy_id
This patch extend Octavia v2 API to access qos_policy_id from neutron.
Users can pass it as 'vip_qos_policy_id' to Octavia request body to
create/update Loadbalancers, and the vrrp ports will have the qos
abilities.

This patch modifies the Loadbalancer Post/Put request body and response
body. It also extends the 'vip' table with the new column named
'qos_policy_id' to store the qos_id from neutron.

Co-Authored-By: Reedip <reedip.banerjee@nectechnologies.in>

Change-Id: I43aba9d2ae816b1498d16da077936d6bdb62e30a
2017-12-20 09:23:16 +08:00
Bar RH
3ada33d4c7 Fix filtering in list API calls
The API's filtering arguments were not handled properly, and
therefore, some were consistently ignored.
This patch resolves this by translating the argument names to
the ORM data model's fields, and then validating them.

Additionally, enforcing of arguments validity is now the default
behavior. Should unrecognized filtering arguments be entered,
the API call will fail with code 400.

Task: 5844
Story: 2001224

Change-Id: I8f61880d6c11037d32b96e9827fb4e810dc219c2
2017-12-05 16:13:56 +02:00
Bar RH
3d4bb0785c Rename 'remove' to 'reset' in Quota API
The name of the remove_quota API call is misleading.
The real purpose of this call is to reset the quota
to its default value, not to remove it.

This patch is limited to the title of the call in v2,
and it does not modify the REST API in any way.

Task: 5868
Story: 2001295

Change-Id: Idfb1f3c3fe90d71434d0bb6a973e146ea3dea67c
2017-11-27 16:52:06 +02:00
Bar RH
313ffd4ec7 Refine api-ref regarding loadbalancer creation
Emphasize that specifying a VIP is mandatory.

Change-Id: Icfc73f7fdfab886731ced77ebea6f8edb00a1719
Closes-Bug Story: 2001279
2017-11-21 09:29:29 -08:00
Zuul
504cb6c682 Merge "Add cached_zone to the amphora record" 2017-11-01 19:46:39 +00:00
root
d482b0e78a Fix body error of update loadbalancer
Change-Id: I29d1949545252f8d6333c635851f59258deda4a8
2017-11-01 14:12:40 +00:00
Adam Harwell
b8ebbe9919 Add cached_zone to the amphora record
This will enable a number of possible features that need to select
amphorae based on their availability zone.

This would allow for quick-lookups on large lists and could be stale,
but it would be expected that future code that uses this would check
with nova for an update if it needs fully accurate data.

Having it be explicitly "cached" should take care of concerns about
users (operators, in this case) being confused about correctness.
Using simply the word "zone" should address concerns about commonality
between compute providers.

Change-Id: I8e26f99bca3496a454ba7bae2570f517e07d5fc2
Story: 2001221
Task: 5732
2017-10-31 17:15:45 -07:00
Jenkins
859bb3bae3 Merge "Allow PUT to /pools/<id>/members to batch update members" 2017-10-14 14:11:43 +00:00
Michael Johnson
40484cc5c6 L7 policy API-REF update for result codes
The Octavia API-REF did not specify the HTTP response codes users
will receive when using the L7 policy actions REDIRECT_TO_URL and
REJECT.  This patch details those response codes.

Change-Id: Ibc2345deac518c49ece458e1bf09759cab25fa92
2017-10-09 05:39:41 +00:00
Jenkins
446c98ab3b Merge "Add admin endpoint for amphora info" 2017-10-06 00:23:10 +00:00
Adam Harwell
7f1c5011ed Add admin endpoint for amphora info
Administrators can now use /v2.0/octavia/amphorae to retrieve internal
information about amphora details like compute_id and lb_network_ip.

Change-Id: I5ac8d1ce189db09d52e518d42aeb3a192b8a8814
2017-09-22 23:39:46 +00:00
Adam Harwell
45e39fa216 Allow PUT to /pools/<id>/members to batch update members
Also fix an incorrect exposure of /healthmonitors on /pools and a badly
ordered flow for member updates.

Change-Id: Id256ea94293519b75983f7a44945ac9bbbf25cd1
Implements: blueprint member-put-list
2017-09-20 18:14:53 -07:00
Jenkins
27735576fd Merge "[Trivialfix]Fix typos in octavia" 2017-09-19 01:22:25 +00:00
shangxiaobj
9fd292fd28 [Trivialfix]Fix typos in octavia
Fix typos found in octavia.

Change-Id: Icd0b6c394a54f323015f58049c25bad9abd36144
2017-08-31 20:34:41 +00:00
German Eichberger
01e5af1a01 Adds the ability to failover a load balancer
This will allow an operator to force the failover of a load
balancer's underlying amphora for upgrades or other
maintenance.

- Adds a new failover endpoint to the queue
- Adds the functionality to the worker
- Adds the failover command to the producer
- Adds a failover controller so
  /lodabalancer/123/failover will initiate
  a failover and return 202
- Adds logic to insert the server group into the
  failover flow

Change-Id: Ic4698066773828ae37b55a8d79bd2df6fc6624be
2017-08-29 12:22:40 -07:00
Michael Johnson
7c986df83d Fix LB creation with VIP port
Octavia v2 API was failing to create the load balancer when the user
specified a VIP port ID.
This also improves the user experience when specifying a VIP address.
It also removes the un-used nova_network directory.

Change-Id: I8b533094df1e5425f824fff0454335709ce05447
Closes-Bug: #1709922
2017-08-10 16:18:29 -07:00
Adam Harwell
12135dcc92 Properly handle more states from HAProxy health messages
DRAIN / MAINT are handled now.
Also, transitional UP/DOWN states report correctly now.

Change-Id: I8b2bf54de6f79c98822689e48f6ec0b65c6296c5
Closes-Bug: #1708042
2017-08-01 17:43:40 -07:00
Michael Johnson
3007738fec Update some links to the new docs locations.
Change-Id: Ic10c2a2d924e5daa5567f33ccb80d6e33949f636
2017-07-05 15:37:28 -07:00
Michael Johnson
93c8e006ce Update Octavia docs for documentation migration
This patch updates the Octavia documentation in support of the
OpenStack documentation migration[1].

[1] https://specs.openstack.org/openstack/docs-specs/specs \
    /pike/os-manuals-migration.html

Change-Id: I97fd038b8050bfe776c3fca8336d9090f8236362
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
2017-07-03 11:43:40 -07:00
Andreas Jaeger
a7bdf0351f Update api-ref for openstackdocstheme 1.11
Use the new options from openstackdocstheme 1.11, update requirements
for it (syncing with global requirements file).

For details, see https://docs.openstack.org/openstackdocstheme/latest/

Change-Id: I398d0c3fdc07ed184e83c8f25ef7176eac830e30
2017-06-29 10:56:05 +02:00
Jenkins
1654ea06e7 Merge "Update our docs to point to the new api-ref" 2017-06-29 04:20:32 +00:00
Michael Johnson
84feb7c4b0 Update our docs to point to the new api-ref
Now that we have a full API reference, point our docs at the
official location.

This patch also clarifies that the v1 API is in "SUPPORTED" status.

Change-Id: Icb64dd56ee6b875d5cc4915017e9e272b2efd46d
2017-06-28 19:08:05 -07:00
johnsom
2ca2b8076d Add v2 Quota API section
This patch adds the quota section to the v2 API reference.

Change-Id: I23cd2c4a65e4d7bf3c85f176a3042fefe0fb35b9
Partial-Bug: #1558385
2017-06-28 09:32:56 -07:00
johnsom
debcbc50c8 Add v2 L7 Rule API section
This patch adds the L7 rule section to the v2 API reference.

Change-Id: I43ad86c7cc72b4844247c39f76f30dde349e7a65
Partial-Bug: #1558385
2017-06-27 10:03:49 -07:00
johnsom
bc886f2f65 Add v2 L7 Policy API section
This patch adds the L7 policy section to the v2 API reference.

This patch also updates the child object create error code lists to
include 409 as a possible error code.

Change-Id: I6cb469c65832af3440c18dc71c7786a8fbf9bd2b
Partial-Bug: #1558385
2017-06-26 13:33:26 -07:00
Adam Harwell
897214a4ff SSL Health Monitors didn't actually ... check very much
Change HTTPS monitors to be a real check, and add TLS-HELLO type to
perform the older check functionality if desired.
The only reason you would need TLS-HELLO instead of HTTPS is if your
application does client-cert validation, as the HAProxy box won't have a
valid client cert.

Also add missing PING type to the DB, so PING monitors can be used.

Change-Id: I15a79b7fb0c2ff1020090b4057909a1f41a2c8ad
2017-06-22 00:04:19 +00:00
johnsom
425d6017fd Add v2 health monitor API section
This patch adds the health monitor section to the v2 API reference.

Change-Id: I269eb6e457d317e7d942adcc1d957bc96e4a315f
Partial-Bug: #1558385
2017-06-05 18:28:34 +00:00
johnsom
63b2b0e1ce Add v2 member API section
This patch adds the member section to the v2 API reference.

Change-Id: I5e10a215d685c27a7e5be882a2598fe7cb3875ee
Partial-Bug: #1558385
2017-06-05 18:28:27 +00:00
Jenkins
b14147d337 Merge "Add v2 pool API section" 2017-06-05 15:02:14 +00:00
Jenkins
4bdbf8493f Merge "Optional L7Policies param was marked as required" 2017-06-01 18:29:17 +00:00
johnsom
639aa1cd04 Add v2 pool API section
This patch adds the pool section to the v2 API reference.

Change-Id: I70e5cb07a4435f58f5da3999be70162efa7f0bd8
Partial-Bug: #1558385
2017-06-01 09:12:03 -07:00
Adam Harwell
357216e8c9 Optional L7Policies param was marked as required
Change-Id: I33383ffd1983f7963b3e3d6a5bbb692cb5bba144
2017-05-24 16:19:12 -07:00
Adam Harwell
6fa379c21b Fix pool response to fill healthmonitor_id properly
This means both renaming the field to healthmonitor_id and also adding
the code to fill it.
Also rename health_monitor objects to healthmonitor for consistency.

Change-Id: I4c3deb9ad20f5089168030f27fc0929155379585
Closes-Bug: #1693044
2017-05-24 15:34:04 -07:00
Adam Harwell
b80cc9c923 Add cascade delete for APIv2
Change-Id: I96ee5963137cc3b396de538db429bab2963562a6
Closes-Bug: #1663701
2017-05-08 13:39:00 -07:00
Adam Harwell
fb0da76c27 Add support for single-create for APIv2
Still need to fix the entry-points for each individual type, but that
wasn't even in the original spec. Not sure if we even want that.

I think this may not do things EXACTLY how the old one did it, we'll
need to look into whether it matters, as we never published docs for it
and I don't think it ever actually worked properly in neutron-lbaas.

Also closing a few bugs that are only peripherally related, because we
(possibly me) forgot to tag them on the individual CRs, but I'm
considering them closed as of this patch. See below for my reasoning on
each individual bug, and feel free to post counter-arguments.

For #1673546 (single-call create): This is the obvious one!
For #1673499 (lb return pool object): Rolled into this patch as a matter
of course, abandoned the original fix as it is no longer relevant.
For #1544214 (root tags): All existing resources now have root tags. Any
new ones will also need root tags, but I would consider this bug closed.
For #1596636 (tenant facing API): Every object is now creatable via the
v2 API, so I would consider this to be complete. Quotas and some
additional work is being finished, but it's not necessary for this IMO.
For #1665446 (hm id): This was resolved in the HM patch, I just forgot
to close it, and including it here will ensure it is release-tracked.
For #1685789 (listener quota): Just shoving it in here as I do the
single-create quotas.
For #1685827 (hm quota): Same as listener quota.

Closes-Bug: #1673546
Closes-Bug: #1673499
Closes-Bug: #1544214
Closes-Bug: #1596636
Closes-Bug: #1665446
Closes-Bug: #1685789
Closes-Bug: #1685827

Depends-On: I3d86482a2999197a60a81d42afc5ef7a6e71e313

Change-Id: I4ff03593e1cfd8dca00a13c0550d6cf95b93d746
2017-05-05 20:56:22 -07:00
Jenkins
f224a610b0 Merge "Add v2 listener API section" 2017-04-27 14:19:41 +00:00
johnsom
6dd09d7c7c Add v2 listener API section
This patch adds the listener section to the v2 API reference.

Change-Id: I09731856fedb3758f850208028974dfda080d08a
Partial-Bug: #1558385
2017-04-25 09:15:23 -07:00
M V P Nitesh
e89a679965 Fix doc generation for Python3
Fix the Sphinx html_last_updated_fmt for Python3.
The html_last_updated_fmt option is interpeted as a
byte string in python3, causing Sphinx build to break.
This patch makes it utf-8 string.

Change-Id: I6cde9bb1f815bae91378772626142dd7645188d7
2017-04-19 12:48:03 +05:30
johnsom
55d0660d89 Adds v2 load balancer API section
This patch adds the load balancer section to the v2 API reference.

Change-Id: Ibe5b6372ba859f47e6738e97ff14c66f58514e42
Partial-Bug: #1558385
2017-04-04 20:27:57 -07:00
Jenkins
8774d1b021 Merge "Adds v2 general API information section" 2017-03-11 02:06:13 +00:00
Michael Johnson
7fdc8a1e06 Update for new pep8 rules E402 and W503
Change-Id: I181f396b002d0c3b89579c4fc33c34b1c099953e
2017-03-10 22:21:39 +00:00
johnsom
007e5761c8 Adds v2 general API information section
This patch add the general information section to the v2 API reference.

Change-Id: I7b780d4afaa19801d800ab24f5c6ab922b57a7e2
Partial-Bug: #1558385
2017-03-03 14:35:57 -08:00
johnsom
5b72c134a9 Create api-ref base for Octavia
This patch will create the initial directory and index for the api reference
documentation (using the new guidelines) for the Octavia API.

Change-Id: Id5fbe569acfe7348f4f9dfc9cbef49834ea824c3
Partial-Bug: #1558385
2017-02-13 23:08:14 +00:00