737 Commits

Author SHA1 Message Date
Stephen Balukoff
feb7a375fc Add release notes for L7 and shared pools
The previously-merged patches for L7 and shared pools did not include
release notes. This commit adds the missing release notes.

Change-Id: I0c216addf9e85d512fd2fe689db1e819d183b36c
Partially-Implements: blueprint lbaas-l7-rules
2016-02-29 22:48:56 -08:00
Trevor Vardeman
4a1acafa12 Get Me A Load Balancer Controller
Sets up the flows and some new tasks required to create all the
resources needed for an entire load balancer graph.  This includes
updating all listeners on all amphorae (depending on topology), and
plugging networks and setting up the routes and rules on every
amphora for a load balancer.  Luckily this mostly reuses tasks and
flows that were already created, though some new tasks and flows
were created specifically for handling many listeners.

Co-Authored-By: Trevor Vardeman <trevor.vardeman@rackspace.com>

Change-Id: I43a838e80281a37537e179cd8d4768f45e1ca7f1
2016-02-29 17:18:45 -06:00
Trevor Vardeman
c7d6146e59 Get me a Load Balancer API
We need the ability to send a request to the API with a fully configured
load balancer and have it create all the appropriate resources all at once.  It
will support all load balancing topologies, and all different configurations of
a load balancer.

Co-Author: Trevor Vardeman <trevor.vardeman@rackspace.com>

Change-Id: Id3a5ddb8efded8c6ad72a7118424ec01c777318d
2016-02-29 17:08:23 -06:00
Jenkins
e0e6bfca91 Merge "Cascading LB delete" 2016-02-29 22:48:27 +00:00
Jenkins
02b4199f40 Merge "Improved LoadBalancer Delete" 2016-02-29 22:43:21 +00:00
Jenkins
667bb92381 Merge "Remove old SSH specific config options from sample config" 2016-02-28 01:06:03 +00:00
German Eichberger
c22baccd98 Cascading LB delete
Adds a new cascading delete method to the REST API.
When a load balancer is deleted it will alo delete
all associated listeners, pools, memebers, healthmonitors,
and L7 Policies

Change-Id: I0fd88923dc76e573b92d83f68d292ded913b13a6
2016-02-27 10:28:38 -08:00
Adam Harwell
06f50c07ef Barbican Cert Manager fails to correctly parse intermediates
This may be a candidate for stable/liberty backport.

Change-Id: Ia61bbc7099630fa33ca0f1ee4825c2b01244c7f3
Closes-Bug: 1550535
2016-02-27 04:59:06 -06:00
OpenStack Proposal Bot
3ec5d4fa51 Updated from global requirements
Change-Id: I590c4e57f42db1f23c66dccb60fd6cdc59f6ef29
2016-02-26 01:51:44 +00:00
German Eichberger
7ca43d208f Improved LoadBalancer Delete
Removes unecessary and error causing steps from the
Delete LoadBalancer flow.

Change-Id: Ic96c7e44f223f0603dc899c9acf2cb11c57e18de
Closes-Bug: #1547256
2016-02-25 09:04:36 -08:00
Jenkins
ad84b40f42 Merge "Stop using non-existent method of Mock" 2016-02-25 02:10:29 +00:00
Jenkins
70b8f78447 Merge "Use unique SNI identifier when building data model" 2016-02-25 02:10:23 +00:00
Jenkins
29a151ded0 Merge "Implements: blueprint anti-affinity server group" 2016-02-25 02:08:35 +00:00
Jenkins
3e92919e8b Merge "Fix LB/Listener status updates for HM/Member" 2016-02-25 01:05:53 +00:00
Trevor Vardeman
428fee9748 Use unique SNI identifier when building data model
The to_data_model method previously labeled an SNI container without a
unique identifier, using the "listener_id".  Now it will use the
"tls_container_id" to ensure it is truly unique.

Change-Id: I174f8f650fc51668fd7b70e845d4706916f06295
2016-02-24 18:12:34 -06:00
Stephen Balukoff
f0cc35087a Fix LB/Listener status updates for HM/Member
Recent scenario tests are showing create operations on
pool-subordinate objects (like Member and Health Monitor) appear
to be returning too quickly with statuses that indictate the
operation is done. This has lead to intermittent problems of tests
failing because the load balancer was not in an expected state.

Our hypothesis is that the aforementioned operations are not
setting the load balancer status to PENDING_UPDATE as they should.
This patch fixes this problem, ensuring that PENDING_UPDATE status
is set on the load balancer and listener status correctly prior to
the execution of the creation taskflow, as well as whenever pool or
pool-subordinate objects are updated and deleted. This should resolve
the related intermittent scenario test failures.

