Comment 14 for bug 1673613

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/ocata)

Reviewed: https://review.openstack.org/466774
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=b501fa7a926943238ff5b88ef94aaaf642765e73
Submitter: Jenkins
Branch: stable/ocata

commit b501fa7a926943238ff5b88ef94aaaf642765e73
Author: Matt Riedemann <email address hidden>
Date: Thu May 11 18:29:42 2017 -0400

    Handle special characters in database connection URL netloc

    When calling "nova-manage cell_v2 simple_cell_setup" or
    "nova-manage cell_v2 map_cell0" without passing in the
    --database_connection option, we read the [database]/connection
    URL from nova.conf, try to split the URL and then create a
    default connection based on the name of the original connection,
    so if you're cell database's name is 'nova' you'd end up with
    'nova_cell0' for the cell0 database name in the URL.

    The problem is the database connection URL has credentials in the
    netloc and if the password has special characters in it, those can
    mess up the URL split, like splitting on ? which is normally denoting
    the beginning of the path in a URL.

    This change handles special characters in the password by using
    a nice DB connection URL parsing utility method available in
    sqlalchemy to get the database name out of the connection URL string
    so we can replace it properly with the _cell0 suffix.

    Adds a release note as this bug causes issues when upgrading.

    Change-Id: I7a7678e4af8160e6f48b96095154fca6ca48ff09
    Closes-Bug: #1673613
    (cherry picked from commit 9a9a620ea2d06e51c01b0864d7275b57d7203e5a)