737 Commits

Author SHA1 Message Date
Brandon Logan
1d0b76efa1 Expose project_id in octavia api
The project_id (formerly tenant_id) was not actually allowed as an
attribute of any entity on create nor would it be returned as details
of an entity.  project_id will be used in the future and is just
overall good to have.

This also accepts request headers to set the project_id if they are passed in
and no tenant_id is provided in the body.

Change-Id: I6408b7863409870b502de03af35692b065b2c6dc
2015-12-08 18:01:27 -06:00
Brandon Logan
e260341783 Rename tenant_id in the network models to project_id
This was meant to be done in a prior review but the author of that review (me)
was not thinking clearly when he did not include them as part of that rename.

Change-Id: Ibae52777921adcfa3e6835274d61670b4091ca39
2015-12-08 17:58:23 -06:00
OpenStack Proposal Bot
4167d8b967 Updated from global requirements
Change-Id: Ife281efbb10b30c8e6ff35560e29092318e52f53
2015-12-08 21:35:33 +00:00
Jenkins
e79ee9d279 Merge "Rename tenant_id to project_id" 2015-12-08 21:25:53 +00:00
Bertrand Lallau
608d0a317c Optimize Taskflow storage (remove some requires parameter)
flows have been optimized to limit the amount of data being stored.
* member object is stored in flow, hence member_id can easily be retrieved
* same with vip and load_balancer

Change-Id: I85c1f55dc7faa412dcb649bd09a845c674ea853c
Closes-Bug: #1461686
2015-12-08 22:00:54 +01:00
Adam Harwell
52351a5698 Refactor BarbicanAuth to allow for configurable auth method
There is now a new configuration option "barbican_auth" in the
certificates section, to specify which auth plugin to use when
communicating with Barbican. This is because the default option (using
ACLs inside Barbican to control access) should be ok as a default
workflow, but it might be required to use other methods depending on
your deployment. For example, another possible auth method would be
BarbicanTrustAuth, utilizing Keystone Trusts.

Some deployers may need custom auth methods that do not exist in
upstream Keystone, and will need their own Auth plugin. This should be in line
with the way Octavia's network and compute drivers work already.

While we're in this file, prune the unused (and really bad) method that
would *actually* delete certs from Barbican (not in our scope).
Also do the tenant_id -> project_id rename.

Change-Id: Ic9aef68924bb5c216734afd25403e59476c576e7
2015-12-08 14:56:32 -06:00
ptoohill1
8e31a1d044 Allow choice of upstart or sysvinit
upstart was hardcoded as the means of start, stopping and reloading
of haproxy. Allow for sysvinit scripts and paths to handle haproxy.

This patch provides a configuration option to switch
between the defaultl upstart init scripts or sysvinit.

Change-Id: I9efe51c5a08d8e2268150d69ac25725c708dfb8e
2015-12-08 00:06:45 -06:00
Jenkins
d2ee56469a Merge "Add missing unit tests for cw/tasks/network_tasks" 2015-12-08 02:06:23 +00:00
Brandon Logan
969f811bd4 Rename tenant_id to project_id
Since openstack is going through renaming tenants to projects
it is best that we do this now while its easier before it becomes
bigger and harder to do.

This also adds project_id to the health_monitor table and models
since this seemed like an oversight.

Change-Id: Icc8034dcb517a3f8d218d83c94e4a2dcc977cc29
2015-12-07 15:39:55 -06:00
Kenji Yasui
4c9e5aa224 Fix db error when running python34 Unit tests
If tests for py27 is executed before py34 tests, then
there is a chance that py34 related tests may fail.
The following patch fixes it.

Ref: https://review.openstack.org/#/q/status:merged++topic:bug/1489059,n,z

TrivialFix

Change-Id: I99dd7a67829bbf9115e011373ce43d8e893e5c66
Closes-bug: #1489059
2015-12-07 04:16:26 +00:00
Bertrand Lallau
d80256eb43 Add missing unit tests for cw/tasks/network_tasks
Change-Id: If759f49fc30a655b9e1daf253577b605f964be27
2015-12-06 22:35:14 +01:00
Michael Johnson
13dec23c08 Add nopreempt support for active/standby
This patch enables nopreempt for active/standby topology amphora.
This reduces the need to migrate the IP between the active and standby
amphora.  This is important for amphora that are using TLS offload.