In addition to the above, I have re-organized some of the API methods
to remove some code duplication between various API controller, and
re-organized several of the API functional tests for health monitors
and members to catch the above problem.

Change-Id: I5e3a1eabb76af3b913e3edbe95a3b14c3c40244b
Closes-Bug: 1548588
2016-02-24 13:38:39 -08:00
minwang
07a608f681 Implements: blueprint anti-affinity server group
https://blueprints.launchpad.net/octavia/+spec/anti-affinity
Added a new column in lb table for server group id;
Added a new task in compute tasks for creating server group;
Added a new task in dtabase tasks to update server
group id info for lb;
Add server group id in create method in nova driver to support
anti-affinity when creating compute instance

Change-Id: If0d3a9ba1012651937a2bda9bc95ab4f4c8852d5
2016-02-24 10:42:06 -08:00
Adam Harwell
42c12d7e8c Remove old SSH specific config options from sample config
Change-Id: I771ef200cd53d48abe08266ca2cb52aca711ec77
2016-02-24 11:36:00 -06:00
Jenkins
dd542b1080 Merge "Fix LB status updates" 2016-02-24 10:05:19 +00:00
Jenkins
a94b0a544c Merge "Fix amphora failover after health monitor start" 2016-02-24 10:02:31 +00:00
Jenkins
f38d3d70f3 Merge "Fix deleted amphora expiration check" 2016-02-24 10:02:28 +00:00
Jenkins
bb4e845986 Merge "Add a request timeout to the REST API driver" 2016-02-24 09:55:19 +00:00
Jenkins
e204a9ccf0 Merge "Fix health monitor URL in API documentation" 2016-02-24 09:55:16 +00:00
Jenkins
1d264babb4 Merge "Reduce devstack build time by properly using pip caches" 2016-02-24 08:43:39 +00:00
Jenkins
c6e92548ce Merge "Trivial: cleanup unused conf and log variables" 2016-02-24 06:58:40 +00:00
OpenStack Proposal Bot
f22a656b07 Updated from global requirements
Change-Id: I4b4358461034b62fb04c83629deab463d076b0d5
2016-02-24 04:44:40 +00:00
Stephen Balukoff
71c98e72d8 Fix health monitor URL in API documentation
After looking into bug reports of health monitor URLs not
working after the shared pools patch, I was able to verify that
they do in fact work, but that the legacy documentation was wrong.
(This is after checking both the state of Octavia's documentation
and API code prior to the shared pools patch, and checking the
neutron-lbaas octavia driver in master right now.)

This patch updates the octavia API documentation to list the
correct new and legacy URLs for doing health monitor CRUD operations.

Change-Id: I632a0a50de0320ed316ef0bf180b8d7e788f746a
Closes-Bug: 1543364
Closes-Bug: 1543366
2016-02-23 20:13:32 -08:00
Michael Johnson
90c465ebb3 Add a request timeout to the REST API driver
The amphora REST driver does not have reasonable timeouts on the
python "requests" library calls. For example, the PUT call to
load a certificate into an amphora can hang forever.
This patch adds a request timeout that defaults to 5 seconds.

Change-Id: I75bed9fa1d590ce206aa0947d35552fc80907c0a
Closes-Bug: #1496634
2016-02-24 04:07:41 +00:00
Jenkins
dad487bcfc Merge "Change HMAC compare to use constant_time_compare" 2016-02-24 04:06:04 +00:00
Jenkins
beea34b598 Merge "Add listener stats API" 2016-02-24 04:05:31 +00:00
Jenkins
c4c8ff4e0e Merge "Add L7 documentation" 2016-02-24 03:50:58 +00:00
Jenkins
207dd5d293 Merge "Add L7 jinja template updates" 2016-02-24 03:50:52 +00:00
Jenkins
7f382d57fd Merge "Add L7 controller worker flows and tasks" 2016-02-24 03:36:00 +00:00
Jenkins
9ddf53f0cc Merge "Add L7 api - rules" 2016-02-24 03:05:57 +00:00
Jenkins
6b8705f475 Merge "Add L7 api - policies" 2016-02-24 02:51:10 +00:00
Jenkins
2ef3eb46f2 Merge "Update repos for L7 rules / validations" 2016-02-24 02:51:04 +00:00
Jenkins
79a6bed226 Merge "Update repos for L7 policy / methods" 2016-02-24 02:51:01 +00:00
Jenkins
e2d0845e63 Merge "Add L7 database structures" 2016-02-24 02:50:55 +00:00
Jenkins
5c9ad9b9de Merge "Assign peer_port on listener creation" 2016-02-24 02:43:06 +00:00
Jenkins
3dccef5b90 Merge "Fix model update flows" 2016-02-24 02:42:50 +00:00
Michael Johnson
fb7e8352fd Change HMAC compare to use constant_time_compare
HMAC comparison is done using != but should use constant time
comparison function.
This patch switches to using oslo_utils.secretutils constant_time_compare.
It also updates the octavia requirements.txt to have oslo.utils>=3.5.0
as global-requirements has it.

