yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #77734
[Bug 1794718] Re: Neutron VPNAAS don't update site connections on python3
Reviewed: https://review.openstack.org/605783
Committed: https://git.openstack.org/cgit/openstack/neutron-vpnaas/commit/?id=3075f3c29854da23fdb436ebfb7099d2991d2be4
Submitter: Zuul
Branch: master
commit 3075f3c29854da23fdb436ebfb7099d2991d2be4
Author: Viktor Krivak <viktor.krivak@xxxxxxxxxx>
Date: Thu Sep 27 17:26:33 2018 +0200
Call helper to convert bytes to str for Python3 in netns-wrapper
Closes-Bug: #1794718
Change-Id: I29ae5102ac9c29a5f6e63bae9a08004af620e27f
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1794718
Title:
Neutron VPNAAS don't update site connections on python3
Status in neutron:
Fix Released
Bug description:
Tested with StrongSwan but I hope this can cause issues on others
drivers too.
On python3 when new connection is created it's stuck in PENDING_CREATE
state. Everything is working but connection state is never updated.
Main reason is that agent send wrong id to server. On python3 message
look like this:
[{'updated_pending_status': False, 'ipsec_site_connections': {'a':
{'updated_pending_status': False, 'status': 'ACTIVE'}}, 'status':
'ACTIVE', 'id': 'a621a382-308d-4cd0-be0a-01c757064a13'},
{'updated_pending_status': False, 'ipsec_site_connections': {'a':
{'updated_pending_status': False, 'status': 'ACTIVE'}}, 'status':
'ACTIVE', 'id': 'd004c466-cc36-4b6b-8aa3-84d7e45569ad'}]
on python2
[{'status': 'ACTIVE', 'ipsec_site_connections': {u'7e14400a-60df-48d8
-91aa-ec97749555fc': {'status': 'ACTIVE', 'updated_pending_status':
False}}, 'updated_pending_status': False, 'id': u'c903732e-
67da-4363-baf1-0cdcb7476ee7'}, {'status': 'ACTIVE',
'ipsec_site_connections': {u'70671513-e0cf-4bdf-845e-cb6ef084baea':
{'status': 'ACTIVE', 'updated_pending_status': True}},
'updated_pending_status': True, 'id': u'995ed22c-
00c3-4496-b590-b84787ba6caa'}]
Notice uid in ipsec_site_connections. Problem is that this uid is
parsed from subprocess and on python3 this subprocess return bytes
instead of string. Because of this whole output parsing i kind of
screw up.
We was able to fix this issue via patching netns_wrapper:
diff --git a/neutron_vpnaas/services/vpn/common/netns_wrapper.py b/neutron_vpnaas/services/vpn/common/netns_wrapper.py
index 77378dcc7..35614a717 100644
--- a/neutron_vpnaas/services/vpn/common/netns_wrapper.py
+++ b/neutron_vpnaas/services/vpn/common/netns_wrapper.py
@@ -23,6 +23,7 @@ from neutron.common import utils
from oslo_config import cfg
from oslo_log import log as logging
from oslo_rootwrap import wrapper
+from neutron_lib.utils import helpers
import six
from neutron_vpnaas._i18n import _
@@ -67,6 +68,8 @@ def execute(cmd):
env=env)
_stdout, _stderr = obj.communicate()
+ _stdout = helpers.safe_decode_utf8(_stdout)
+ _stderr = helpers.safe_decode_utf8(_stderr)
msg = ('Command: %(cmd)s Exit code: %(returncode)s '
'Stdout: %(stdout)s Stderr: %(stderr)s' %
{'cmd': cmd,
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1794718/+subscriptions
References