When a MASTER amphora fails over to a BACKUP amphora the IP address
migrates to the BACKUP which becomes the new MASTER.
With this patch, should the original MASTER come back up, the IP will not
migrate back to the original MASTER until the BACKUP fails.
Current behavior is when the original MASTER comes back up the IP
will migrate back to it.

Change-Id: Ib9f5ecd92f37299c7ae5cbb607f4f9df9106409f
2015-12-06 02:15:49 +00:00
Jenkins
9d06f43a1a Merge "Add reno for release notes management" 2015-12-05 01:56:34 +00:00
Kyle Mestery
8c741ba383 Add reno for release notes management
Change-Id: I963992cc0278d38ecae506d597072e8eb8b45e13
Signed-off-by: Kyle Mestery <mestery@mestery.com>
2015-12-04 14:42:32 -06:00
Jenkins
c85ccfc82e Merge "Add backport keepalived" 2015-12-04 19:39:46 +00:00
Jenkins
7b211e9097 Merge "Un-pin the amphora-agent version" 2015-12-04 18:18:53 +00:00
minwang
80865ff123 Add backport keepalived
Added keepalived-octavia-ubuntu elements and deleteted vrrp-octavia elements.

Closes-bug: #1481050
Change-Id: I1c55d3f32663087643cf81f1a6e9e3fb7caad8ee
2015-12-04 17:39:35 +00:00
Jenkins
86b4f8dcec Merge "Amphora Flows and Drivers for Active Standby" 2015-12-04 16:26:08 +00:00
Michael Johnson
6ef2cbb451 Un-pin the amphora-agent version
In the dependent patch we pinned the amphora-agent to pull the patch set
version so that scenario tests will pass.  This patch removes that pin.

Change-Id: I1421939423916fd9dd5dc6f754a87e316ec7c110
2015-12-04 16:04:55 +00:00
Sherif Abdelwahab
58cda714ba Amphora Flows and Drivers for Active Standby
This patch implements the Active/Standby blueprint in
https://blueprints.launchpad.net/octavia/+spec/activepassiveamphora

The following points describe the main changes:

1. The patch introduces new flows and subflows to create M amphorae. The
controller worker parses the loadbalancer_topology configuration. If the
loadbalancer_topology value is ACTIVE_STANDBY, the controller invokes a new flow
independent from the SINGLE topology case, which is left untouched. The new
flow uses conditional taskflows to check for spare amphorae at runtime. This
removes the need for the exception workaround we earlier had. The controller
creates the amphorae in parallel using an unordered flow. A new database task
alter an amphora role as either MASTER or BACKUP and assigns a VRRP priority to
each amphora. After the amphorae are created, the controller invokes a separate
flow for post amphora configuration including plug_vip methods, vrrp
configuration upload, and keepalived service start.

2. The patch introduces new data models that include a new table for VRRP group
configuration per loadbalancer, and update the amphora, loadbalancer, and
listener tables to support the new active/standby capability. The VRRPGroup
table hides authentication data, and makes future extensions of VRRP
capabilities easy.

3. This patch updates the existing Haproxy configuration templates  to include
peer synchronization. In case of ACTIVE_STANDBY configuration, the jinja
configuration renders the peer section in the Haproxy configuration and assigns
short names to the amphorae as listener peers. As listeners implies different
Haproxy process, each listener synchronizes on a different port evaluated as
BASE_PORT (1024) + NUMBER_OF_LISTENERS accounting for ports in use.

4. This patch introduces a new Jinja configuration templater and a REST driver
for Keepalived (developed as a Mixin). By default, Keepalived runs "all" check
scripts found in a predefined directory. The keepalived driver is a Mixin that
can be plugged in other services' drivers. It is the responsibility of these
services drivers to introduce their own check scripts. In this patch a
lightweight check script for Haproxy was introduced along with changes in the
amphora agent installation script.

5. The VRRP requires enabling protocol 112 for Master/Backup advertisements,
and enabling protocol 51 for authentication header. This patch enables these
protocols as needed in the loadbalancer security group.

