Public bug reported:

Currently we dont have option to check status of listener. Below is the
output of listener without status.

root@runner:~# neutron lbaas-listener-show 8c0e0289-f85d-4539-8970-467a45a5c191
+---------------------------+------------------------------------------------+
| Field                     | Value                                          |
+---------------------------+------------------------------------------------+
| admin_state_up            | True                                           |
| connection_limit          | -1                                             |
| default_pool_id           |                                                |
| default_tls_container_ref |                                                |
| description               |                                                |
| id                        | 8c0e0289-f85d-4539-8970-467a45a5c191           |
| loadbalancers             | {"id": "bda96c0a-0167-45ab-8772-ba92bc0f2d00"} |
| name                      | test-lb-http                                   |
| protocol                  | HTTP                                           |
| protocol_port             | 80                                             |
| sni_container_refs        |                                                |
| tenant_id                 | ce1d087209c64df4b7e8007dc35def22               |
+---------------------------+------------------------------------------------+
root@runner:~#

Problem arise when we tried to configure listener and pool back to back
without any delay. Pool create fails saying listener is not ready.

Workaround is to add 3seconds delay between listener and pool creation.

Logs:

root@runner:~# neutron lbaas-loadbalancer-create --name test-lb vn-subnet; 
neutron lbaas-listener-create --name test-lb-http --loadbalancer test-lb 
--protocol HTTP --protocol-port 80; neutron lbaas-pool-create --name 
test-lb-pool-http  --lb-algorithm ROUND_ROBIN --listener test-lb-http  
--protocol HTTP
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| admin_state_up      | True                                 |
| description         |                                      |
| id                  | 3ed2ff4a-4d87-46da-8e5b-265364dd6861 |
| listeners           |                                      |
| name                | test-lb                              |
| operating_status    | OFFLINE                              |
| provider            | haproxy                              |
| provisioning_status | PENDING_CREATE                       |
| tenant_id           | ce1d087209c64df4b7e8007dc35def22     |
| vip_address         | 20.0.0.62                            |
| vip_port_id         | 4c33365e-64b9-428f-bc0b-bce6c08c9b20 |
| vip_subnet_id       | 63cbeccd-6887-4dda-b4d2-b7503bce870a |
+---------------------+--------------------------------------+
Created a new listener:
+---------------------------+------------------------------------------------+
| Field                     | Value                                          |
+---------------------------+------------------------------------------------+
| admin_state_up            | True                                           |
| connection_limit          | -1                                             |
| default_pool_id           |                                                |
| default_tls_container_ref |                                                |
| description               |                                                |
| id                        | 90260465-934a-44a4-a289-208e5af74cf5           |
| loadbalancers             | {"id": "3ed2ff4a-4d87-46da-8e5b-265364dd6861"} |
| name                      | test-lb-http                                   |
| protocol                  | HTTP                                           |
| protocol_port             | 80                                             |
| sni_container_refs        |                                                |
| tenant_id                 | ce1d087209c64df4b7e8007dc35def22               |
+---------------------------+------------------------------------------------+
Invalid state PENDING_UPDATE of loadbalancer resource 
3ed2ff4a-4d87-46da-8e5b-265364dd6861
root@runner:~#


Neutron:

: u'90260465-934a-44a4-a289-208e5af74cf5', u'protocol': u'HTTP', u'name': 
u'test-lb-pool-http', u'admin_state_up': True}} from (pid=7189) 
prepare_request_body /opt/stack/neutron/neutron/api/v2/base.py:657
2016-07-14 07:38:57.268 DEBUG neutron.db.quota.driver 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] Resources 
subnet,network,subnetpool,listener,healthmonitor,router,l2-gateway-connection,port,loadbalancer
 have unlimited quota limit. It is not required to calculated headroom  from 
(pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:167
2016-07-14 07:38:57.276 DEBUG neutron.db.quota.driver 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] Attempting to reserve 1 items for resource 
pool. Total usage: 0; quota limit: 10; headroom:10 from (pid=7189) 
make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:199
2016-07-14 07:38:57.353 ERROR neutron.api.v2.resource 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] create failed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource Traceback (most recent 
call last):
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 410, in create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return 
self._create(request, body, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     ectxt.value = 
e.inner_exc
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in 
__exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 521, in _create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     obj = do_create(body)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 503, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     request.context, 
reservation.reservation_id)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in 
__exit__
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 496, in do_create
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return 
obj_creator(request.context, **kwargs)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/services/loadbalancer/plugin.py", line 
743, in create_pool
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
constants.PENDING_UPDATE)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", 
line 164, in test_and_set_status
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
self.assert_modification_allowed(db_lb)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", 
line 151, in assert_modification_allowed
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     raise 
loadbalancerv2.StateInvalid(id=id, state=status)
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource StateInvalid: Invalid 
state PENDING_UPDATE of loadbalancer resource 
3ed2ff4a-4d87-46da-8e5b-265364dd6861
2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource 
2016-07-14 07:38:57.355 INFO neutron.wsgi 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] 172.17.5.148 - - [14/Jul/2016 07:38:57] "POST 
/v2.0/lbaas/pools.json HTTP/1.1" 500 394 0.091943

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: lbaas

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1602974

Title:
  [stable/liberty] LBaaS v2 haproxy: need a way to find status of
  listener

Status in neutron:
  New

Bug description:
  Currently we dont have option to check status of listener. Below is
  the output of listener without status.

  root@runner:~# neutron lbaas-listener-show 
