[release-announce] [octavia] octavia 1.0.1 (pike)

no-reply at openstack.org no-reply at openstack.org
Wed Aug 30 18:23:40 UTC 2017


We joyfully announce the release of:

octavia 1.0.1: OpenStack Octavia Scalable Load Balancer as a Service

This release is part of the pike stable release series.

Download the package from:

    https://pypi.python.org/pypi/octavia

For more details, please see below.

Changes in octavia 0.10.0..1.0.1
--------------------------------

cdac977 Add a CLI section to the Octavia docs
e415275 Setup octavia for stable/pike
b684a46 Fix health monitor DB locking.
9454901 Fix a bad revert method and add hacking check
02926d8 Update UPPER_CONSTRAINTS_FILE for stable/pike
accf201 Update .gitreview for stable/pike
7c986df Fix LB creation with VIP port
6e71722 Update devstack readme.md
7f5749d Fix sg_rule didn't set protocol field
c28d212 Properly store VIP data on LB Create
54a880d Updated from global requirements
a1e596c Update links in README
757dc69 Remove usage of credentials_factory.AdminManager
579f18d Fix DB update reverts for provisioning status
e797e87 Add allocate vip port when create loadbalancer in server side
7e211cf LB Admin down should show operating_status OFFLINE
eb9b0c8 Updated from global requirements
d6b5ec1 Remove WebTest from test requirements
197bfa0 Ignore 404 amphora error when deleting resources
65522f5 Correct status for disabled members (honest abe edition)
6f23f6e Stop using deprecated CORS.set_latent()
12135dc Properly handle more states from HAProxy health messages
c0e0f6d Barbicanclient is refactoring, this fixes one of our bad tests
c17f59f Updated from global requirements
4a06799 Updated from global requirements
8c635a4 Fix haproxy_check_script for delete listener
720e57e Updated from global requirements
a331617 Spec detailing Octavia service flavors support
ba5f4d9 Update release notes for work done in Pike
abe1791 Fix url_path valid check
cd3a867 Fixing typo in controller/worker/tasks/database_tasks.py
270bf5a Allow special paths to not require keystone auth
89285e0 diskimage-builder: Acceptable RHEL based Amphora disk size =< 3GB
8c3e085 Updated from global requirements
2dd53b5 Remove key_path from devstack plugin
bb1c16b Fix invalid escape sequence in certs-ramfs.service
94a8d57 Option to enable provisioning status sync with neutron db
b591adb Updated from global requirements
d17dcea DIB: drop custom mirror elements
7706890 Force get_all to only make one DB call
764ef7f Updated from global requirements
d8ea09a Remove unused client directory
b3506fa Enable H904 check
3007738 Update some links to the new docs locations.
1b3fdbe Install amphora agent from distribution package on RHEL
099921c Add placement service to new-octavia-devstack.sh
f5ea8ac Add statistics to V2 API
ee08aaf Add status tree to V2 API
93c8e00 Update Octavia docs for documentation migration
7f1f43f Fix error 500 when using SOURCE_IP and APP_COOKIE
8baf0ca Failover should cause LB to be Immutable
e94ed48 Don't reload the policy for every API request.
a7bdf03 Update api-ref for openstackdocstheme 1.11
84feb7c Update our docs to point to the new api-ref
576e63d Correct RBAC Not Authorized status code
55305c5 Enable uwsgi support for octavia devstack
90d0989 Event Streamer for StatsDb should respect config value
767ef16 Make developer debugging easier
2ca2b80 Add v2 Quota API section
79a7698 Fix nova secgroup-add-rule which is unavailable
a7256e1 Change default vagrant box to xenial64(16.04)
debcbc5 Add v2 L7 Rule API section
38a5563 Allow operators to disallow creation of TLS Termination listeners
1950f07 DELETE operations don't actually return data (204)
c764abc Allow operators to disable v1 or v2.0 api endpoints
bc886f2 Add v2 L7 Policy API section
05e1a7c Replace the usage of 'admin_manager' with 'os_admin'
fabe867 No need to do a shutdown(wait=True) when in a context-manager
487750a Add filtering and field selection to API
af71a91 Stop provider and flavor API stubs failing calls
32819ec Provide better ComputeBuildExcpetion messages
897214a SSL Health Monitors didn't actually ... check very much
3ce659e Refactor the RBAC auth enforcement a bit
d192827 Use 'get_rpc_transport' for RPC clients and servers.
335c00a Add RBAC enforcement to quotas v2 API
f4a16a8 Add RBAC enforcement to l7rules v2 API
accf945 Add RBAC enforcement to L7 policies v2 API
aea4f26 Add RBAC enforcement to health monitors v2 API
7fa12ce Add RBAC enforcement to members v2 API
9767f09 HM Update for url_path uses incorrect validation
8987ab3 Add RBAC enforcement to pools v2 API
0ce46fe Add RBAC enforcement to Octavia v2 API
f47172f Updated from global requirements
4319988 Agent: swap flask responses to webob, handle 404 retries better
041d15a Allow operators to tune VIP creation parameters
c759088 Enable DIB trace logging
3d4226b Small refactor for load_balancer v2 vip validation
5e8b56f Updated from global requirements
978df99 Also remove amphora_health entry during house_keeping amps
be27e4f Remove deprecated signing_dir config setting
c4ed4d5 Updated from global requirements
56ab540 Fix an issue with failover on VIP net without DHCP
adfe2fe Handle log message interpolation by the logger
49d0085 Add check O346 to disallow backslash line continuation
cb801a4 Remove deprecated oslo_messaging.get_transport
dc0249e Minor code cleanup in l7policy controller
fcf6d1e Updated from global requirements
425d601 Add v2 health monitor API section
63b2b0e Add v2 member API section
c56b0b5 Replace deprecated oslo.messaging.get_transport with get_notification_transport
f58bc31 Remove hardcoded amphorae namespace name
2f4d166 Updated from global requirements
2debcaa Fix HM flows to set Pool back to active
c7a2bab Check keepalived health in the amphora
e415562 Fix keepalived systemd race with haproxy namespace
dda2466 VRRP amphora_driver functions weren't handled by noop driver
639aa1c Add v2 pool API section
604eacf Updated from global requirements
8fb7c17 Pool name/desc needs to be "" when empty, not null
717bee3 Devstack plugin should mark the HM ovs port for cleanup skip
357216e Optional L7Policies param was marked as required
6fa379c Fix pool response to fill healthmonitor_id properly
da81984 Remove lb_network_name from config (it was bogus)
5aad68c Don't leave LBs in PENDING_DELETE after refusing to cascade
eb64413 Updated from global requirements
ec3057a Remove _LI, _LW, _LE, _LC from i18n
15feef1 Remove nova cert from devstack examples
3cc3265 Fix broken database migration
ec6a695 Replace assertRaisesRegexp with assertRaisesRegex
104149d Update example config to have more correct keystone_authtoken example
21e80ce Remove invalid url link
7feffcc CalculateAmphoraDelta networks based on vrrp_port
4fcbb83 Allow specifying empty amp_boot_network_list
875cb2d Additional logging in udp_heartbeat and post_plug_vip
75c4361 Reintroducing local certificate manager, as it is useful for testing
85a1958 Two quick fixes (one log message, one cert create script thing)
231d1bc Trivial fix typos in documents
b80cc9c Add cascade delete for APIv2
594a593 Add monitor address and port to pool member
9bfa58a Implement sorting and pagination for octavia
fb0da76 Add support for single-create for APIv2
dfdde90 Don't show deleted objects in v2 API
5a9e1dd Noop network driver should provide a more hydrated network
ed88676 Purge more tenant_id references that I missed
e86414b Add some hacking checks borrowed from neutron
dc882e9 Remove log translations from octavia
7f6c1b5 project_id should remain in the response for v2 objects
251eb59 Updated from global requirements
24ee552 Fix devstack plugin to stop octavia processes
c8edfa9 Fix an failure if the vip network has no gateway
9d6372b Shutdown a endpoint workers executor on termination
412fb30 Fix a bug where ports may not be deleted
75c1c5f Change auth_strategy default to keystone
a669d7e Run Octavia API in a WSGI server
2aca12b Set up octaviaclient as part of devstack
7100872 Add new PROXY protocol to lbaas pool
76d88d2 Fix set cookie_name to None if not in PUT content
2c85d31 Initial version of the operator guide
6dd09d7 Add v2 listener API section
e07c872 Fixes mysterious gdbm error
38a3d4f Fixes Octavia not working with Barbican
c41a2fc Fixes unicode problems in p35
78d7aec Install DIB from source so depends-on will work
d70b1d6 Fix the coverage HTML report
26a5541 Auto-detect haproxy user_group
c46535d Correct some v2 Listener response entries
cdf0e53 Fix import in v2 pool types
bc9f11e Add quotas to Octavia v2 API
9027154 Removing dependency on eventlet and oslo.service
7ea7888 Introduce Octavia v2 API for Health Monitor
13730f5 Remove singleton pattern from API controllers
e89a679 Fix doc generation for Python3
e9f52d7 Adjust tox cover to check for 80% coverage
0e7bb3a Update keystone URL to be consistent
520c9e8 Fix some configuration type issues.
4fd2647 Scenario base uses the wrong exception lib
5f6ffc4 Fix dumb error message typo
75ebfd7 Updated from global requirements
f37e776 Fix house_keeping daemon to use Event.wait()
500757d Remove duplicate oslo_messaging config line
dc90f52 Fix imports in v2 listener types
409ed17 Loadbalancer v2 needs to accept tenant_id on POST
3ac2b04 Fixed Octavia tempest plugin
8a6d489 Add Apache License Content in index.rst
dd689f3 Introduce TESTING.rst for quick developer reference
19cf273 Explicitly list neutron api extensions for tests
b99e027 Updated from global requirements
508bd38 Optimize the link address
7089ceb blueprint LBaaS Alternative Monitoring IP/Port
509865d Support QoS policy apply on vip port
b96f89b Updated from global requirements
55d0660 Adds v2 load balancer API section
fd5c800 Align Octavia API to n-lbaasv2 for L7Rules
c9daa3f Align Octavia API to n-lbaasv2 for L7Policy
3aec631 Fix pool validation exception typo
8b2f89b Introduce Octavia v2 API for Members
3e25fda Updated from global requirements
e58721c Adds a new config for soft-anti-affinity
1069b17 Failover logic doesn't handle anti-affinity
cd1d53b Tests helper function _send_requests should catch socket.error
1a935b9 Introduce Octavia v2 API for pools
f35eb3b Updated from global requirements
583c7f7 Changing the service-type to load-balancer
4085433 Fix some reST field lists in docstrings
7abcee0 change genconfig output-file path
6fb6a6a Fix get_all method for v2 LB controller
3eedc72 Octavia v2 API for listeners
d5f1ffd DIB: drop some dependencies
f44606c Remove unused logging import
6740b93 Assorted trivial fixes for v2 loadbalancer tests
ae2e13f Fix v2 LB API return for null description and name
6030033 Change v2 API LB create return status code
a33eae3 Move API v1, v2 hooks to API Common
9eb39bf Use HostAddressOpt for opts that accept IP and hostnames
bf90231 Remove local DIB elements dir
0b08075 DB migration to add ID column to HM
e94ff26 Adds a new feature to limit the amphora build rate
dc98000 Look for all qemu-img/kvm package names in rhel-based distros
b06259b Update Octavia v2 API for vip_network_id
375ac22 Fix load balancer project_id handling on POST
0bb42b1 Add v2 load balancer type and controllers
04d5ec9 fix py3x test bug so functional tests will pass
8aa1500 devstack: install qemu-kvm on RHEL-based distros
cf8aa2f Updated from global requirements
ad48295 Devstack plugin: API only mode
3251ee0 Fix typo
7d55564 Updated from global requirements
039395f Replace six.iteritems() with .items()
1506f0a Fix quota lock on single_create with auth enabled
7fdc8a1 Update for new pep8 rules E402 and W503
21d1239 Updated from global requirements
7351a4e Fix cascade delete flow (pool quota requirements missing)
e1ec15c Allow to create vip in lb-mgmt-net
cf9a8c8 Look for diskimage-builder not dib-utils when building amps
0e11f94 Switch to use stable data_utils
935afa3 Switch to use exec_command instead of mount/umount
007e576 Adds v2 general API information section
2ec4460 Add network_id to VIP to match neutron-lbaas
80cbfa3 Recurse dictionary generation in model to_dict()
19e604c Updated from global requirements
b2494dd Adds devstack plugin support for all amp base OS
34b74ab Updated from global requirements
e20c32e tempest: Switch to local copy of tempset/scenario/manager.py
f7426dc Updated from global requirements
6ea3628 Don't use Tempest internal methods
2342cb6 Work around devstack selecting incorrect image
53807c4 gate_hook: Stop writing local.conf directly
8353889 Set project_id on sub-objects during single-create
92af1df Remove unused logging import
a2fb049 Fix the service type for octavia
21c67d2 Updated from global requirements
0d11e88 create_certificates.sh needs to be executable
22e0a5c Add common api handlers for v1 and v2
0dd4649 Use cryptsetup/LUKS for encrypted ramfs
42cde9c Remove v1 base type
5b72c13 Create api-ref base for Octavia
ada92f7 Update test-requirements hacking
e713f05 Add option to choose an availability_zone for amps
4394990 Remove mention of deprecated verbose option
a73d615 Updated from global requirements
dc7c296 Remove config option "amp_network"
108ab27 Fix Octavia v1 API project_id for POST
4909bf9 Updated from global requirements
a1b7f5d Switch to use test_utils.call_until_true
f345b42 Allow a configuration option for random Amphora name
86698b2 Fix the amphora failover flow docs diagram
119e223 Fix py3x gates and functional
cf240b8 Remove white space between print ()
5701a2d Update reno for stable/ocata
fa242df Fix the PKG-INFO to 5 - Production/Stable
196187c Fix "P2" note references in act/act specs
531e463 Add common base type for v1 and v2
e251016 Remove python3.4 from tox