Note: Updates to the failover flow to support active/standby will come in
a dependent patch.
Note: The amphora-agent is pinned to this patch in this patch set.  This
is required so the scenario tests will pass.  It will be removed in a
follow up patch.

Co-Authored-By: Sherif Abdelwahab <sherif.abdelwahab@hp.com>
Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Implements: blueprint activepassiveamphora
Depends-On: Ifdf20378b26cdd13e0a3ff87cec8990fe89c0661
Change-Id: Ic4e04594e114ba682088d68d5f1af3f8f376db83
2015-12-03 23:27:20 +00:00
bharath
d2072ae0ae Anchor support to Octavia
Use Anchor for certificate signing to make the octavia communication
more secure. Anchor Ref url: https://github.com/openstack/anchor

Co-Authored-By: bharath <bharath.stacker@gmail.com>
Co-Authored-By: German Eichberger <german.eichberger@hp.com>

Change-Id: Id77b2b1540377db661f15d4eeafc4922f446d987
2015-12-03 10:06:04 -08:00
OpenStack Proposal Bot
0a1d45f696 Updated from global requirements
Change-Id: Ic05beccd8e6bfa34437eaeec9ad98f6f5730cb38
2015-12-02 20:30:35 +00:00
minwang
19c7f93882 Add cert tracking and rotating in Housekeeping
The goal of this patch is to add the function that once we detect an
amphora's cert will expire in 2 weeks from utcnow, we will update its
cert with a new one and update its db information at the same time.

In order to achieve this target, I did the following changes:

Add 2 new columns cert_busy and cert_expiration in amphora table
Add methods to get cert expiration date from PEM server_pem and
update db info
Use the new REST agent method to perform cycling
Add process in housekeeping to facilitate rotation
Add unit tests

Change-Id: I28578a3e560ee09ba300788a5423863c893b8638
2015-11-30 10:39:34 -08:00
Adam Harwell
900e8a5256 Fix api_server agent test that broke due to a dep change
The test was slightly incorrect to begin with, but the issue didn't
become apparent until the oslo.log update from 1.13.0 to 2.0.0 for
whatever reason. open() raises IOError() not Exception() so it was not
being handled properly.

Also taking this opportunity to standardize the use of builtins to
match our other tests.

Change-Id: Idab637b09e8a437333f810f82f45b3e9c027dfdd
2015-11-24 20:24:14 +00:00
Jenkins
822c0be975 Merge "Stop nova driver delete failure on already deleted" 2015-11-20 03:59:34 +00:00
Jenkins
0617a38394 Merge "Unify constants usage in flows tests" 2015-11-20 02:00:52 +00:00
OpenStack Proposal Bot
71f458be7e Updated from global requirements
Change-Id: I2d9f4dc0de01b013562692f9d6ee2b77262a4b62
2015-11-19 19:16:43 +00:00
Jenkins
f3ab46e146 Merge "Consumer start log appears at appropriate time" 2015-11-19 18:15:06 +00:00
Bertrand Lallau
3d1f10bce3 Unify constants usage in flows tests
Change-Id: I43176c5701070d20352e08b492a86b3997014755
2015-11-19 17:12:40 +00:00
Jenkins
51fb13dd8f Merge "Fix a test order issue with oslo_config fixture" 2015-11-19 17:09:57 +00:00
Jenkins
f44f2f767a Merge "Add unit tests for cmd/house_keeping" 2015-11-19 15:17:38 +00:00
Michael Johnson
e60244b65b Fix a test order issue with oslo_config fixture
The below patch caused a test order issue with the oslo config
override via fixture.  This is causing gate failures.
https://review.openstack.org/#/c/246046/1

This fixes that ordering issue.

Change-Id: Id9390f546cc19ea3af0bfffc0b97b108eb6042e8
2015-11-19 01:25:14 +00:00
Michael Johnson
5a9835ccb7 Stop nova driver delete failure on already deleted
The nova compute driver currently raises an exception if the
instance has already been deleted.

This patch logs a warning, but does not raise an exception when
the instance being deleted is not found.

