← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1190454] Re: sqlalchemy could not parse sql_connection urls containning ipv6 address

 

This is a real bug, but unfortunately it's in SQLAlchemy, so OpenStack
can't fix it directly without dumping SQLAlchemy, which would be a
drastic change.  Please report the bug to SQLAlchemy, though, so they
are aware that there are people who'd like them to support IPv6
addresses in their connection URLs.

As a workaround, you can give the box 2001:db8::22 a DNS entry or hosts
file entry and refer to it by hostname rather than IPv6 address.

** Changed in: nova
       Status: Confirmed => Won't Fix

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1190454

Title:
  sqlalchemy  could not parse sql_connection urls containning ipv6
  address

Status in OpenStack Compute (Nova):
  Won't Fix

Bug description:
  Version of Nova: Grizzly.

  I tried to configure openstack in pure IPv6 enviroment.

   Edit nova.conf file in controller node.
   Set the sql_connection = msyql://nova:nova@[2001:db8::22]/nova?charset=utf8 ( [2001:db8::22] is ipv6 address of controller node)

  When started the service nova-conductor (or any other project connected to database),  It reported ERROR.
  In File: /usr/lib64/python2.6/site-packages/sqlalchemy/engine/url.py
    Function :  def _parse_rfc1738_args(name):
                             pattern = re.compile(r'''
                                (?P<name>[\w\+]+)://
                                (?:
                                (?P<username>[^:/]*)
                                (?::(?P<password>[^/]*))?
                                @)?
                                (?:
                                (?P<host>[^/:]*)
                                (?::(?P<port>[^/]*))?
                                )?
                                (?:/(?P<database>.*))?
                                '''
                                , re.X)

                            m = pattern.match(name)
                                 if m is not None:
                                      components = m.groupdict()

  Add breakpoint in above code and debug to get the components. Result of components is following:
  { 'username': 'nova',  'name': 'mysql',  'database':'nova?charset=utf8',  'host': '[2001',  'password':'nova',   'port' : 'db8::22]' }

  Obviously, the current code could not parse  sql_connection urls that
  contain ipv6 address correctly.

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