)]}'
{"doc/source/cli/nova-manage.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"372aec25334bd7003d20efd505be5ede23883c33","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    defined by ``[database]/connection`` in the configuration file.  If a"},{"line_number":221,"context_line":"    transport_url is not specified, it will attempt to use the one defined by"},{"line_number":222,"context_line":"    ``[DEFAULT]/transport_url`` in the configuration file. If the cell is not"},{"line_number":223,"context_line":"    found by uuid, this command will return an exit code of 1. If the provided"},{"line_number":224,"context_line":"    transport_url or/and database_connection is/are same as another cell,"},{"line_number":225,"context_line":"    this command will return an exit code of 2. If the properties cannot be set,"},{"line_number":226,"context_line":"    this will return 3. Otherwise, the exit code will be 0."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    .. note::"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_3b7c00b4","line":226,"range":{"start_line":223,"start_character":63,"end_line":226,"end_character":23},"updated":"2017-12-06 22:17:15.000000000","message":"This indicates that you\u0027ve changed the meaning of what rc\u003d2 means, which is not good - the new check should be a new return code, not change an existing one.","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"97ebe20976ecd3ecb67d429aba7bbea1806f7edb","unresolved":false,"context_lines":[{"line_number":220,"context_line":"    defined by ``[database]/connection`` in the configuration file.  If a"},{"line_number":221,"context_line":"    transport_url is not specified, it will attempt to use the one defined by"},{"line_number":222,"context_line":"    ``[DEFAULT]/transport_url`` in the configuration file. If the cell is not"},{"line_number":223,"context_line":"    found by uuid, this command will return an exit code of 1. If the provided"},{"line_number":224,"context_line":"    transport_url or/and database_connection is/are same as another cell,"},{"line_number":225,"context_line":"    this command will return an exit code of 2. If the properties cannot be set,"},{"line_number":226,"context_line":"    this will return 3. Otherwise, the exit code will be 0."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    .. note::"},{"line_number":229,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_3d1aaa6e","line":226,"range":{"start_line":223,"start_character":63,"end_line":226,"end_character":23},"in_reply_to":"df87a7cf_3b7c00b4","updated":"2017-12-07 14:19:16.000000000","message":"Done","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ac6316496bf763d22e3437129cf0cd8ca8fe86db","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    found by uuid, this command will return an exit code of 1. If the provided"},{"line_number":226,"context_line":"    transport_url or/and database_connection is/are same as another cell,"},{"line_number":227,"context_line":"    this command will return an exit code of 3. If the properties cannot be set,"},{"line_number":228,"context_line":"    this will return 2. Otherwise, the exit code will be 0."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    .. note::"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_a2fb8a44","line":228,"updated":"2017-12-12 12:11:45.000000000","message":"1, 3, 2, 0 is a strange ordering, but I can understand why that\u0027s been done (the urls being already in use is a problem prior to not being able to set them).","commit_id":"cf42afbd6349ce48258f18066f98749cb11e0710"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"8b7dfa640c60780d66cdbb5ec9c2969dfd374d81","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    found by uuid, this command will return an exit code of 1. If the provided"},{"line_number":226,"context_line":"    transport_url or/and database_connection is/are same as another cell,"},{"line_number":227,"context_line":"    this command will return an exit code of 3. If the properties cannot be set,"},{"line_number":228,"context_line":"    this will return 2. Otherwise, the exit code will be 0."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    .. note::"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_47c5958d","line":228,"in_reply_to":"df87a7cf_a2fb8a44","updated":"2017-12-15 14:38:10.000000000","message":"Yes :)","commit_id":"cf42afbd6349ce48258f18066f98749cb11e0710"}],"nova/cmd/manage.py":[{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"c7e6d18e99256428895471a14da73fb01ccb50f4","unresolved":false,"context_lines":[{"line_number":1829,"context_line":"            cell_mapping.save()"},{"line_number":1830,"context_line":"        except Exception as e:"},{"line_number":1831,"context_line":"            print(_(\u0027Unable to update CellMapping: %s\u0027) % e)"},{"line_number":1832,"context_line":"            return 3"},{"line_number":1833,"context_line":""},{"line_number":1834,"context_line":"        return 0"},{"line_number":1835,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_da1fa969","line":1832,"updated":"2017-11-30 10:02:31.000000000","message":"Not a good idea to change this return value, as you might break existing scripts.","commit_id":"65ab52c1a00b8f1273ba8bffed3b05407ee8b991"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"2784669dbbdc693ac57d53d7c3fc63b718313b6b","unresolved":false,"context_lines":[{"line_number":1829,"context_line":"            cell_mapping.save()"},{"line_number":1830,"context_line":"        except Exception as e:"},{"line_number":1831,"context_line":"            print(_(\u0027Unable to update CellMapping: %s\u0027) % e)"},{"line_number":1832,"context_line":"            return 3"},{"line_number":1833,"context_line":""},{"line_number":1834,"context_line":"        return 0"},{"line_number":1835,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_8531a4a5","line":1832,"in_reply_to":"ff82abbf_da1fa969","updated":"2017-11-30 10:07:44.000000000","message":"Actually I made the changes in the test cases accordingly. Isn\u0027t it better to have the return values in order ?","commit_id":"65ab52c1a00b8f1273ba8bffed3b05407ee8b991"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"372aec25334bd7003d20efd505be5ede23883c33","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"        if any(cell.database_connection \u003d\u003d db_connection"},{"line_number":1816,"context_line":"               or cell.transport_url \u003d\u003d transport_url"},{"line_number":1817,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1818,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1819,"context_line":"                    \u0027or/and database_connection value(s) already exists\u0027))"},{"line_number":1820,"context_line":"            return 2"},{"line_number":1821,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_3b55e01d","line":1818,"updated":"2017-12-06 22:17:15.000000000","message":"It would probably be helpful to include the cell.identity value in the error message since we know which cell is in conflict.","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"97ebe20976ecd3ecb67d429aba7bbea1806f7edb","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"        if any(cell.database_connection \u003d\u003d db_connection"},{"line_number":1816,"context_line":"               or cell.transport_url \u003d\u003d transport_url"},{"line_number":1817,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1818,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1819,"context_line":"                    \u0027or/and database_connection value(s) already exists\u0027))"},{"line_number":1820,"context_line":"            return 2"},{"line_number":1821,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_3d8f0a76","line":1818,"in_reply_to":"df87a7cf_3b55e01d","updated":"2017-12-07 14:19:16.000000000","message":"Done","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"372aec25334bd7003d20efd505be5ede23883c33","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1818,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1819,"context_line":"                    \u0027or/and database_connection value(s) already exists\u0027))"},{"line_number":1820,"context_line":"            return 2"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"        if transport_url:"},{"line_number":1823,"context_line":"            cell_mapping.transport_url \u003d transport_url"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_fb3458fd","line":1820,"range":{"start_line":1820,"start_character":12,"end_line":1820,"end_character":20},"updated":"2017-12-06 22:17:15.000000000","message":"As noted in the man page, this changes the semantic meaning of this return code, which is wrong - this should be 3. Leave a comment about why we would return 3 before 2 in the code if it\u0027s confusing.","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"97ebe20976ecd3ecb67d429aba7bbea1806f7edb","unresolved":false,"context_lines":[{"line_number":1817,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1818,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1819,"context_line":"                    \u0027or/and database_connection value(s) already exists\u0027))"},{"line_number":1820,"context_line":"            return 2"},{"line_number":1821,"context_line":""},{"line_number":1822,"context_line":"        if transport_url:"},{"line_number":1823,"context_line":"            cell_mapping.transport_url \u003d transport_url"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_fd77629f","line":1820,"range":{"start_line":1820,"start_character":12,"end_line":1820,"end_character":20},"in_reply_to":"df87a7cf_fb3458fd","updated":"2017-12-07 14:19:16.000000000","message":"Done","commit_id":"1159acfaeaa4003f391cbd85f05d27de2b550282"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ac6316496bf763d22e3437129cf0cd8ca8fe86db","unresolved":false,"context_lines":[{"line_number":1691,"context_line":"                    \u0027if [database]/connection is not set \u0027"},{"line_number":1692,"context_line":"                    \u0027in the configuration file.\u0027))"},{"line_number":1693,"context_line":"            return 1"},{"line_number":1694,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1695,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1696,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1697,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_0286f6b9","line":1694,"updated":"2017-12-12 12:11:45.000000000","message":"Since you are changing this handling in create_cell as with update_cell, perhaps it woudl make sense to extract a method that they both use? If it returns True, then return with the designated error code.","commit_id":"cf42afbd6349ce48258f18066f98749cb11e0710"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"8b7dfa640c60780d66cdbb5ec9c2969dfd374d81","unresolved":false,"context_lines":[{"line_number":1691,"context_line":"                    \u0027if [database]/connection is not set \u0027"},{"line_number":1692,"context_line":"                    \u0027in the configuration file.\u0027))"},{"line_number":1693,"context_line":"            return 1"},{"line_number":1694,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1695,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1696,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1697,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_c744444a","line":1694,"in_reply_to":"df87a7cf_0286f6b9","updated":"2017-12-15 14:38:10.000000000","message":"Makes sense! Done.","commit_id":"cf42afbd6349ce48258f18066f98749cb11e0710"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"90de23367db1c3bcb7be445f04466973907a28ad","unresolved":false,"context_lines":[{"line_number":1692,"context_line":"                    \u0027in the configuration file.\u0027))"},{"line_number":1693,"context_line":"            return 1"},{"line_number":1694,"context_line":"        if any(cell.database_connection \u003d\u003d database_connection"},{"line_number":1695,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1696,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1697,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1698,"context_line":"                    \u0027and database_connection combination already exists\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_5eafea93","side":"PARENT","line":1695,"range":{"start_line":1695,"start_character":15,"end_line":1695,"end_character":18},"updated":"2018-01-10 22:58:16.000000000","message":"The existing check is AND.","commit_id":"f942f45c1ad8d382ae50680c4efce9a0ab639bab"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"90de23367db1c3bcb7be445f04466973907a28ad","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _non_unique_transport_url_database_connection_checker(self, ctxt,"},{"line_number":1318,"context_line":"                                        transport_url, database_connection):"},{"line_number":1319,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1320,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1321,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1322,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"},{"line_number":1323,"context_line":"                        \u0027database_connection combination already exists \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_dec53a5d","line":1320,"range":{"start_line":1320,"start_character":64,"end_line":1320,"end_character":66},"updated":"2018-01-10 22:58:16.000000000","message":"Are we sure we want this to be OR? The old check was an AND with the reasoning probably being if a deployer didn\u0027t want to shard MQ and just have one global MQ, i.e. cells would have different DBs but the same MQ. But if a global MQ isn\u0027t really a use case we see anyone wanting, we can go ahead use OR here.","commit_id":"c34e37eef31add8224211b799a56d866c5013fbd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a1d0d7c83f9004e5ce63fcaf677b55f78fde08d8","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _non_unique_transport_url_database_connection_checker(self, ctxt,"},{"line_number":1318,"context_line":"                                        transport_url, database_connection):"},{"line_number":1319,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1320,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1321,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1322,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"},{"line_number":1323,"context_line":"                        \u0027database_connection combination already exists \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_571d24bb","line":1320,"range":{"start_line":1320,"start_character":64,"end_line":1320,"end_character":66},"in_reply_to":"7f96bb07_14b328ec","updated":"2018-01-15 19:25:27.000000000","message":"Thanks for commenting.\n\nI also mentioned global MQ to dansmith on IRC and he reminded me that a global MQ wouldn\u0027t work anyway because in such a setup, when compute goes to ask conductor to do something, it might get a conductor from its cell or it might not (if MQ isn\u0027t scoped to the local cell). So global MQ can\u0027t be a thing.","commit_id":"c34e37eef31add8224211b799a56d866c5013fbd"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"230b5e9b242916be2e581f88d1fa97c10a754100","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _non_unique_transport_url_database_connection_checker(self, ctxt,"},{"line_number":1318,"context_line":"                                        transport_url, database_connection):"},{"line_number":1319,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1320,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1321,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1322,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"},{"line_number":1323,"context_line":"                        \u0027database_connection combination already exists \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_14b328ec","line":1320,"range":{"start_line":1320,"start_character":64,"end_line":1320,"end_character":66},"in_reply_to":"7f96bb07_dec53a5d","updated":"2018-01-15 10:51:30.000000000","message":"In my opinion one of the main objectives of cells is to have a segregated DB and MQ. I don\u0027t see multiple cells with only one MQ as a valid use case.","commit_id":"c34e37eef31add8224211b799a56d866c5013fbd"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"03530f9ed201cfc20a05059bdda86198bc49ac0a","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"    def _non_unique_transport_url_database_connection_checker(self, ctxt,"},{"line_number":1318,"context_line":"                                        transport_url, database_connection):"},{"line_number":1319,"context_line":"        for cell in objects.CellMappingList.get_all(ctxt):"},{"line_number":1320,"context_line":"            if (cell.database_connection \u003d\u003d database_connection or"},{"line_number":1321,"context_line":"                cell.transport_url \u003d\u003d transport_url):"},{"line_number":1322,"context_line":"                print(_(\u0027The specified transport_url and/or \u0027"},{"line_number":1323,"context_line":"                        \u0027database_connection combination already exists \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f96bb07_ae1d43be","line":1320,"range":{"start_line":1320,"start_character":64,"end_line":1320,"end_character":66},"in_reply_to":"7f96bb07_dec53a5d","updated":"2018-01-15 09:57:29.000000000","message":"Yes the existing check was AND for the create_cell and update_cell, and I changed it into OR since I thought there weren\u0027t any cases where the db/transport urls would be the same for any cell. I hadn\u0027t thought of a use case where one would want use a global MQ. In that case I would have to keep an AND check and a case where two cells don\u0027t have same DB urls.\n\nShould I take the global MQ user case into consideration?","commit_id":"c34e37eef31add8224211b799a56d866c5013fbd"}],"nova/db/sqlalchemy/api_models.py":[{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"c7e6d18e99256428895471a14da73fb01ccb50f4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                          name\u003d\u0027uniq_cell_mappings0uuid\u0027),"},{"line_number":114,"context_line":"                      schema.UniqueConstraint(\u0027transport_url\u0027,"},{"line_number":115,"context_line":"                          name\u003d\u0027uniq_cell_mappings0transport_url\u0027))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":118,"context_line":"    uuid \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":119,"context_line":"    name \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_40070dcb","line":116,"updated":"2017-11-30 10:02:31.000000000","message":"Could you also add the constraint on database_connection?","commit_id":"65ab52c1a00b8f1273ba8bffed3b05407ee8b991"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"2784669dbbdc693ac57d53d7c3fc63b718313b6b","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                          name\u003d\u0027uniq_cell_mappings0uuid\u0027),"},{"line_number":114,"context_line":"                      schema.UniqueConstraint(\u0027transport_url\u0027,"},{"line_number":115,"context_line":"                          name\u003d\u0027uniq_cell_mappings0transport_url\u0027))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":118,"context_line":"    uuid \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":119,"context_line":"    name \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_a5194823","line":116,"in_reply_to":"ff82abbf_40070dcb","updated":"2017-11-30 10:07:44.000000000","message":"Yes I can add the constraint for database_connection as well. I am currently working around SQL to find a way to add a unique constraint for \"Text()\" fields.","commit_id":"65ab52c1a00b8f1273ba8bffed3b05407ee8b991"}]}