Change-Id: I72e54297b925c5c6ce0dd711a33e19afc74ba37d
Partial-Bug: #1509706
2015-11-19 00:54:09 +00:00
ptoohill1
b7f1dbc03e Fixes interface_file jinja misconfiguration
The amphora jinja templater renders the interfaces_file option with a string of 'None'.
This causes failures while communicating with the Amphora.

Change-Id: I57b16387cc84b3942f0af5fc92320513baaff76e
Closes-Bug: #1516827
2015-11-16 18:09:29 -06:00
minwang
2c2baa9978 Add unit tests for cmd/house_keeping
So far we don't have unit tests for method house_keeping_db_cleanup,
,spare_amphora_check and main in file cmd/house_keeping.py,
this patch is to add unit tests for these 3 methods.

Change-Id: I2f45b905d96a883b364e7645eeac0a7b8a1e9aba
2015-11-16 02:17:55 +00:00
Jenkins
a0dc14f046 Merge "Updated from global requirements" 2015-11-14 18:58:12 +00:00
Jenkins
c149c8cb8d Merge "Add Guru Meditation Report feature" 2015-11-14 18:12:22 +00:00
Jenkins
9e4b30efd3 Merge "REST Amp Agent: Handle interfaces file too" 2015-11-14 17:44:46 +00:00
Jenkins
c592901024 Merge "Get rid of unused dependencies in requirements.txt" 2015-11-13 23:10:34 +00:00
Jenkins
34bdc6c76d Merge "pyasn1 and pyasn1-modules modules no more needed" 2015-11-13 23:08:51 +00:00
Jenkins
f9e58cf51d Merge "Get rid of unused dependencies in test-requirements.txt" 2015-11-13 21:20:01 +00:00
Brandon Logan
21058fae59 REST Amp Agent: Handle interfaces file too
The amphora agent should be able to add interfaces by using the
/etc/network/interfaces file as well as the /etc/network/interfaces.d/*.cfg
files.

Closes-Bug: #1507889
Change-Id: I7840931fc426a0c74386512dfae3666d223049f8
2015-11-14 02:31:14 +09:00
OpenStack Proposal Bot
70b1f0dfce Updated from global requirements
Change-Id: I5ca64f7dafa8bf3546be321c3cbd836b335b1b88
2015-11-13 17:14:49 +00:00
Bertrand Lallau
d5e0811926 Add Guru Meditation Report feature
Oslo_reports enables OpenStack projects to dump Guru Meditation
Reports with useful debugging information to files or stderr.

Closes-Bug: #1514504
Change-Id: Id35fb7dc8c31f304cbf1d9cca0d21b9d5e97865a
2015-11-13 12:03:19 +01:00
Bertrand Lallau
48cc768750 Get rid of unused dependencies in requirements.txt
- anyjson is a dependency for oslo.serialization
- jsonrpclib (not used)
- iso8601 (not used)
- netaddr (not used)
- networkx (not used)

Change-Id: I49afc80a677fe71295b9d1f723a0c26c12d6993b
2015-11-13 11:43:30 +01:00
Bertrand Lallau
6e66ba525b Get rid of unused dependencies in test-requirements.txt
- cliff (not used)
- fixtures (actually not used in unit tests)
- ordereddict (py26 references)

Change-Id: I3277a9e62822c6279365d2ec2b00270c9a5e9dfb
2015-11-13 11:40:43 +01:00
Jenkins
2914ab06ad Merge "Updated from global requirements" 2015-11-13 10:07:58 +00:00
Bertrand Lallau
b985826fa1 pyasn1 and pyasn1-modules modules no more needed
The following change use Python 3.4 "cryptography" libraries instead of "pyasn1".
https://review.openstack.org/#/c/184868/

Clean up have been performed in requirements.txt

Closes-Bug: #1515917
Change-Id: I36877d27ac222908db7af6183628589dbcdf2968
2015-11-13 10:16:09 +01:00
Jenkins
8057fba637 Merge "Revert "Add Pillow to docs-requirements.txt"" 2015-11-13 02:53:05 +00:00
OpenStack Proposal Bot
9325a1750a Updated from global requirements
Change-Id: I856f206f7c5402a9e2863c6a2e9661e3e6a1d396
2015-11-12 22:12:01 +00:00