Diffstat (except docs and test files)
-------------------------------------

.gitignore                                         |    4 +-
.gitreview                                         |    1 +
HACKING.rst                                        |    8 +-
README.rst                                         |   12 +-
TESTING.rst                                        |   86 +
api-ref/source/conf.py                             |  224 ++
api-ref/source/examples/versions-get-resp.json     |   14 +
api-ref/source/http-status.yaml                    |   55 +
api-ref/source/index.rst                           |   85 +
api-ref/source/parameters.yaml                     | 1055 +++++++++
api-ref/source/v1/octaviaapi.rst                   | 2280 ++++++++++++++++++
.../source/v2/examples/healthmonitor-create-curl   |    1 +
.../v2/examples/healthmonitor-create-request.json  |   15 +
.../v2/examples/healthmonitor-create-response.json |   25 +
.../source/v2/examples/healthmonitor-delete-curl   |    1 +
api-ref/source/v2/examples/healthmonitor-list-curl |    1 +
api-ref/source/v2/examples/healthmonitor-show-curl |    1 +
.../v2/examples/healthmonitor-show-response.json   |   25 +
.../source/v2/examples/healthmonitor-update-curl   |    1 +
.../v2/examples/healthmonitor-update-request.json  |   13 +
.../v2/examples/healthmonitor-update-response.json |   25 +
.../v2/examples/healthmonitors-list-response.json  |   27 +
.../v2/examples/http-header-insertion-obj.json     |    6 +
api-ref/source/v2/examples/l7policies-list-curl    |    1 +
.../v2/examples/l7policies-list-response.json      |   25 +
api-ref/source/v2/examples/l7policy-create-curl    |    1 +
.../v2/examples/l7policy-create-request.json       |   11 +
.../v2/examples/l7policy-create-response.json      |   25 +
api-ref/source/v2/examples/l7policy-delete-curl    |    1 +
api-ref/source/v2/examples/l7policy-show-curl      |    1 +
.../source/v2/examples/l7policy-show-response.json |   24 +
api-ref/source/v2/examples/l7policy-update-curl    |    1 +
.../v2/examples/l7policy-update-request.json       |   10 +
.../v2/examples/l7policy-update-response.json      |   24 +
api-ref/source/v2/examples/l7rule-create-curl      |    1 +
.../source/v2/examples/l7rule-create-request.json  |    9 +
.../source/v2/examples/l7rule-create-response.json |   17 +
api-ref/source/v2/examples/l7rule-delete-curl      |    1 +
api-ref/source/v2/examples/l7rule-show-curl        |    1 +
.../source/v2/examples/l7rule-show-response.json   |   17 +
api-ref/source/v2/examples/l7rule-update-curl      |    1 +
.../source/v2/examples/l7rule-update-request.json  |    9 +
.../source/v2/examples/l7rule-update-response.json |   17 +
api-ref/source/v2/examples/l7rules-list-curl       |    1 +
.../source/v2/examples/l7rules-list-response.json  |   18 +
api-ref/source/v2/examples/listener-create-curl    |    1 +
.../v2/examples/listener-create-request.json       |   20 +
.../v2/examples/listener-create-response.json      |   35 +
api-ref/source/v2/examples/listener-delete-curl    |    1 +
api-ref/source/v2/examples/listener-show-curl      |    1 +
.../source/v2/examples/listener-show-response.json |   35 +
api-ref/source/v2/examples/listener-stats-curl     |    1 +
.../v2/examples/listener-stats-response.json       |    9 +
api-ref/source/v2/examples/listener-update-curl    |    1 +
.../v2/examples/listener-update-request.json       |   18 +
.../v2/examples/listener-update-response.json      |   35 +
api-ref/source/v2/examples/listeners-list-curl     |    1 +
.../v2/examples/listeners-list-response.json       |   38 +
.../source/v2/examples/loadbalancer-create-curl    |    1 +
.../v2/examples/loadbalancer-create-request.json   |   11 +
.../v2/examples/loadbalancer-create-response.json  |   19 +
.../source/v2/examples/loadbalancer-delete-curl    |    1 +
.../examples/loadbalancer-full-create-request.json |   87 +
.../loadbalancer-full-create-response.json         |  177 ++
api-ref/source/v2/examples/loadbalancer-show-curl  |    1 +
.../v2/examples/loadbalancer-show-response.json    |   19 +
api-ref/source/v2/examples/loadbalancer-stats-curl |    1 +
.../v2/examples/loadbalancer-stats-response.json   |    9 +
.../source/v2/examples/loadbalancer-status-curl    |    1 +
.../v2/examples/loadbalancer-status-response.json  |  113 +
.../source/v2/examples/loadbalancer-update-curl    |    1 +
.../v2/examples/loadbalancer-update-request.json   |    7 +
.../v2/examples/loadbalancer-update-response.json  |   19 +
api-ref/source/v2/examples/loadbalancers-list-curl |    1 +
.../v2/examples/loadbalancers-list-response.json   |   31 +
api-ref/source/v2/examples/member-create-curl      |    1 +
.../source/v2/examples/member-create-request.json  |   11 +
.../source/v2/examples/member-create-response.json |   18 +
api-ref/source/v2/examples/member-delete-curl      |    1 +
api-ref/source/v2/examples/member-show-curl        |    1 +
.../source/v2/examples/member-show-response.json   |   18 +
api-ref/source/v2/examples/member-update-curl      |    1 +
.../source/v2/examples/member-update-request.json  |    9 +
.../source/v2/examples/member-update-response.json |   18 +
api-ref/source/v2/examples/members-list-curl       |    1 +
.../source/v2/examples/members-list-response.json  |   20 +
api-ref/source/v2/examples/pool-create-curl        |    1 +
.../source/v2/examples/pool-create-request.json    |   14 +
.../source/v2/examples/pool-create-response.json   |   31 +
api-ref/source/v2/examples/pool-delete-curl        |    1 +
.../v2/examples/pool-session-persistence-obj.json  |    1 +
api-ref/source/v2/examples/pool-show-curl          |    1 +
api-ref/source/v2/examples/pool-show-response.json |   31 +
api-ref/source/v2/examples/pool-update-curl        |    1 +
.../source/v2/examples/pool-update-request.json    |   10 +
.../source/v2/examples/pool-update-response.json   |   31 +
api-ref/source/v2/examples/pools-list-curl         |    1 +
.../source/v2/examples/pools-list-response.json    |   38 +
api-ref/source/v2/examples/quota-delete-curl       |    1 +
api-ref/source/v2/examples/quota-show-curl         |    1 +
api-ref/source/v2/examples/quota-update-curl       |    1 +
.../source/v2/examples/quota-update-request.json   |    9 +
.../source/v2/examples/quota-update-response.json  |    9 +
api-ref/source/v2/examples/quotas-defaults-curl    |    1 +
.../v2/examples/quotas-defaults-response.json      |    9 +
api-ref/source/v2/examples/quotas-list-curl        |    1 +
.../source/v2/examples/quotas-list-response.json   |   12 +
.../source/v2/examples/quotas-show-response.json   |    9 +
api-ref/source/v2/general.inc                      |  509 ++++
api-ref/source/v2/healthmonitor.inc                |  400 ++++
api-ref/source/v2/index.rst                        |   52 +
api-ref/source/v2/l7policy.inc                     |  365 +++
api-ref/source/v2/l7rule.inc                       |  348 +++
api-ref/source/v2/listener.inc                     |  469 ++++
api-ref/source/v2/loadbalancer.inc                 |  552 +++++
api-ref/source/v2/member.inc                       |  383 +++
api-ref/source/v2/pool.inc                         |  437 ++++
api-ref/source/v2/quota.inc                        |  281 +++
bin/create_certificates.sh                         |    2 +-
client/__init__.py                                 |    0
devstack/README.md                                 |   15 +-
devstack/contrib/new-octavia-devstack.sh           |    4 +-
devstack/files/wsgi/octavia-api.template           |   47 +
devstack/plugin.sh                                 |  229 +-
devstack/samples/README-Vagrant.md                 |    4 +-
devstack/samples/multinode/local.conf              |    1 -
devstack/samples/providers.rb                      |    4 +-
devstack/samples/singlenode/Vagrantfile            |    4 +-
devstack/samples/singlenode/local.conf             |    1 -
devstack/samples/singlenode/local.sh               |    6 +-
devstack/settings                                  |   15 +-
diskimage-create/README.rst                        |   35 +-
diskimage-create/diskimage-create.sh               |   94 +-
diskimage-create/requirements.txt                  |    2 +-
diskimage-create/tox.ini                           |    2 +-
.../design/version0.5/component-design.rst         |  517 +++++
.../design/version0.5/v0.5-component-design.dot    |  230 ++
.../design/version0.5/v0.5-component-design.dot    |  225 --
.../reference/octavia-component-overview.svg       |  400 ++++
elements/amphora-agent-rhel/README.rst             |    1 +
elements/amphora-agent-rhel/element-deps           |    1 +
elements/amphora-agent-rhel/package-installs.yaml  |    1 +
.../11-enable-octavia-amphora-agent-systemd        |    9 +
.../amphora-agent/install.d/75-run_setup_install   |    2 +-
.../amphora-agent/source-repository-amphora-agent  |    4 +-
elements/apt-mirror/10-deprecate-apt-mirror        |    3 -
elements/apt-mirror/README.rst                     |   16 -
elements/apt-mirror/finalise.d/99-setup            |    3 -
elements/apt-mirror/pre-install.d/00-apt           |    5 -
elements/apt-mirror/root.d/0-check                 |    5 -
elements/centos-mirror/README.rst                  |    9 -
elements/centos-mirror/finalise.d/99-setup         |    3 -
elements/centos-mirror/pre-install.d/00-yum        |   13 -
elements/centos-mirror/root.d/0-check              |    5 -
elements/cert-ramfs-ecrypt/README.rst              |    4 -
elements/cert-ramfs-ecrypt/element-deps            |    2 -
.../init-scripts/systemd/cert-ramfs-ecrypt.service |   15 -
.../init-scripts/sysv/cert-ramfs-ecrypt            |   45 -
.../init-scripts/upstart/cert-ramfs-ecrypt.conf    |   19 -
elements/cert-ramfs-ecrypt/package-installs.yaml   |    1 -
elements/cert-ramfs-ecrypt/svc-map                 |    2 -
elements/certs-ramfs/README.rst                    |    4 +
elements/certs-ramfs/element-deps                  |    2 +
.../init-scripts/systemd/certs-ramfs.service       |   13 +
elements/certs-ramfs/init-scripts/sysv/certs-ramfs |   46 +
.../init-scripts/upstart/certs-ramfs.conf          |   21 +
elements/certs-ramfs/package-installs.yaml         |    1 +
.../post-install.d/30-enable-certs-ramfs-service   |   21 +
elements/certs-ramfs/svc-map                       |    2 +
elements/fedora-mirror/README.rst                  |    9 -
elements/fedora-mirror/finalise.d/99-setup         |    3 -
elements/fedora-mirror/pre-install.d/00-yum        |   13 -
elements/fedora-mirror/root.d/0-check              |    5 -
.../post-install.d/20-haproxy-user-group-config    |   21 +
.../post-install.d/20-haproxy-user-group-config    |   21 +
etc/octavia.conf                                   |   99 +-
etc/policy/README.rst                              |   14 +
etc/policy/admin_or_owner-policy.json              |   11 +
etc/policy/octavia-policy-generator.conf           |    3 +
httpd/octavia-api.conf                             |   23 +
octavia/amphorae/backends/agent/agent_jinja_cfg.py |    2 +
.../backends/agent/api_server/amphora_info.py      |  102 +-
.../agent/api_server/certificate_update.py         |    4 +-
.../backends/agent/api_server/keepalived.py        |   30 +-
.../amphorae/backends/agent/api_server/listener.py |  151 +-
.../amphorae/backends/agent/api_server/osutils.py  |   23 +-
octavia/amphorae/backends/agent/api_server/plug.py |   44 +-
.../amphorae/backends/agent/api_server/server.py   |    3 +-
.../api_server/templates/keepalived.systemd.j2     |    3 +-
.../api_server/templates/keepalived.sysvinit.j2    |   12 +-
.../api_server/templates/keepalived.upstart.j2     |    2 +-
.../api_server/templates/plug_vip_ethX.conf.j2     |    2 +
.../api_server/templates/rh_plug_vip_ethX.conf.j2  |    4 +
.../agent/api_server/templates/systemd.conf.j2     |    9 +-
.../agent/api_server/templates/sysvinit.conf.j2    |   13 +-
.../agent/api_server/templates/upstart.conf.j2     |    8 +-
octavia/amphorae/backends/agent/api_server/util.py |    2 +-
.../backends/health_daemon/health_daemon.py        |   52 +-
.../backends/health_daemon/health_sender.py        |    9 +-
.../backends/health_daemon/status_message.py       |    7 +-
octavia/amphorae/backends/utils/haproxy_query.py   |   45 +-
octavia/amphorae/driver_exceptions/exceptions.py   |    5 +-
octavia/amphorae/drivers/driver_base.py            |   20 +-
octavia/amphorae/drivers/haproxy/exceptions.py     |    4 +-
.../amphorae/drivers/haproxy/rest_api_driver.py    |   66 +-
octavia/amphorae/drivers/health/heartbeat_udp.py   |  134 +-
.../drivers/keepalived/vrrp_rest_driver.py         |   10 +-
octavia/amphorae/drivers/noop_driver/driver.py     |   19 +-
octavia/api/app.py                                 |   12 +-
octavia/api/common/__init__.py                     |    0
octavia/api/common/hooks.py                        |   38 +
octavia/api/common/pagination.py                   |  286 +++
octavia/api/common/types.py                        |  170 ++
octavia/api/config.py                              |    6 +-
octavia/api/handlers/__init__.py                   |    0
octavia/api/handlers/abstract_handler.py           |   67 +
.../api/handlers/controller_simulator/__init__.py  |    0
.../api/handlers/controller_simulator/handler.py   |  444 ++++
octavia/api/handlers/queue/__init__.py             |    0
octavia/api/handlers/queue/producer.py             |  191 ++
octavia/api/root_controller.py                     |   56 +-
octavia/api/v1/controllers/__init__.py             |    9 +-
octavia/api/v1/controllers/base.py                 |   13 +-
octavia/api/v1/controllers/health_monitor.py       |   23 +-
octavia/api/v1/controllers/l7policy.py             |   17 +-
octavia/api/v1/controllers/l7rule.py               |   15 +-
octavia/api/v1/controllers/listener.py             |   37 +-
octavia/api/v1/controllers/load_balancer.py        |  135 +-
octavia/api/v1/controllers/member.py               |   33 +-
octavia/api/v1/controllers/pool.py                 |   32 +-
octavia/api/v1/controllers/quotas.py               |   19 +-
octavia/api/v1/handlers/__init__.py                |    0
octavia/api/v1/handlers/abstract_handler.py        |   67 -
.../v1/handlers/controller_simulator/__init__.py   |    0
.../v1/handlers/controller_simulator/handler.py    |  449 ----
octavia/api/v1/handlers/queue/__init__.py          |    0
octavia/api/v1/handlers/queue/producer.py          |  204 --
octavia/api/v1/hooks.py                            |   25 -
octavia/api/v1/types/base.py                       |   93 -
octavia/api/v1/types/health_monitor.py             |    3 +-
octavia/api/v1/types/l7policy.py                   |    2 +-
octavia/api/v1/types/l7rule.py                     |    2 +-
octavia/api/v1/types/listener.py                   |    3 +-
octavia/api/v1/types/listener_statistics.py        |    2 +-
octavia/api/v1/types/load_balancer.py              |    3 +-
octavia/api/v1/types/load_balancer_statistics.py   |    2 +-
octavia/api/v1/types/member.py                     |   13 +-
octavia/api/v1/types/pool.py                       |    5 +-
octavia/api/v1/types/quotas.py                     |    2 +-
octavia/api/v2/controllers/__init__.py             |   47 +-
octavia/api/v2/controllers/base.py                 |  105 +-
octavia/api/v2/controllers/health_monitor.py       |  266 +++
octavia/api/v2/controllers/l7policy.py             |  303 +++
octavia/api/v2/controllers/l7rule.py               |  252 ++
octavia/api/v2/controllers/listener.py             |  369 +++
octavia/api/v2/controllers/load_balancer.py        |  521 +++++
octavia/api/v2/controllers/member.py               |  267 +++
octavia/api/v2/controllers/pool.py                 |  337 +++
octavia/api/v2/controllers/quotas.py               |  119 +
octavia/api/v2/handlers/__init__.py                |    0
octavia/api/v2/handlers/abstract_handler.py        |   67 -
.../v2/handlers/controller_simulator/__init__.py   |    0
.../v2/handlers/controller_simulator/handler.py    |  449 ----
octavia/api/v2/handlers/queue/__init__.py          |    0
octavia/api/v2/handlers/queue/producer.py          |  204 --
octavia/api/v2/hooks.py                            |   24 -
octavia/api/v2/types/base.py                       |   93 -
octavia/api/v2/types/health_monitor.py             |  166 ++
octavia/api/v2/types/l7policy.py                   |  133 ++
octavia/api/v2/types/l7rule.py                     |  112 +
octavia/api/v2/types/listener.py                   |  198 ++
octavia/api/v2/types/load_balancer.py              |  189 ++
octavia/api/v2/types/member.py                     |  134 ++
octavia/api/v2/types/pool.py                       |  192 ++
octavia/api/v2/types/quotas.py                     |   81 +
octavia/certificates/common/auth/barbican_acl.py   |    4 +-
octavia/certificates/common/barbican.py            |   22 +-
octavia/certificates/generator/anchor.py           |    8 +-
octavia/certificates/generator/local.py            |   29 +-
octavia/certificates/manager/barbican.py           |   39 +-
octavia/certificates/manager/local.py              |  162 ++
octavia/cmd/agent.py                               |    5 +-
octavia/cmd/api.py                                 |    6 +-
octavia/cmd/health_manager.py                      |   22 +-
octavia/cmd/house_keeping.py                       |   39 +-
octavia/cmd/octavia_worker.py                      |   12 +-
octavia/common/base_taskflow.py                    |    1 +
octavia/common/clients.py                          |    9 +-
octavia/common/config.py                           |  168 +-
octavia/common/constants.py                        |  105 +-
octavia/common/context.py                          |   11 +-
octavia/common/data_models.py                      |   95 +-
octavia/common/decorators.py                       |    7 +-
octavia/common/exceptions.py                       |   79 +-
octavia/common/jinja/haproxy/jinja_cfg.py          |   11 +-
octavia/common/jinja/haproxy/templates/macros.j2   |   38 +-
octavia/common/keystone.py                         |   32 +-
octavia/common/policy.py                           |   55 +-
octavia/common/stats.py                            |    9 +-
octavia/common/tls_utils/cert_parser.py            |  104 +-
octavia/common/validate.py                         |   85 +-
octavia/compute/compute_base.py                    |   19 +-
octavia/compute/drivers/noop_driver/driver.py      |    2 +-
octavia/compute/drivers/nova_driver.py             |   89 +-
octavia/controller/healthmanager/health_manager.py |   69 +-
octavia/controller/healthmanager/update_db.py      |  162 +-
octavia/controller/housekeeping/house_keeping.py   |   51 +-
octavia/controller/queue/consumer.py               |   75 +-
octavia/controller/queue/endpoint.py               |   57 +-
octavia/controller/queue/event_queue.py            |    2 +-
octavia/controller/worker/amphora_rate_limit.py    |   96 +
octavia/controller/worker/controller_worker.py     |  141 +-
octavia/controller/worker/flows/amphora_flows.py   |   33 +-
.../worker/flows/health_monitor_flows.py           |    8 +-
octavia/controller/worker/flows/listener_flows.py  |    1 +
.../controller/worker/flows/load_balancer_flows.py |   22 +-
octavia/controller/worker/flows/member_flows.py    |   15 +-
octavia/controller/worker/flows/pool_flows.py      |   14 +-
octavia/controller/worker/task_utils.py            |   80 +-
.../worker/tasks/amphora_driver_tasks.py           |   42 +-
octavia/controller/worker/tasks/compute_tasks.py   |   52 +-
octavia/controller/worker/tasks/database_tasks.py  |  586 ++---
octavia/controller/worker/tasks/lifecycle_tasks.py |    9 +-
octavia/controller/worker/tasks/network_tasks.py   |   58 +-
octavia/db/api.py                                  |   15 +
octavia/db/base_models.py                          |   23 +
octavia/db/migration/alembic_migrations/env.py     |    4 +-
.../034b2dc2f3e0_modernize_l7policy_fields.py      |  141 ++
.../13500e2e978d_update_url_and_name_size.py       |    6 +-
.../versions/14892634e228_update_vip.py            |    6 +-
...09101b9b_add_server_group_id_to_loadbalancer.py |    6 +-
...c1d83044c_keepalived_configuration_datamodel.py |    8 +-
...16465_adding_terminate_https_tls_ref_support.py |    8 +-
.../256852d5ff7c_add_lb_network_ip_to_amphora.py   |    6 +-
...0c3cd_add_monitor_address_and_port_to_member.py |   42 +
...40a7_add_amphora_vrrp_port_id_and_ha_port_id.py |    6 +-
.../versions/29ff921a6eb_shared_pools.py           |    6 +-
...a6d5ac_update_lb_and_amphora_data_model_for_.py |    8 +-
.../versions/35dee79d5865_initial_create.py        |    8 +-
.../versions/36b94648fef8_add_timestamp.py         |    6 +-
.../3a1e1cdb7b27_rename_amphora_host_id.py         |    6 +-
...c848b96_create_no_monitor_operational_status.py |    6 +-
...e5b37a0bdb9_add_vrrp_ip_and_ha_ip_to_amphora.py |    6 +-
.../versions/3f8ff3be828e_create_quotas_table.py   |    6 +-
.../43287cd10fef_make_pool_lb_algorithm_larger.py  |    6 +-
.../versions/443fe6676637_add_network_id_to_vip.py |   32 +
...683_adding_name_column_to_member_and_health_.py |    8 +-
.../versions/458c9ee2a011_l7_policies_and_rules.py |    8 +-
.../48660b6643f0_add_new_states_for_amphora.py     |    8 +-
.../4aeb9e23ad43_add_draining_operating_status.py  |   34 +
.../4c094013699a_update_load_balancer_amphora.py   |    6 +-
.../versions/4d9cf7d32f2_insert_headers.py         |    6 +-
.../4faaa983e7a9_update_member_address_column.py   |    6 +-
.../4fe8240425b4_update_vip_add_subnet_id.py       |    6 +-
...52377704420e_add_timestamps_to_healthmonitor.py |   55 +
.../5309960964f8_add_proxy_protocol_for_pool.py    |   46 +
...56_add_a_column_busy_in_table_amphora_health.py |    6 +-
..._add_cert_expiration__infor_in_amphora_table.py |    6 +-
.../62816c232310_fix_migration_for_mysql_5_7.py    |    6 +-
.../6abb04f24c5_tenant_id_to_project_id.py         |    6 +-
.../82b9402e71fd_update_vip_address_size.py        |    6 +-
...df6c3_change_tls_container_id_length_in_sni_.py |    6 +-
.../92fe9857279_create_healthmanager_table.py      |    6 +-
...473976d6d_add_provisioning_status_to_objects.py |    6 +-
.../c11292016060_add_request_errors_for_stats.py   |    6 +-
.../versions/d85ca7258d21_modernize_l7rule.py      |   69 +
...2bda93bf_add_ping_and_tlshello_monitor_types.py |   45 +
.../alembic_migrations/versions/fac584114642_.py   |   56 +
...a7d8a_create_amphora_build_rate_limit_tables.py |   64 +
octavia/db/migration/cli.py                        |    2 +-
octavia/db/models.py                               |  100 +-
octavia/db/prepare.py                              |   56 +-
octavia/db/repositories.py                         |  524 +++--
octavia/hacking/checks.py                          |  229 +-
octavia/i18n.py                                    |   10 -
octavia/network/base.py                            |    5 +-
.../drivers/neutron/allowed_address_pairs.py       |  100 +-
octavia/network/drivers/neutron/base.py            |   19 +-
octavia/network/drivers/noop_driver/driver.py      |   28 +-
octavia/network/drivers/nova-network/__init__.py   |    0
octavia/opts.py                                    |    3 +
octavia/policies/__init__.py                       |   16 +
octavia/policies/base.py                           |   69 +-
octavia/policies/healthmonitor.py                  |   67 +
octavia/policies/l7policy.py                       |   67 +
octavia/policies/l7rule.py                         |   62 +
octavia/policies/listener.py                       |   75 +
octavia/policies/loadbalancer.py                   |   83 +
octavia/policies/member.py                         |   60 +
octavia/policies/pool.py                           |   67 +
octavia/policies/quota.py                          |   68 +
.../backend/agent/api_server/test_server.py        |  144 +-
.../functional/api/v1/test_listener_statistics.py  |    3 +-
.../api/v1/test_load_balancer_statistics.py        |    3 +-
.../tempest/v1/clients/load_balancers_client.py    |    9 +
.../tempest/v1/scenario/test_listener_basic.py     |    2 +-
.../v1/scenario/test_load_balancer_tree_minimal.py |    6 +-
.../backends/agent/api_server/test_amphora_info.py |    6 +-
.../backends/agent/api_server/test_listener.py     |    8 +-
.../backends/agent/api_server/test_plug.py         |   23 +-
.../backends/health_daemon/test_health_daemon.py   |  114 +-
.../amphorae/backends/utils/test_haproxy_query.py  |   25 +-
.../drivers/haproxy/test_rest_api_driver.py        |   67 +-
.../unit/api/v1/handlers/queue/test_producer.py    |  236 --
.../unit/api/v1/types/test_health_monitors.py      |    2 +-
.../unit/api/v2/handlers/queue/test_producer.py    |  236 --
.../unit/api/v2/types/test_health_monitors.py      |  181 ++
.../certificates/common/auth/test_barbican_acl.py  |   13 +-
.../unit/certificates/common/test_barbican.py      |   57 +-
.../unit/certificates/manager/test_barbican.py     |   26 +-
.../unit/common/jinja/haproxy/test_jinja_cfg.py    |   81 +-
.../unit/common/sample_configs/sample_certs.py     |   44 +-
.../unit/common/sample_configs/sample_configs.py   |  119 +-
.../unit/common/tls_utils/test_cert_parser.py      |   16 +-
.../healthmanager/test_health_manager.py           |   21 +-
.../controller/healthmanager/test_update_db.py     |  330 ++-
.../controller/housekeeping/test_house_keeping.py  |    6 +-
.../controller/worker/flows/test_amphora_flows.py  |   26 +-
.../worker/flows/test_health_monitor_flows.py      |    7 +-
.../worker/flows/test_load_balancer_flows.py       |    8 +-
.../controller/worker/flows/test_member_flows.py   |   12 +-
.../controller/worker/flows/test_pool_flows.py     |    4 +-
.../controller/worker/tasks/test_compute_tasks.py  |  100 +-
.../controller/worker/tasks/test_database_tasks.py |  256 +-
.../worker/tasks/test_lifecycle_tasks.py           |   11 +-
.../controller/worker/tasks/test_network_tasks.py  |   11 +-
.../controller/worker/test_amphora_rate_limit.py   |  129 ++
.../controller/worker/test_controller_worker.py    |  103 +-
.../unit/controller/worker/test_task_utils.py      |    2 +-
.../unit/network/drivers/neutron/constants.py      |   44 -
.../drivers/neutron/test_allowed_address_pairs.py  |  200 +-
.../unit/network/drivers/neutron/test_base.py      |  174 +-
...althMonitor-functionality-79240ef13e65cd88.yaml |   14 +
...accurate-haproxy-statuses-7e995bb4c7cc0dd6.yaml |    9 +
...-tls-terminated-listeners-965ec7c1a8a9f732.yaml |    4 +
...ti-affinity-policy-config-39df309fd12d443c.yaml |    3 +
...d-column-to-healthmonitor-a331934ad2cede87.yaml |    6 +
...ddress-and-port-to-member-99fa2ee65e2b04b4.yaml |    3 +
.../notes/add_API_reference-81d84d0c8598b764.yaml  |    5 +
...y_to_disable_api_versions-253a8dc4253f0f56.yaml |    4 +
.../allow-vip-on-mgmt-net-d6c65d4ccb2a8f2c.yaml    |    4 +
releasenotes/notes/amp-az-1a0b4255c77fd1dc.yaml    |    5 +
.../api-create-project-id-4bb984b24d56de2e.yaml    |    9 +
.../auth-strategy-keystone-80b3780a18420b6c.yaml   |    4 +
...detect_haproxy_user_group-c220b6a2c8f1d589.yaml |    7 +
.../build-rate-limiting-a2d2d4c9333a8f46.yaml      |    9 +
.../documentation-migration-f72c6a1703a105b7.yaml  |    7 +
.../failover-vip-no-dhcp-50805c5321ebbb05.yaml     |    5 +
.../notes/fix-vip-net-no-gw-b46c3ade1a748e69.yaml  |    5 +
...palived-race-with-haproxy-e402ef7f466871f6.yaml |   10 +
...ariables-into-new-section-e1c20b77aaf5ea15.yaml |   11 +
.../notes/octavia-v2-api-c32a62b37c2c8f6f.yaml     |    8 +
.../notes/octavia_v2_RBAC-0eb2b51aa6278435.yaml    |   18 +
.../notes/pike-release-35a1d632ce854d4a.yaml       |    7 +
...visioning_neutron_db_sync-c019d96a7b64fe20.yaml |    8 +
.../notes/remove-tenant_id-c0352efbfb3a54f9.yaml   |    5 +
.../notes/service-type-73efc939e48d5858.yaml       |    6 +
.../support-proxy-protocol-cc5991175a110619.yaml   |    3 +
.../support-wsgi-deployment-56013fef7172e982.yaml  |    3 +
...e-dib-distribution-mirror-400d96c1a7df9862.yaml |   14 +
releasenotes/source/conf.py                        |    5 +-
releasenotes/source/index.rst                      |   16 +-
releasenotes/source/ocata.rst                      |    6 +
requirements.txt                                   |   50 +-
setup.cfg                                          |   27 +-
setup.py                                           |    2 +-
specs/template.rst                                 |    2 +-
specs/version0.5/amphora-manager-interface.rst     |    2 +-
specs/version0.5/base-image.rst                    |    2 +-
specs/version0.5/controller-worker.rst             |    2 +-
.../version0.5/housekeeping-manager-interface.rst  |    4 +-
specs/version0.9/active-active-distributor.rst     |   43 +-
specs/version0.9/active-active-topology.rst        |   42 +-
specs/version0.9/stats_api.rst                     |    2 +-
specs/version1.0/flavors.rst                       |  338 +++
specs/version1.0/health_ip_port.rst                |  186 ++
specs/version1.0/n-lbaas-api-parity.rst            |  118 +
specs/version1.0/vip-qos-policy-application.rst    |  186 ++
specs/version1/n-lbaas-api-parity.rst              |  118 -
test-requirements.txt                              |   10 +-
tools/create_flow_docs.py                          |   13 +-
tox.ini                                            |   54 +-
601 files changed, 42662 insertions(+), 13445 deletions(-)


