[octavia] octavia 1.0.1 (pike)
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
participants (1)
-
no-reply@openstack.org