2016-04-22 00:18:00 |
Franklin Naval |
description |
1. Create a Load Balancer.
2. Create a Listener with TCP
3. Create a Pool with HTTP
4. Observe the following error: {"NeutronError": {"message": "Listener protocol TCP and pool protocol HTTP are not compatible.", "type": "ListenerPoolProtocolMismatch", "detail": ""}
5. List Pools.
Result: Pool still gets created after the error.
Expected: Pool should not get created if the listener and the pool protocols are not compatible.
Note: This bug occurs on any mismatch of protocols between listener and pool: TCP vs HTTP, TCP vs HTTPS, TCP vs TERMINATED_HTTPS, HTTP vs TCP, etc.
Log (note the creation of pool "95300d77-084a-4015-804f-698d960b8050" after the 409 error):
2016-04-21 22:15:04.370 17603 INFO tempest.lib.common.rest_client [req-411d6275-9341-4c53-ac13-3a879ae95ed1 ] Request (TestProtocols:
test_create_listener_and_pool_with_protocol): 409 POST http://127.0.0.1:9696/v2.0/lbaas/pools 0.339s
2016-04-21 22:15:04.370 17603 DEBUG tempest.lib.common.rest_client [req-411d6275-9341-4c53-ac13-3a879ae95ed1 ] Request - Headers: {'X
-Auth-Token': '<omitted>', 'Accept': 'application/json', 'Content-Type': 'application/json'}
Body: {"pool": {"name": "pool-1818041961", "protocol": "HTTP", "admin_state_up": true, "description": "pool_description-15184
40568", "session_persistence": null, "listener_id": "7e4a7347-4113-4de4-9af9-092fc532bf23", "loadbalancer_id": "9c65fe8b-cc24-4e5b-8d
ae-bcfb22c0163f", "lb_algorithm": "ROUND_ROBIN"}}
Response - Headers: {'content-length': '151', 'x-openstack-request-id': 'req-411d6275-9341-4c53-ac13-3a879ae95ed1', 'date': 'Thu,
21 Apr 2016 22:15:04 GMT', 'content-type': 'application/json', 'connection': 'close', 'status': '409'}
Body: {"NeutronError": {"message": "Listener protocol TCP and pool protocol HTTP are not compatible.", "type": "ListenerPoolProtocolMismatch", "detail": ""}} _log_request_full /opt/stack/neutron-lbaas/.tox/apiv2/local/lib/python2.7/site-packages/tempest/lib/common/rest_client.py:414
2016-04-21 22:15:04.590 17603 INFO tempest.lib.common.rest_client [req-97add959-c5f8-4389-8f4a-41708b59cc92 ] Request (TestProtocols:tearDown): 200 GET http://127.0.0.1:9696/v2.0/lbaas/loadbalancers/9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f 0.188s
2016-04-21 22:15:04.590 17603 DEBUG tempest.lib.common.rest_client [req-97add959-c5f8-4389-8f4a-41708b59cc92 ] Request - Headers: {'X-Auth-Token': '<omitted>', 'Accept': 'application/json', 'Content-Type': 'application/json'}
Body: None
Response - Headers: {'content-length': '517', 'x-openstack-request-id': 'req-97add959-c5f8-4389-8f4a-41708b59cc92', 'date': 'Thu, 21 Apr 2016 22:15:04 GMT', 'content-location': 'http://127.0.0.1:9696/v2.0/lbaas/loadbalancers/9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f', 'content-type': 'application/json', 'connection': 'close', 'status': '200'}
Body: {"loadbalancer": {"description": "", "admin_state_up": true, "tenant_id": "59c6e9a660b94e97b0f2a4919974c220", "provisioning_status": "ACTIVE", "vip_subnet_id": "732198a3-0a70-478a-a4dc-a9cee967f423", "listeners": [{"id": "7e4a7347-4113-4de4-9af9-092fc532bf23"}], "vip_address": "10.100.0.2", "vip_port_id": "27c8f167-a10d-4d6f-b7fd-12e4f0373e5e", "provider": "octavia", "pools": [{"id": "95300d77-084a-4015-804f-698d960b8050"}], "id": "9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f", "operating_status": "ONLINE", "name": ""}} _log_request_full /opt/stack/neutron-lbaas/.tox/apiv2/local/lib/python2.7/site-packages/tempest/lib/common/rest_client.py:414 |
1. Create a Load Balancer.
2. Create a Listener with TCP
3. Create a Pool with HTTP
4. Observe the following error: {"NeutronError": {"message": "Listener protocol TCP and pool protocol HTTP are not compatible.", "type": "ListenerPoolProtocolMismatch", "detail": ""}
5. List Pools.
Result: Pool still gets created after the error.
Expected: Pool should not get created if the listener and the pool protocols are not compatible.
Note: This bug occurs on any mismatch of protocols between listener and pool: TCP vs HTTP, TCP vs HTTPS, HTTP vs TCP, etc.
Log (note the creation of pool "95300d77-084a-4015-804f-698d960b8050" after the 409 error):
2016-04-21 22:15:04.370 17603 INFO tempest.lib.common.rest_client [req-411d6275-9341-4c53-ac13-3a879ae95ed1 ] Request (TestProtocols:
test_create_listener_and_pool_with_protocol): 409 POST http://127.0.0.1:9696/v2.0/lbaas/pools 0.339s
2016-04-21 22:15:04.370 17603 DEBUG tempest.lib.common.rest_client [req-411d6275-9341-4c53-ac13-3a879ae95ed1 ] Request - Headers: {'X
-Auth-Token': '<omitted>', 'Accept': 'application/json', 'Content-Type': 'application/json'}
Body: {"pool": {"name": "pool-1818041961", "protocol": "HTTP", "admin_state_up": true, "description": "pool_description-15184
40568", "session_persistence": null, "listener_id": "7e4a7347-4113-4de4-9af9-092fc532bf23", "loadbalancer_id": "9c65fe8b-cc24-4e5b-8d
ae-bcfb22c0163f", "lb_algorithm": "ROUND_ROBIN"}}
Response - Headers: {'content-length': '151', 'x-openstack-request-id': 'req-411d6275-9341-4c53-ac13-3a879ae95ed1', 'date': 'Thu,
21 Apr 2016 22:15:04 GMT', 'content-type': 'application/json', 'connection': 'close', 'status': '409'}
Body: {"NeutronError": {"message": "Listener protocol TCP and pool protocol HTTP are not compatible.", "type": "ListenerPoolProtocolMismatch", "detail": ""}} _log_request_full /opt/stack/neutron-lbaas/.tox/apiv2/local/lib/python2.7/site-packages/tempest/lib/common/rest_client.py:414
2016-04-21 22:15:04.590 17603 INFO tempest.lib.common.rest_client [req-97add959-c5f8-4389-8f4a-41708b59cc92 ] Request (TestProtocols:tearDown): 200 GET http://127.0.0.1:9696/v2.0/lbaas/loadbalancers/9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f 0.188s
2016-04-21 22:15:04.590 17603 DEBUG tempest.lib.common.rest_client [req-97add959-c5f8-4389-8f4a-41708b59cc92 ] Request - Headers: {'X-Auth-Token': '<omitted>', 'Accept': 'application/json', 'Content-Type': 'application/json'}
Body: None
Response - Headers: {'content-length': '517', 'x-openstack-request-id': 'req-97add959-c5f8-4389-8f4a-41708b59cc92', 'date': 'Thu, 21 Apr 2016 22:15:04 GMT', 'content-location': 'http://127.0.0.1:9696/v2.0/lbaas/loadbalancers/9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f', 'content-type': 'application/json', 'connection': 'close', 'status': '200'}
Body: {"loadbalancer": {"description": "", "admin_state_up": true, "tenant_id": "59c6e9a660b94e97b0f2a4919974c220", "provisioning_status": "ACTIVE", "vip_subnet_id": "732198a3-0a70-478a-a4dc-a9cee967f423", "listeners": [{"id": "7e4a7347-4113-4de4-9af9-092fc532bf23"}], "vip_address": "10.100.0.2", "vip_port_id": "27c8f167-a10d-4d6f-b7fd-12e4f0373e5e", "provider": "octavia", "pools": [{"id": "95300d77-084a-4015-804f-698d960b8050"}], "id": "9c65fe8b-cc24-4e5b-8dae-bcfb22c0163f", "operating_status": "ONLINE", "name": ""}} _log_request_full /opt/stack/neutron-lbaas/.tox/apiv2/local/lib/python2.7/site-packages/tempest/lib/common/rest_client.py:414
For explicitness, here are the combos I've seen this bug hit on:
Listener protocol HTTP and pool protocol HTTPS are not compatible.
Listener protocol TCP and pool protocol HTTPS are not compatible.
Listener protocol HTTPS and pool protocol HTTP are not compatible.
Listener protocol TCP and pool protocol HTTP are not compatible.
Listener protocol HTTP and pool protocol TCP are not compatible.
Listener protocol HTTPS and pool protocol TCP are not compatible. |
|