2021-08-03 13:16:31 |
Edward Hope-Morley |
description |
With Ussuri on Ubuntu 20.04, I can create port with fixed IP address by CLI but I cannot do the same by Horizon GUI. I find some error like following on /var/log/apache2/error.log
openstack_dashboard.dashboards.project.networks.ports.workflows Failed to create a port for network 91f04dfb-7f69-4050-8b3b-142ee555ae55: dictionary keys changed during iteration
By more inspection, I can find that horizon never send that create port request to neutron. So I think it is horizon problem. Is this expected result or is this horizon bug? Is this related to policy?
Following debug logs maybe related too.
[Wed Oct 21 17:48:06.123807 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] DEBUG neutronclient.client GET call to neutron for http://10.7.55.18:9696/v2.0/extensions used request id req-95db8d1f-387b-492b-aff6-8238f09e504d
[Wed Oct 21 17:48:06.125925 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] DEBUG django.template Exception while resolving variable 'add_to_field' in template 'horizon/common/_workflow.html'.
[Wed Oct 21 17:48:06.126064 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] django.template.base.VariableDoesNotExist: Failed lookup for key [add_to_field] in [{'True': True, 'False': False, 'None': None}, {'csrf_token': <SimpleLazyObject: <function csrf.<locals>._get_val at 0x7f54c8e30f70>>, 'LANGUAGES': (('cs', 'Czech'), ('de', 'German'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('fr', 'French'), ('id', 'Indonesian'), ('it', 'Italian'), ('ja', 'Japanese'), ('ko', 'Korean (Korea)'), ('pl', 'Polish'), ('pt-br', 'Portuguese (Brazil)'), ('ru', 'Russian'), ('tr', 'Turkish'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Chinese (Taiwan)')), 'LANGUAGE_CODE': 'en', 'LANGUAGE_BIDI': False, 'request': <WSGIRequest: GET '/horizon/admin/networks/91f04dfb-7f69-4050-8b3b-142ee555ae55/ports/create'>, 'MEDIA_URL': '/horizon/media/', 'STATIC_URL': '/horizon/static/', 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7f54c90ef760>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'HORIZON_CONFIG': <horizon.conf.LazySettings object at 0x7f54d07eb880>, 'True': True, 'False': False, 'authorized_tenants': [<Project description=Bootstrap project for initializing the cloud., domain_id=default, enabled=True, id=84725e39c7a9462495e2cb6ae0cd111b, is_domain=False, links={'self': 'http://10.7.55.18:5000/v3/projects/84725e39c7a9462495e2cb6ae0cd111b'}, name=admin, options={}, parent_id=default, tags=[]>], 'keystone_providers': {'support': False}, 'regions': {'support': False, 'current': {'endpoint': 'http://10.7.55.18:5000/v3/', 'name': 'Default Region'}, 'available': []}, 'WEBROOT': '/horizon/', 'USER_MENU_LINKS': [{'name': 'OpenStack RC File', 'icon_classes': ['fa-download'], 'url': 'horizon:project:api_access:openrc'}], 'LOGOUT_URL': '/horizon/auth/logout/', 'profiler_enabled': False, 'JS_CATALOG': 'horizon+openstack_dashboard'}, {}, {'network_id': '91f04dfb-7f69-4050-8b3b-142ee555ae55', 'view': <openstack_dashboard.dashboards.admin.networks.ports.views.CreateView object at 0x7f54c90aabb0>, 'modal_backdrop': 'static', 'workflow': <CreatePort: create_port>, 'REDIRECT_URL': None, 'layout': ['modal'], 'modal': True}, {'entry_point': 'create_info'}] |
[Impact]
Fixes python 3.8 compatibility issue with port creation code.
[Test Plan]
* deploy openstack ussuri
* create a network port on horizon
* ensure creation successful
[Regression Potential]
No unexpected behaviour is anticipated from this patch since it is minor and does not impact any code outside of the feature that it fixes.
=========================================================================
With Ussuri on Ubuntu 20.04, I can create port with fixed IP address by CLI but I cannot do the same by Horizon GUI. I find some error like following on /var/log/apache2/error.log
openstack_dashboard.dashboards.project.networks.ports.workflows Failed to create a port for network 91f04dfb-7f69-4050-8b3b-142ee555ae55: dictionary keys changed during iteration
By more inspection, I can find that horizon never send that create port request to neutron. So I think it is horizon problem. Is this expected result or is this horizon bug? Is this related to policy?
Following debug logs maybe related too.
[Wed Oct 21 17:48:06.123807 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] DEBUG neutronclient.client GET call to neutron for http://10.7.55.18:9696/v2.0/extensions used request id req-95db8d1f-387b-492b-aff6-8238f09e504d
[Wed Oct 21 17:48:06.125925 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] DEBUG django.template Exception while resolving variable 'add_to_field' in template 'horizon/common/_workflow.html'.
[Wed Oct 21 17:48:06.126064 2020] [wsgi:error] [pid 3095280:tid 140002354386688] [remote 192.168.202.12:60886] django.template.base.VariableDoesNotExist: Failed lookup for key [add_to_field] in [{'True': True, 'False': False, 'None': None}, {'csrf_token': <SimpleLazyObject: <function csrf.<locals>._get_val at 0x7f54c8e30f70>>, 'LANGUAGES': (('cs', 'Czech'), ('de', 'German'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('fr', 'French'), ('id', 'Indonesian'), ('it', 'Italian'), ('ja', 'Japanese'), ('ko', 'Korean (Korea)'), ('pl', 'Polish'), ('pt-br', 'Portuguese (Brazil)'), ('ru', 'Russian'), ('tr', 'Turkish'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Chinese (Taiwan)')), 'LANGUAGE_CODE': 'en', 'LANGUAGE_BIDI': False, 'request': <WSGIRequest: GET '/horizon/admin/networks/91f04dfb-7f69-4050-8b3b-142ee555ae55/ports/create'>, 'MEDIA_URL': '/horizon/media/', 'STATIC_URL': '/horizon/static/', 'messages': <django.contrib.messages.storage.fallback.FallbackStorage object at 0x7f54c90ef760>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}, 'HORIZON_CONFIG': <horizon.conf.LazySettings object at 0x7f54d07eb880>, 'True': True, 'False': False, 'authorized_tenants': [<Project description=Bootstrap project for initializing the cloud., domain_id=default, enabled=True, id=84725e39c7a9462495e2cb6ae0cd111b, is_domain=False, links={'self': 'http://10.7.55.18:5000/v3/projects/84725e39c7a9462495e2cb6ae0cd111b'}, name=admin, options={}, parent_id=default, tags=[]>], 'keystone_providers': {'support': False}, 'regions': {'support': False, 'current': {'endpoint': 'http://10.7.55.18:5000/v3/', 'name': 'Default Region'}, 'available': []}, 'WEBROOT': '/horizon/', 'USER_MENU_LINKS': [{'name': 'OpenStack RC File', 'icon_classes': ['fa-download'], 'url': 'horizon:project:api_access:openrc'}], 'LOGOUT_URL': '/horizon/auth/logout/', 'profiler_enabled': False, 'JS_CATALOG': 'horizon+openstack_dashboard'}, {}, {'network_id': '91f04dfb-7f69-4050-8b3b-142ee555ae55', 'view': <openstack_dashboard.dashboards.admin.networks.ports.views.CreateView object at 0x7f54c90aabb0>, 'modal_backdrop': 'static', 'workflow': <CreatePort: create_port>, 'REDIRECT_URL': None, 'layout': ['modal'], 'modal': True}, {'entry_point': 'create_info'}] |
|