Requirements updates
--------------------

diff --git a/doc-requirements.txt b/doc-requirements.txt
index d4ace28..516079c 100644
--- a/doc-requirements.txt
+++ b/doc-requirements.txt
@@ -3 +3 @@ blockdiag
-docutils==0.11
+docutils>=0.11
@@ -5 +4,0 @@ nwdiag
-oslosphinx
@@ -7 +6 @@ seqdiag
-sphinx==1.2.3
+sphinx>=1.6.2
@@ -12,0 +12 @@ graphviz
+openstackdocstheme>=1.11.0  # Apache-2.0
diff --git a/requirements.txt b/requirements.txt
index 626ff76..04b2f40 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,0 +5 @@ alembic>=0.8.10 # MIT
+cotyledon>=1.3.0 # Apache-2.0
@@ -6,5 +7,4 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD
-pbr>=1.8 # Apache-2.0
-SQLAlchemy<1.1.0,>=1.0.10 # MIT
-Babel>=2.3.4 # BSD
-eventlet!=0.18.3,>=0.18.2 # MIT
-requests!=2.12.2,>=2.10.0 # Apache-2.0
+pbr!=2.1.0,>=2.0.0 # Apache-2.0
+SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
+Babel!=2.4.0,>=2.3.4 # BSD
+requests>=2.14.2 # Apache-2.0
@@ -12 +12 @@ rfc3986>=0.3.1 # Apache-2.0
-keystoneauth1>=2.18.0 # Apache-2.0
+keystoneauth1>=3.1.0 # Apache-2.0
@@ -14,2 +14,2 @@ keystonemiddleware>=4.12.0 # Apache-2.0
-python-neutronclient>=5.1.0 # Apache-2.0
-WebOb>=1.6.0 # MIT
+python-neutronclient>=6.3.0 # Apache-2.0
+WebOb>=1.7.1 # MIT
@@ -17,9 +17,9 @@ six>=1.9.0 # MIT
-stevedore>=1.17.1 # Apache-2.0
-oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
-oslo.context>=2.9.0 # Apache-2.0
-oslo.db>=4.15.0 # Apache-2.0
-oslo.i18n>=2.1.0 # Apache-2.0
-oslo.log>=3.11.0 # Apache-2.0
-oslo.messaging>=5.14.0 # Apache-2.0
-oslo.middleware>=3.0.0 # Apache-2.0
-oslo.policy>=1.17.0 # Apache-2.0
+stevedore>=1.20.0 # Apache-2.0
+oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
+oslo.context>=2.14.0 # Apache-2.0
+oslo.db>=4.24.0 # Apache-2.0
+oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
+oslo.log>=3.22.0 # Apache-2.0
+oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0
+oslo.middleware>=3.27.0 # Apache-2.0
+oslo.policy>=1.23.0 # Apache-2.0
@@ -27,3 +27,2 @@ oslo.reports>=0.6.0 # Apache-2.0
-oslo.service>=1.10.0 # Apache-2.0
-oslo.utils>=3.18.0 # Apache-2.0
-pyasn1 # BSD
+oslo.utils>=3.20.0 # Apache-2.0
+pyasn1!=0.2.3 # BSD
@@ -32,3 +31,3 @@ PyMySQL>=0.7.6 # MIT License
-python-barbicanclient>=4.0.0 # Apache-2.0
-python-glanceclient>=2.5.0 # Apache-2.0
-python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
+python-barbicanclient!=4.5.0,!=4.5.1,>=4.0.0 # Apache-2.0
+python-glanceclient>=2.8.0 # Apache-2.0
+python-novaclient>=9.0.0 # Apache-2.0
@@ -38,0 +38 @@ taskflow>=2.7.0 # Apache-2.0
+diskimage-builder!=1.6.0,!=1.7.0,!=1.7.1,>=1.1.2 # Apache-2.0
@@ -44,2 +44,2 @@ ipaddress>=1.0.7;python_version<'3.3' # PSF
-cryptography!=1.3.0,>=1.0 # BSD/Apache-2.0
-pyroute2>=0.4.12 # Apache-2.0 (+ dual licensed GPL2)
+cryptography!=2.0,>=1.6 # BSD/Apache-2.0
+pyroute2>=0.4.17 # Apache-2.0 (+ dual licensed GPL2)
diff --git a/test-requirements.txt b/test-requirements.txt
index 6c2c0e1..3a13fe3 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4 +4 @@
-hacking<0.10,>=0.9.1
+hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
@@ -6 +6 @@ requests-mock>=1.1 # Apache-2.0
-coverage>=4.0 # Apache-2.0
+coverage!=4.4,>=4.0 # Apache-2.0
@@ -8,0 +9 @@ python-subunit>=0.0.18 # Apache-2.0/BSD
+os-api-ref>=1.0.0 # Apache-2.0
@@ -14 +14,0 @@ testscenarios>=0.4 # Apache-2.0/BSD
-WebTest>=2.0 # MIT
@@ -16 +16 @@ doc8 # Apache-2.0
-reno>=1.8.0 # Apache-2.0
+reno!=2.3.1,>=1.8.0 # Apache-2.0
@@ -18 +18 @@ bandit>=1.1.0 # Apache-2.0
-tempest>=12.1.0 # Apache-2.0
+tempest>=16.1.0 # Apache-2.0






More information about the Release-announce mailing list