)]}'
{"doc/source/contributor/effective_neutron.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":92,"context_line":"  can be triggered that would do things like recalculate quotas or update revision"},{"line_number":93,"context_line":"  numbers of parent objects. For more details on all of the things that can go wrong"},{"line_number":94,"context_line":"  using bulk delete operations, see the \"Warning\" sections in the link above."},{"line_number":95,"context_line":"* For PostgreSQL if you\u0027re using GROUP BY everything in the SELECT list must be"},{"line_number":96,"context_line":"  an aggregate SUM(...), COUNT(...), etc or used in the GROUP BY."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The incorrect variant:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  .. code:: python"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"     q \u003d query(Object.id, Object.name,"},{"line_number":103,"context_line":"               func.count(Object.number)).group_by(Object.name)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  The correct variant:"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  .. code:: python"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"     q \u003d query(Object.id, Object.name,"},{"line_number":110,"context_line":"               func.count(Object.number)).group_by(Object.id, Object.name)"},{"line_number":111,"context_line":"* Beware of the `InvalidRequestError \u003chttp://docs.sqlalchemy.org/en/latest/faq/sessions.html#this-session-s-transaction-has-been-rolled-back-due-to-a-previous-exception-during-flush-or-similar\u003e`_ exception."},{"line_number":112,"context_line":"  There is even a `Neutron bug \u003chttps://bugs.launchpad.net/neutron/+bug/1409774\u003e`_"},{"line_number":113,"context_line":"  registered for it. Bear in mind that this error may also occur when nesting"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d5717b46","line":110,"range":{"start_line":95,"start_character":0,"end_line":110,"end_character":74},"updated":"2019-10-18 07:34:54.000000000","message":"If I understand well this section is not necessary any more","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f6b1db100eb4c7ada3b997f1a7ee8527464eb9e1","unresolved":false,"context_lines":[{"line_number":92,"context_line":"  can be triggered that would do things like recalculate quotas or update revision"},{"line_number":93,"context_line":"  numbers of parent objects. For more details on all of the things that can go wrong"},{"line_number":94,"context_line":"  using bulk delete operations, see the \"Warning\" sections in the link above."},{"line_number":95,"context_line":"* For PostgreSQL if you\u0027re using GROUP BY everything in the SELECT list must be"},{"line_number":96,"context_line":"  an aggregate SUM(...), COUNT(...), etc or used in the GROUP BY."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  The incorrect variant:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  .. code:: python"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"     q \u003d query(Object.id, Object.name,"},{"line_number":103,"context_line":"               func.count(Object.number)).group_by(Object.name)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  The correct variant:"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  .. code:: python"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"     q \u003d query(Object.id, Object.name,"},{"line_number":110,"context_line":"               func.count(Object.number)).group_by(Object.id, Object.name)"},{"line_number":111,"context_line":"* Beware of the `InvalidRequestError \u003chttp://docs.sqlalchemy.org/en/latest/faq/sessions.html#this-session-s-transaction-has-been-rolled-back-due-to-a-previous-exception-during-flush-or-similar\u003e`_ exception."},{"line_number":112,"context_line":"  There is even a `Neutron bug \u003chttps://bugs.launchpad.net/neutron/+bug/1409774\u003e`_"},{"line_number":113,"context_line":"  registered for it. Bear in mind that this error may also occur when nesting"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_50d359d6","line":110,"range":{"start_line":95,"start_character":0,"end_line":110,"end_character":74},"in_reply_to":"3fa7e38b_d5717b46","updated":"2019-10-18 08:50:00.000000000","message":"Admin can install any DB backend. IMO this information is useful to make compatible code.","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"     e.execute(foo.insert().values(bar\u003d[2]))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  The 2nd insert should crash (list provided, integer expected). It crashes at"},{"line_number":198,"context_line":"  least with mysql and postgresql backends, but succeeds with pymysql because"},{"line_number":199,"context_line":"  it transforms them into:"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"  .. code:: sql"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_75b527d0","line":198,"range":{"start_line":198,"start_character":19,"end_line":198,"end_character":42},"updated":"2019-10-18 07:34:54.000000000","message":"perhaps this can be removed as well, but not that misleading for the reader","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f6b1db100eb4c7ada3b997f1a7ee8527464eb9e1","unresolved":false,"context_lines":[{"line_number":195,"context_line":"     e.execute(foo.insert().values(bar\u003d[2]))"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  The 2nd insert should crash (list provided, integer expected). It crashes at"},{"line_number":198,"context_line":"  least with mysql and postgresql backends, but succeeds with pymysql because"},{"line_number":199,"context_line":"  it transforms them into:"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"  .. code:: sql"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d0de69d9","line":198,"range":{"start_line":198,"start_character":19,"end_line":198,"end_character":42},"in_reply_to":"3fa7e38b_75b527d0","updated":"2019-10-18 08:50:00.000000000","message":"IMO, this information can stay here because this is true.","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"}],"doc/source/contributor/testing/template_model_sync_test.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"which is provided by oslo.db and was adapted for Neutron. It compares core"},{"line_number":39,"context_line":"Neutron models and vendor specific models with migrations from Neutron core and"},{"line_number":40,"context_line":"migrations from the driver/plugin repo. This test is functional - it runs against"},{"line_number":41,"context_line":"MySQL and PostgreSQL dialects. The detailed description of this test can be"},{"line_number":42,"context_line":"found in Neutron Database Layer section - :ref:`testing-database-migrations`."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Steps for implementing the test"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_75876714","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"updated":"2019-10-18 07:34:54.000000000","message":"nit: this can be removed","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"480fa4ae28e0d7f16f38b57b4435decd3073714d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"which is provided by oslo.db and was adapted for Neutron. It compares core"},{"line_number":39,"context_line":"Neutron models and vendor specific models with migrations from Neutron core and"},{"line_number":40,"context_line":"migrations from the driver/plugin repo. This test is functional - it runs against"},{"line_number":41,"context_line":"MySQL and PostgreSQL dialects. The detailed description of this test can be"},{"line_number":42,"context_line":"found in Neutron Database Layer section - :ref:`testing-database-migrations`."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Steps for implementing the test"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_7028d5ed","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":20},"in_reply_to":"3fa7e38b_75876714","updated":"2019-10-18 08:34:27.000000000","message":"Done","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    pass"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":" class TestModelsMigrationsPsql(testlib_api.PostgreSQLTestCaseMixin,"},{"line_number":137,"context_line":"                                _TestModelsMigrationsFoo,"},{"line_number":138,"context_line":"                                testlib_api.SqlTestCaseLight):"},{"line_number":139,"context_line":"    pass"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"3. Add functional requirements"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_958c6336","line":139,"range":{"start_line":136,"start_character":0,"end_line":139,"end_character":8},"updated":"2019-10-18 07:34:54.000000000","message":"This can be removed, as the class is removed by this patch","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"}],"neutron/db/migration/__init__.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"def alter_enum_add_value(table, column, enum, nullable, server_default\u003dNone):"},{"line_number":122,"context_line":"    \u0027\u0027\u0027If we need to expand Enum values for some column - for PostgreSQL this"},{"line_number":123,"context_line":"    can be done with ALTER TYPE function. For MySQL, it can be done with"},{"line_number":124,"context_line":"    ordinary alembic alter_column function."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param table:table name"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_151cf311","line":123,"range":{"start_line":122,"start_character":58,"end_line":123,"end_character":40},"updated":"2019-10-18 07:34:54.000000000","message":"This can be removed as well if postgres is not supported any more","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"480fa4ae28e0d7f16f38b57b4435decd3073714d","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"def alter_enum_add_value(table, column, enum, nullable, server_default\u003dNone):"},{"line_number":122,"context_line":"    \u0027\u0027\u0027If we need to expand Enum values for some column - for PostgreSQL this"},{"line_number":123,"context_line":"    can be done with ALTER TYPE function. For MySQL, it can be done with"},{"line_number":124,"context_line":"    ordinary alembic alter_column function."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    :param table:table name"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_10cba14a","line":123,"range":{"start_line":122,"start_character":58,"end_line":123,"end_character":40},"in_reply_to":"3fa7e38b_151cf311","updated":"2019-10-18 08:34:27.000000000","message":"We don\u0027t test it but it does not mean we can\u0027t provide this compatibility.","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    bind \u003d op.get_bind()"},{"line_number":134,"context_line":"    engine \u003d bind.engine"},{"line_number":135,"context_line":"    if engine.name \u003d\u003d \u0027postgresql\u0027:"},{"line_number":136,"context_line":"        values \u003d {\u0027name\u0027: enum.name,"},{"line_number":137,"context_line":"                  \u0027values\u0027: \", \".join(\"\u0027\" + i + \"\u0027\" for i in enum.enums),"},{"line_number":138,"context_line":"                  \u0027column\u0027: column,"},{"line_number":139,"context_line":"                  \u0027table\u0027: table,"},{"line_number":140,"context_line":"                  \u0027server_default\u0027: server_default}"},{"line_number":141,"context_line":"        if server_default is not None:"},{"line_number":142,"context_line":"            op.execute(\"ALTER TABLE %(table)s ALTER COLUMN %(column)s\""},{"line_number":143,"context_line":"                       \" DROP DEFAULT\" % values)"},{"line_number":144,"context_line":"        op.execute(\"ALTER TYPE %(name)s rename to old_%(name)s\" % values)"},{"line_number":145,"context_line":"        op.execute(\"CREATE TYPE %(name)s AS enum (%(values)s)\" % values)"},{"line_number":146,"context_line":"        op.execute(\"ALTER TABLE %(table)s ALTER COLUMN %(column)s TYPE \""},{"line_number":147,"context_line":"                   \"%(name)s USING %(column)s::text::%(name)s \" % values)"},{"line_number":148,"context_line":"        if server_default is not None:"},{"line_number":149,"context_line":"            op.execute(\"ALTER TABLE %(table)s ALTER COLUMN %(column)s\""},{"line_number":150,"context_line":"                       \" SET DEFAULT \u0027%(server_default)s\u0027\" % values)"},{"line_number":151,"context_line":"        op.execute(\"DROP TYPE old_%(name)s\" % values)"},{"line_number":152,"context_line":"    else:"},{"line_number":153,"context_line":"        op.alter_column(table, column, type_\u003denum,"},{"line_number":154,"context_line":"                        existing_nullable\u003dnullable,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d515fbe6","line":151,"range":{"start_line":135,"start_character":4,"end_line":151,"end_character":53},"updated":"2019-10-18 07:34:54.000000000","message":"ditto","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"}],"neutron/objects/trunk.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if ex.key_table is None:"},{"line_number":60,"context_line":"                # NOTE(ivc): \u0027key_table\u0027 is provided by \u0027oslo.db\u0027 [1]"},{"line_number":61,"context_line":"                # only for a limited set of database backends (i.e."},{"line_number":62,"context_line":"                # MySQL and PostgreSQL). Other database backends"},{"line_number":63,"context_line":"                # (including SQLite) would have \u0027key_table\u0027 set to None."},{"line_number":64,"context_line":"                # We emulate the \u0027key_table\u0027 support for such database"},{"line_number":65,"context_line":"                # backends."}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_759e876a","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":38},"updated":"2019-10-18 07:34:54.000000000","message":"This can be removed","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"480fa4ae28e0d7f16f38b57b4435decd3073714d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if ex.key_table is None:"},{"line_number":60,"context_line":"                # NOTE(ivc): \u0027key_table\u0027 is provided by \u0027oslo.db\u0027 [1]"},{"line_number":61,"context_line":"                # only for a limited set of database backends (i.e."},{"line_number":62,"context_line":"                # MySQL and PostgreSQL). Other database backends"},{"line_number":63,"context_line":"                # (including SQLite) would have \u0027key_table\u0027 set to None."},{"line_number":64,"context_line":"                # We emulate the \u0027key_table\u0027 support for such database"},{"line_number":65,"context_line":"                # backends."}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_9008f191","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":38},"in_reply_to":"3fa7e38b_759e876a","updated":"2019-10-18 08:34:27.000000000","message":"Done","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f6b1db100eb4c7ada3b997f1a7ee8527464eb9e1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if ex.key_table is None:"},{"line_number":60,"context_line":"                # NOTE(ivc): \u0027key_table\u0027 is provided by \u0027oslo.db\u0027 [1]"},{"line_number":61,"context_line":"                # only for a limited set of database backends (i.e."},{"line_number":62,"context_line":"                # MySQL and PostgreSQL). Other database backends"},{"line_number":63,"context_line":"                # (including SQLite) would have \u0027key_table\u0027 set to None."},{"line_number":64,"context_line":"                # We emulate the \u0027key_table\u0027 support for such database"},{"line_number":65,"context_line":"                # backends."}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d0f74959","line":62,"range":{"start_line":62,"start_character":23,"end_line":62,"end_character":38},"in_reply_to":"3fa7e38b_9008f191","updated":"2019-10-18 08:50:00.000000000","message":"Actually this is just for information. We are also talking about SQLite and we don\u0027t officially test or support it.","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"}],"neutron/tests/functional/db/test_migrations.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \u0027openstack_citest\u0027 on localhost."},{"line_number":80,"context_line":"    The test will then use that db and user/password combo to run the tests."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    For PostgreSQL on Ubuntu this can be done with the following commands::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        sudo -u postgres psql"},{"line_number":85,"context_line":"        postgres\u003d# create user openstack_citest with createdb login password"},{"line_number":86,"context_line":"                  \u0027openstack_citest\u0027;"},{"line_number":87,"context_line":"        postgres\u003d# create database openstack_citest with owner"},{"line_number":88,"context_line":"                   openstack_citest;"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    For MySQL on Ubuntu this can be done with the following commands::"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d5eadbd6","line":88,"range":{"start_line":82,"start_character":0,"end_line":88,"end_character":36},"updated":"2019-10-18 07:34:54.000000000","message":"This can be removed","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"480fa4ae28e0d7f16f38b57b4435decd3073714d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    \u0027openstack_citest\u0027 on localhost."},{"line_number":80,"context_line":"    The test will then use that db and user/password combo to run the tests."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    For PostgreSQL on Ubuntu this can be done with the following commands::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        sudo -u postgres psql"},{"line_number":85,"context_line":"        postgres\u003d# create user openstack_citest with createdb login password"},{"line_number":86,"context_line":"                  \u0027openstack_citest\u0027;"},{"line_number":87,"context_line":"        postgres\u003d# create database openstack_citest with owner"},{"line_number":88,"context_line":"                   openstack_citest;"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    For MySQL on Ubuntu this can be done with the following commands::"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_10f40187","line":88,"range":{"start_line":82,"start_character":0,"end_line":88,"end_character":36},"in_reply_to":"3fa7e38b_d5eadbd6","updated":"2019-10-18 08:34:27.000000000","message":"Initially I pushed this patch quickly to sanitize the CI ASAP. Now the revert of this code is merged, I can take care of the documentation.","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def test_upgrade_expand_branch(self):"},{"line_number":202,"context_line":"        # Verify that \"command neutron-db-manage upgrade --expand\" works"},{"line_number":203,"context_line":"        #  without errors. Check this for both MySQL and PostgreSQL."},{"line_number":204,"context_line":"        upgrade(self.engine, self.alembic_config,"},{"line_number":205,"context_line":"                branch_name\u003d\u0027%s@head\u0027 % migration.EXPAND_BRANCH)"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_f5ccb78b","line":203,"range":{"start_line":203,"start_character":27,"end_line":203,"end_character":67},"updated":"2019-10-18 07:34:54.000000000","message":"Perhaps this can be left here, or as an extra the postgresql reference can be removed\n\"Check this for MySQL.\"","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"5f06bacc66e602581c7caf63a4e8f2b8782fa17c","unresolved":false,"context_lines":[{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def test_upgrade_contract_branch(self):"},{"line_number":208,"context_line":"        # Verify that \"command neutron-db-manage upgrade --contract\" works"},{"line_number":209,"context_line":"        # without errors. Check this for both MySQL and PostgreSQL."},{"line_number":210,"context_line":"        upgrade(self.engine, self.alembic_config,"},{"line_number":211,"context_line":"                branch_name\u003d\u0027%s@head\u0027 % migration.CONTRACT_BRANCH)"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b5c63f68","line":209,"range":{"start_line":209,"start_character":26,"end_line":209,"end_character":67},"updated":"2019-10-18 07:34:54.000000000","message":"ditto","commit_id":"14c3c18ceb501285d2ef677ccbede917868667b7"}]}