Change-Id: Ic06e15d68560ada04707c97aa39434fc7c68ca63
Closes-Bug: #1548546
2016-02-24 02:07:00 +00:00
Stephen Balukoff
4b45a10813 Add listener stats API
Octavia has been gathering listener statistics for a long time,
but so far has never exposed this via the API. Further, our
documentation has shown that we should have had an API interface to
the listener stats this whole time. This commit adds this interface,
as described in the API documentation.

Change-Id: I4848bb31feb03ab0599a26f600951518f2c41254
Closes-Bug: 1543356
2016-02-23 18:05:34 -08:00
Stephen Balukoff
6cd2ca505c Add L7 documentation
This commit adds documentation for the API changes involved in
adding L7 polcy and rule functionality to Octavia. It is the last in
a chain of commits designed to keep the size of each individual commit
manageable / reviewable.

Change-Id: I1f01a2b546dabc8dc8ad3cf512f7be9276243e74
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
2016-02-23 17:59:21 -08:00
Stephen Balukoff
2fabcabc4e Add L7 jinja template updates
This commit modifies the jinja templates used by the rest and SSH
amphora drivers for generating the haproxy configurations that get
generated for each listener.  It is one in a chain of commits
designed to keep the size of each individual commit
manageable / reviewable. Documentation updates will come in a later
commit.

Per Octavia team discussion, this commit also moves these templates
to the octavia/common/templates directory.

Change-Id: I18aa6080dd19b4afbbdff1ccc81cff7d96b993e6
Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
2016-02-23 17:55:14 -08:00
Stephen Balukoff
fbc4a0aa4d Add L7 controller worker flows and tasks
This commit modifies the controller worker and its tasks and flows
in order to enable the manipulation of L7 policies and rules
in Octavia as well as unit tests for the same. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. Jinja template and documentation updates
will come in later commits.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I13de3f89d9236cf508744b04c1d8de04296a34f3
2016-02-23 17:46:37 -08:00
Stephen Balukoff
e4bdb86712 Add L7 api - rules
This commit adds the API necessary for manipulating L7 rules
in Octavia as well as unit tests of the API. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. Jinja template and documentation updates
will come in later commits.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: Iabc3ac44bbb4c3230eb02f978300caabc0c25cc5
2016-02-23 17:45:09 -08:00
Stephen Balukoff
efeb204dee Add L7 api - policies
This commit adds the API necessary for manipulating L7 policies
in Octavia as well as unit tests of the API. It is one in a chain
of commits designed to keep the size of each individual commit
manageable / reviewable. API for L7 Rules, jinja template, and
documentation updates will come in later commits.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: Ib8b18beac83ca46d0fae30a76b72ef0e729696b7
2016-02-23 17:41:13 -08:00
Stephen Balukoff
240560b569 Update repos for L7 rules / validations
This commit adds the repository methods for handling L7 rules,
as well as logic for validating their internal consistency.
This commit is one in a chain to deliver full L7 switching
capability to Octavia.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I1eaf3bf9b889a36927d9abfb3f755725e2b06f34
2016-02-23 17:37:07 -08:00
Stephen Balukoff
da57069a18 Update repos for L7 policy / methods
This commit adds logic to the handling of repositories for L7
policies. This commit is one in a chain to deliver full L7
switching capability to Octavia.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I04a8eb5074418cc699c09234c321be9f1c595614
2016-02-23 16:45:28 -08:00
Stephen Balukoff
038cd180bf Add L7 database structures
This commit adds the database structures necessary for adding
L7 functionality to Octavia. In the interest of limiting the size of
this commit, note that repository, API, jinja template, and
documentation updates will come in subsequent commits.

Partially-Implements: blueprint lbaas-l7-rules
Partially-Implements: blueprint layer-7-switching
Change-Id: I2ec4ea11dc7d8ff6ec78d79473f1ceb68e713b90
2016-02-23 16:42:02 -08:00