'LoadBalancer' object has no attribute '__getitem__' when running with openstacksdk 0.17.2

Bug #1830398 reported by Michal Dulko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
kuryr-kubernetes
Fix Released
Undecided
Michal Dulko

Bug Description

We keep 0.13.0 as openstacksdk version in lower-constraints.txt, yet we don't work well with 0.17.2 as this traceback happens:

2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry [-] Report handler unhealthy LoadBalancerHandler: TypeError: 'LoadBalancer' object has no attribute '__getitem__'
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry Traceback (most recent call last):
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/handlers/retry.py", line 56, in __call__
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry self._handler(event)
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/handlers/k8s_base.py", line 75, in __call__
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry self.on_present(obj)
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 184, in on_present
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry if self._sync_lbaas_members(endpoints, lbaas_state, lbaas_spec):
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 271, in _sync_lbaas_members
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry if self._sync_lbaas_pools(endpoints, lbaas_state, lbaas_spec):
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 438, in _sync_lbaas_pools
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry if self._sync_lbaas_listeners(endpoints, lbaas_state, lbaas_spec):
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 495, in _sync_lbaas_listeners
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry if self._sync_lbaas_loadbalancer(endpoints, lbaas_state, lbaas_spec):
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/handlers/lbaas.py", line 587, in _sync_lbaas_loadbalancer
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry provider=self._lb_provider)
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/drivers/lbaasv2.py", line 100, in ensure_loadbalancer
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry self._find_loadbalancer)
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/drivers/lbaasv2.py", line 698, in _ensure
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry result = find(obj)
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry File "/usr/lib/python2.7/site-packages/kuryr_kubernetes/controller/drivers/lbaasv2.py", line 574, in _find_loadbalancer
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry loadbalancer.id = os_lb['id']
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry TypeError: 'LoadBalancer' object has no attribute '__getitem__'
2019-05-24 10:50:15.229 1 ERROR kuryr_kubernetes.handlers.retry

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to kuryr-kubernetes (master)

Fix proposed to branch: master
Review: https://review.opendev.org/661335

Changed in kuryr-kubernetes:
assignee: nobody → Michal Dulko (michal-dulko-f)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to kuryr-kubernetes (master)

Reviewed: https://review.opendev.org/661335
Committed: https://git.openstack.org/cgit/openstack/kuryr-kubernetes/commit/?id=533ab7cff588602b8d5eb3cb58ac15c4c19185cc
Submitter: Zuul
Branch: master

commit 533ab7cff588602b8d5eb3cb58ac15c4c19185cc
Author: Michał Dulko <email address hidden>
Date: Fri May 24 17:26:48 2019 +0200

    Fix incombatilibity with openstacksdk <= 0.17.2

    We keep 0.13.0 as minimum supported version of openstacksdk in
    lower-constraints.txt, but we've found an issue running with 0.17.2. The
    issue is fixed by switching from dict notation to object notation when
    accessing properties of calls to openstacksdk as only newer versions of
    openstacksdk support dict notation.

    Another side of the story is that our lower-constraints job doesn't
    really install versions from lower-constraints.txt due to a mistake in
    tox.ini. Maybe we could have avoided the aformentioned bug if we had
    noticed that before. This is fixed by this commit and that also required
    me to bump up the pyroute2 to 0.5.3 in upper-constraints.txt as
    apparently 0.5.1 isn't py3-compatible. protobuf is bumped to 3.6.0 as
    3.5.2 version apparently wasn't compatible with our own code.

    The unit tests are now updated to make sure using dict notation to
    access openstacksdk objects will fail on lower-constraints job in the
    future.

    Change-Id: I5113f7574f4d2e450de95494c9287bb7427e67d4
    Closes-Bug: 1830398

Changed in kuryr-kubernetes:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/kuryr-kubernetes 1.1.0

This issue was fixed in the openstack/kuryr-kubernetes 1.1.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.