8c0e0289-f85d-4539-8970-467a45a5c191
  +---------------------------+------------------------------------------------+
  | Field                     | Value                                          |
  +---------------------------+------------------------------------------------+
  | admin_state_up            | True                                           |
  | connection_limit          | -1                                             |
  | default_pool_id           |                                                |
  | default_tls_container_ref |                                                |
  | description               |                                                |
  | id                        | 8c0e0289-f85d-4539-8970-467a45a5c191           |
  | loadbalancers             | {"id": "bda96c0a-0167-45ab-8772-ba92bc0f2d00"} |
  | name                      | test-lb-http                                   |
  | protocol                  | HTTP                                           |
  | protocol_port             | 80                                             |
  | sni_container_refs        |                                                |
  | tenant_id                 | ce1d087209c64df4b7e8007dc35def22               |
  +---------------------------+------------------------------------------------+
  root@runner:~#

  Problem arise when we tried to configure listener and pool back to
  back without any delay. Pool create fails saying listener is not
  ready.

  Workaround is to add 3seconds delay between listener and pool
  creation.

  Logs:

  root@runner:~# neutron lbaas-loadbalancer-create --name test-lb vn-subnet; 
neutron lbaas-listener-create --name test-lb-http --loadbalancer test-lb 
--protocol HTTP --protocol-port 80; neutron lbaas-pool-create --name 
test-lb-pool-http  --lb-algorithm ROUND_ROBIN --listener test-lb-http  
--protocol HTTP
  Created a new loadbalancer:
  +---------------------+--------------------------------------+
  | Field               | Value                                |
  +---------------------+--------------------------------------+
  | admin_state_up      | True                                 |
  | description         |                                      |
  | id                  | 3ed2ff4a-4d87-46da-8e5b-265364dd6861 |
  | listeners           |                                      |
  | name                | test-lb                              |
  | operating_status    | OFFLINE                              |
  | provider            | haproxy                              |
  | provisioning_status | PENDING_CREATE                       |
  | tenant_id           | ce1d087209c64df4b7e8007dc35def22     |
  | vip_address         | 20.0.0.62                            |
  | vip_port_id         | 4c33365e-64b9-428f-bc0b-bce6c08c9b20 |
  | vip_subnet_id       | 63cbeccd-6887-4dda-b4d2-b7503bce870a |
  +---------------------+--------------------------------------+
  Created a new listener:
  +---------------------------+------------------------------------------------+
  | Field                     | Value                                          |
  +---------------------------+------------------------------------------------+
  | admin_state_up            | True                                           |
  | connection_limit          | -1                                             |
  | default_pool_id           |                                                |
  | default_tls_container_ref |                                                |
  | description               |                                                |
  | id                        | 90260465-934a-44a4-a289-208e5af74cf5           |
  | loadbalancers             | {"id": "3ed2ff4a-4d87-46da-8e5b-265364dd6861"} |
  | name                      | test-lb-http                                   |
  | protocol                  | HTTP                                           |
  | protocol_port             | 80                                             |
  | sni_container_refs        |                                                |
  | tenant_id                 | ce1d087209c64df4b7e8007dc35def22               |
  +---------------------------+------------------------------------------------+
  Invalid state PENDING_UPDATE of loadbalancer resource 
3ed2ff4a-4d87-46da-8e5b-265364dd6861
  root@runner:~#

  
  Neutron:

  : u'90260465-934a-44a4-a289-208e5af74cf5', u'protocol': u'HTTP', u'name': 
u'test-lb-pool-http', u'admin_state_up': True}} from (pid=7189) 
prepare_request_body /opt/stack/neutron/neutron/api/v2/base.py:657
  2016-07-14 07:38:57.268 DEBUG neutron.db.quota.driver 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] Resources 
subnet,network,subnetpool,listener,healthmonitor,router,l2-gateway-connection,port,loadbalancer
 have unlimited quota limit. It is not required to calculated headroom  from 
(pid=7189) make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:167
  2016-07-14 07:38:57.276 DEBUG neutron.db.quota.driver 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] Attempting to reserve 1 items for resource 
pool. Total usage: 0; quota limit: 10; headroom:10 from (pid=7189) 
make_reservation /opt/stack/neutron/neutron/db/quota/driver.py:199
  2016-07-14 07:38:57.353 ERROR neutron.api.v2.resource 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] create failed
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource Traceback (most recent 
call last):
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 410, in create
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return 
self._create(request, body, **kwargs)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     ectxt.value = 
e.inner_exc
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in 
__exit__
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 521, in _create
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     obj = 
do_create(body)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 503, in do_create
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     request.context, 
reservation.reservation_id)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in 
__exit__
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 496, in do_create
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     return 
obj_creator(request.context, **kwargs)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/services/loadbalancer/plugin.py", line 
743, in create_pool
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
constants.PENDING_UPDATE)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", 
line 164, in test_and_set_status
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     
self.assert_modification_allowed(db_lb)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron-lbaas/neutron_lbaas/db/loadbalancer/loadbalancer_dbv2.py", 
line 151, in assert_modification_allowed
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource     raise 
loadbalancerv2.StateInvalid(id=id, state=status)
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource StateInvalid: Invalid 
state PENDING_UPDATE of loadbalancer resource 
3ed2ff4a-4d87-46da-8e5b-265364dd6861
  2016-07-14 07:38:57.353 TRACE neutron.api.v2.resource 
  2016-07-14 07:38:57.355 INFO neutron.wsgi 
[req-f65cd995-dab1-4b43-96a0-dcbe5b93ffff admin 
ce1d087209c64df4b7e8007dc35def22] 172.17.5.148 - - [14/Jul/2016 07:38:57] "POST 
/v2.0/lbaas/pools.json HTTP/1.1" 500 394 0.091943

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1602974/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to