This patch switches usages of _setUpExtension over to setup_extension to
phase out the unused attr map parameter. For more details see
https://review.openstack.org/#/c/561305/
Change-Id: I65b3daa6ba0c6db324973fed4da5951b169e573d
Creating health monitor with excessive delay value can produce
an error, because delay exceeds database restrictions.
This fix adds delay value determination in the health monitor
creation, error message can get displayed over prompt.
Change-Id: I216c3fd947136ce7c26d3094edfa72084632c5a3
Closes-bug: 1706078
With the merge of [1], plugin constants are now available in
neutron_lib, so it makes sense to move there .
[1] https://review.openstack.org/#/c/429036/
Change-Id: Ic6e5620d6d3ff33447d3804919cd63716d4a6894
Create loadbalancer accepts either a vip_subnet_id
or vip_network_id. If vip_network_id is provided the
vip port is created on that network using the default
neutron behavior. If neutron assigns multiple fixed ips,
an ipv4 addresses is chosen as the vip in preference to
ipv6 addresses.
-----
Who would use the feature?
LBaaS users on a network with multiple subnets
Why use the feature?
Large deployments may have many subnets to allocate
vip addresses. Many of these subnets might have
no addresses remaining to allocate. Creating a
loadbalancer by network selects a subnet with an
available address.
What is the exact usage for the feature?
POST /lbaas/loadbalancers
Host: lbaas-service.cloudX.com:8651
Content-Type: application/json
Accept: application/json
X-Auth-Token:887665443383838
{
"loadbalancer": {
"name": "loadbalancer1",
"description": "simple lb",
"tenant_id": "b7c1a69e88bf4b21a8148f787aef2081",
"vip_network_id": "a3847aea-fa6d-45bc-9bce-03d4472d209d",
"admin_state_up": true
}
}
DocImpact: 2.0 API Create a loadbalancer attributes
APIImpact
Closes-Bug: #1465758
Change-Id: I31f10581369343fde7f928ff0aeb1024eb752dc4
Change I8775aa8a477191ef21e7c3c6da31d098befefc3c in the Neutron code
tree recently updated API commands to include objects' project_id in
the call. This broke the neutron-lbaas gate. This commit updates the
neutron-lbaas API tests to expect the project_id as a paramenter as
appropriate.
Change-Id: Ib9661bc36372c182b814b17f94740a2a21b63874
Closes-Bug: #1623252
v1 is not going to ship in Newton, the deprecation notice
been around for two cycles, and there is now a migration
script.
Also includes: Fix alembic migration env
The include_object() checking was missing, and also the inclusion
of all lbaas DB models
Co-Authored-By: Henry Gessau <gessau@gmail.com>
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Change-Id: I506949e75bc62681412358ba689cb07b16311b68
Add a "fall threshold" to health monitors such that sequential
checks will be required before reporting an unhealthy state.
Change-Id: Ifcdad59cfee7769f4fc3dce93c4eba45bca9f4c2
Allows a request to be passed to the lbaas API that contains the full graph
structure of a load balancer. This means that an entire load balancer graph
can be created in one POST to the API, or a partial graph can be.
This creates a new driver method to the driver interface that when implemented
will be called when a full or partial graph is attempted to be created. If
the driver does not implement this method, then the request is not allowed.
Co-Author: Trevor Vardeman <trevor.vardeman@rackspace.com>
Closes-Bug: #1463202
Depends-On: Id3a5ddb8efded8c6ad72a7118424ec01c777318d
Change-Id: Ic16ca4cb3cb407d9e91eea74315a39bf86c654f3
Neutron deprecated the original location for ATTR_NOT_SPECIFIED. The
changes here update to the new location.
Change-Id: I02f3979a7e67c5ad1e10ebe75d7d6fda2dae6122
In preparation for L7 switching functionality, we need to
reduce the rigidity of our model somewhat and allow pools
to exist independent of listeners and be shared by 0 or
more listeners. With this patch, pools are now associated
with loadbalancers directly, and there is now a N:M
relationship between listeners and pools.
This patch does alter the Neutron LBaaS v2 API slightly,
but all these changes are backward compatible. Nevertheless,
since Neutron core dev team has asked that any API changes
take place in an extension, that is what is being done in
this patch.
This patch also updates the reference namespace driver to
render haproxy config templates correctly given the pool
sharing functionality added with the patch.
Finally, the nature of shared pools means that the usual
workflow for tenants can be (but doesn't have to be)
altered such that pools can be created before listeners
independently, and assigned to listeners as a later step.
DocImpact
APIImpact
Partially-Implements: blueprint lbaas-l7-rules
Change-Id: Ia0974b01f1f02771dda545c4cfb5ff428a9327b4
Currently, LBaaS V1 vip's connection_limit and LBaaS V2 listeners'
connection_limit can be set to a value less than -1.
This patch add a validation for V1 vip's and V2 listeners'
connection_limit resource. Setting value less than -1 is not allowed.
Closes-Bug: #1520138
Change-Id: I9332cfeda89b87dfda9cd16dcc8b1d78b6e1dc41
Builds on the Neutron services flavor framework in the referenced
Depends-On change id.
This solution uses a flavor of service type LOADBALANCERV2
associated with a flavor profile containing a driver. If a
flavor_id is passed during loadbalancerv2 creation, the flavor is
used to find the provider for the driver and populate
the existing lbaas provider field.
This allows a user to specify a flavor like 'Gold' with the
operator dynamically controlling which provider is associated
with that flavor for subsequent creates.
The flavor_id is persisted in the DB. The selected provider
controls subsequent control operations against the created
loadbalancer.
Also ensure everything works gracefully if flavors plugin is not loaded.
Adding api and doc impact tags as the new optional flavor_id parameter
should be described to consumers.
Co-Authored-By: James Arendt <james.arendt@hp.com>
Co-Authored-By: Madhusudhan Kandadai <madhusudhan.kandadai@hpe.com>
ApiImpact
DocImpact
Change-Id: Ic3b459692d092658df93d4c855079311d9bc7ace
Depends-On: I5c22ab655a8e2a2e586c10eae9de9b72db49755f
Partially implements: blueprint neutron-flavor-framework
This patch adds support to enable naming LBaasV2 Members and Health
Monitors(HMs).
DocImpact
Closes-Bug: #1515506
Change-Id: Ieb66386fac3a5a4dace0112838fe9afde212f055
assertEqual expects that the arguments provided to it should be
(expected, observed).If a particluar order is kept as a convention,
then it helps to provide a cleaner message to the developer if Unit Tests
fail. There are several Unit Test files where the arguments for assertEqual
have been swapped. This commit fixes the issue in lbaas.
Change-Id: I890deda05a26c9f84d7e2884970d051faa30830c
Partial-Bug: #1259292
Related-Bug: #1259292
A bug prevented updating of default_tls_container_ref and failing
with a 503
This bug uncovered a few other issues with null key checks
and complaints if sni_container_refs were not provided.
Change-Id: I636e9f78b38ba9f02d10a013bf56459cc2a723e1
Closes-Bug: #1501505
It was originally thought that neutron lbaas would take a uuid for a tls
container that references a container of secrets. This has changed due to the
fact that we will now take a URI for barbican containers, which makes the use
of default_tls_container_id and sni_container_ids inappropriate. This changes
them to be default_tls_container_ref and sni_container_refs.
This patch does not change the db models or data models as that would make this
a much larger patch and due to time would be a lot to merge in by the
Liberty-3. Since V2 API will probably lose the experimental tag this cycle, it
is important to make this change now while it is experimental.
This just changes the API to accept and return these attributes so
whenever the db and data model changes are done, it will not break API
backwards compatibility.
DocImpact
APIImpact
Change-Id: Iddc5d95fc6822e19e3166f9a6974dc56edd3193e
Including extension modifications
Including db model modifications
Including db model unit testing
Including alembic migration
Including usage of new common module for TLS containers retrieval and validation
Change-Id: I4c5c494370479176af6f80623ae3a0c6af30ef14
Implements: blueprint lbaas-ssl-termination
Users must now create a load balancer, then listener,
then pool, then members. GETs will also now show children
and backrefs to parents.
Removed the DEFERRED state because it is unneeded. Changed
the synchronous namespace driver to reflect this change and
added a helper driver mixin for setting the correct status.
Added get_statuses method to the plugin to retrieve the
status tree of a load balancer and children.
Added provisioning_status and operating status to entities
Added Driver methods to successfully or unsuccessfully
complete driver operations.
Implemented mutualy exclusive loading of lbaas v1 or
lbaas v2.
Change-Id: Ic79a481e086c59b17e6a2d1a5cf7d057d0efde44
Implements: blueprint lbaas-api-and-objmodel-improvement
New extension for version 2 of LBaaS API
Also added some constants for supported protocols, algorithms,
health monitor types, and session persistence types.
Implement Jinja templates for haproxy config
Added templates dir
Added haproxy v1.4 template
Added template tests
Added jinja_cfg for new haproxy jinja templating
Tests for extension, db and plugin for LBaaS V2
Adding needed driver interface changes for tests.
Adding LoggingNoop driver needed changes for tests.
Adding extension, plugin, and db unit tests.
Plugin/DB additions for version 2 of LBaaS API
Added alembic migrations, models, db methods and plugin methods.
Added DEFERRED status for entities not linked to a load balancer.
Added to_dict method in BaseNeutron model.
Sql Alchemy models in its own module.
Plugin database methods are accessed by composition through the plugin.
Added data models to convert sql alchemy models before passing to driver.
Partially-implements: blueprint lbaas-api-and-objmodel-improvement
Partially-implements: blueprint lbaas-refactor-haproxy-namespace-driver-to-n
Partially-implements: blueprint services-split
Change-Id: I8343d83c645f3037ac237d7f47744c1c7e4356f8
Co-Authored-By: Brandon Logan <brandon.logan@rackspace.com>
Co-Authored-By: Phillip Toohill <phillip.toohill@rackspace.com>
Co-Authored-By: Dustin Lundquist <dustin@null-ptr.net>
Co-authored-by: Vijayendra Bhamidipati <vbhamidipati@paypal.com>
Co-authored-by: Craig Tracey <Craig.Tracey@gmail.com>
Co-authored-by: Pattabi Ayyasami <pattabi@brocade.com>
Instead of adding override_nvalue() in setUp() for tests that need
the policy.json setting for config, created a new base class for
VPN tests, which derives from the neutron BaseTestCase and overrides
the config for policy_file. Applying same changes as done with
141932 for VPNaaS.
The big question here, is whether or not this is better than
sprinkling override_nvalues() calls in the four places, where this
is a problem currently. The issue is that with LBaaS, there are
some tests that inherit from Neutron classes, other than the
BaseTestCase, so a simple override in BaseTestCase.setUp() won't
suffice.
Change-Id: Ia504df51510d964c5f5baccb0b921af1de406f21
Partially-Implements: blueprint service-split