)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"03a472c91d21c868cec024c8dc3fe7d844e7d4ce","unresolved":false,"context_lines":[{"line_number":19,"context_line":"The command optionally accepts a database connection url and"},{"line_number":20,"context_line":"message queue transport url, else it will take the values from"},{"line_number":21,"context_line":"the nova.conf. It returns the uuid of the newly created cell."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I2fd7d854ffa579e550f6002cfb7223d7f40acac6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a3c09a3_d1b0498e","line":22,"updated":"2017-01-14 02:25:25.000000000","message":"We should probably target this to bug 1656276, at least via the Related-Bug tag. I mention that because of the discussion in the below patch about simple_cell_setup and how it\u0027s inadequate for how TripleO needs it work to fix that bug, but instead they should be using create_cell added here.\n\nhttps://review.openstack.org/#/c/420079/1/nova/cmd/manage.py","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":19,"context_line":"The command optionally accepts a database connection url and"},{"line_number":20,"context_line":"message queue transport url, else it will take the values from"},{"line_number":21,"context_line":"the nova.conf. It returns the uuid of the newly created cell."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I2fd7d854ffa579e550f6002cfb7223d7f40acac6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7a3c09a3_254047a5","line":22,"in_reply_to":"7a3c09a3_d1b0498e","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"}],"nova/cmd/manage.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"97762870bd39f41b97acbacac3d0289cf363836b","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1477,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1478,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1479,"context_line":"    def create_cell(self, name\u003dNone, transport_url\u003dNone,"},{"line_number":1480,"context_line":"                    database_connection\u003dNone):"},{"line_number":1481,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1482,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_f47a1dbc","line":1479,"updated":"2016-08-30 09:28:47.000000000","message":"Why should we need a cell create command that would create an empty cell (with no hostmappings pointing to it) while we already have map_cell_and_hosts() ?","commit_id":"57ac752175b7685d100cdfc1cc3eed7994dc5bc4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"4c5c3a85c8fb09d7de0758c88b3626ca58f03841","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1477,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1478,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1479,"context_line":"    def create_cell(self, name\u003dNone, transport_url\u003dNone,"},{"line_number":1480,"context_line":"                    database_connection\u003dNone):"},{"line_number":1481,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1482,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_40fcdf3d","line":1479,"in_reply_to":"fa7ab95a_f47a1dbc","updated":"2016-08-30 10:23:17.000000000","message":"The case I thought about is when you want to create new cell\nwith own hosts.\n\nThere are two reasons:\n1. map_cell_and_hosts can not map to new cell only to existing. It creates cell only once when there are no host mappings. It\u0027s because of cell_mapping_uuid \u003d host_mapping.cell_mapping.uuid.\n\n2. Explicit cell creation allows a user to customize cell configuration more clearly.","commit_id":"57ac752175b7685d100cdfc1cc3eed7994dc5bc4"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"228722547de0276afb52ea2aed0b9a888c54e3f1","unresolved":false,"context_lines":[{"line_number":1537,"context_line":"        \"Add a new cell to nova API database. \""},{"line_number":1538,"context_line":"        \"DB and MQ urls can be provided directly \""},{"line_number":1539,"context_line":"        \"or can by taken from config. The result is cell uuid.\")"},{"line_number":1540,"context_line":"    @args(\u0027--database-connecton\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1541,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1542,"context_line":"          help\u003d\u0027The database url for the cell database\u0027)"},{"line_number":1543,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_94e23ad4","line":1540,"range":{"start_line":1540,"start_character":11,"end_line":1540,"end_character":31},"updated":"2017-01-13 19:37:08.000000000","message":"typo --database-connection","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"840683eacb5c1b9052062ac5dbdfcfc1724f42f0","unresolved":false,"context_lines":[{"line_number":1533,"context_line":"                        cell_mapping\u003dcell_mapping)"},{"line_number":1534,"context_line":"                    host_mapping.create()"},{"line_number":1535,"context_line":""},{"line_number":1536,"context_line":"    @action_description("},{"line_number":1537,"context_line":"        \"Add a new cell to nova API database. \""},{"line_number":1538,"context_line":"        \"DB and MQ urls can be provided directly \""},{"line_number":1539,"context_line":"        \"or can by taken from config. The result is cell uuid.\")"},{"line_number":1540,"context_line":"    @args(\u0027--database-connecton\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1541,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1542,"context_line":"          help\u003d\u0027The database url for the cell database\u0027)"},{"line_number":1543,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1544,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1545,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1546,"context_line":"    def create_cell(self, name\u003dNone, transport_url\u003dNone,"},{"line_number":1547,"context_line":"                    database_connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_a079b495","line":1544,"range":{"start_line":1536,"start_character":0,"end_line":1544,"end_character":62},"updated":"2017-01-13 17:48:47.000000000","message":"So i\u0027d like to point out that it\u0027s really not a good idea to pass credentials on the command line like this.  Is there a reason you can\u0027t just read from nova.conf or something?","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"228722547de0276afb52ea2aed0b9a888c54e3f1","unresolved":false,"context_lines":[{"line_number":1533,"context_line":"                        cell_mapping\u003dcell_mapping)"},{"line_number":1534,"context_line":"                    host_mapping.create()"},{"line_number":1535,"context_line":""},{"line_number":1536,"context_line":"    @action_description("},{"line_number":1537,"context_line":"        \"Add a new cell to nova API database. \""},{"line_number":1538,"context_line":"        \"DB and MQ urls can be provided directly \""},{"line_number":1539,"context_line":"        \"or can by taken from config. The result is cell uuid.\")"},{"line_number":1540,"context_line":"    @args(\u0027--database-connecton\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1541,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1542,"context_line":"          help\u003d\u0027The database url for the cell database\u0027)"},{"line_number":1543,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1544,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1545,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1546,"context_line":"    def create_cell(self, name\u003dNone, transport_url\u003dNone,"},{"line_number":1547,"context_line":"                    database_connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_b483b6cb","line":1544,"range":{"start_line":1536,"start_character":0,"end_line":1544,"end_character":62},"in_reply_to":"7a3c09a3_a079b495","updated":"2017-01-13 19:37:08.000000000","message":"It falls back on reading from the nova.conf. The use case for needing --transport-url would be if you haven\u0027t already converted your nova.conf to express the message queue connection in the [DEFAULT]/transport_url setting. That is, if you\u0027re using the legacy rpc backend options still.","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"228722547de0276afb52ea2aed0b9a888c54e3f1","unresolved":false,"context_lines":[{"line_number":1545,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1546,"context_line":"    def create_cell(self, name\u003dNone, transport_url\u003dNone,"},{"line_number":1547,"context_line":"                    database_connection\u003dNone):"},{"line_number":1548,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1549,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"},{"line_number":1550,"context_line":"        if not transport_url:"},{"line_number":1551,"context_line":"            print(\u0027Must specify --transport-url if [DEFAULT]/transport_url \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_14f64a8f","line":1548,"range":{"start_line":1548,"start_character":15,"end_line":1548,"end_character":39},"updated":"2017-01-13 19:37:08.000000000","message":"Should use context.get_context() here","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d3b72cb8c4fc98cd9ee4414d3da033734931b93e","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"            database_connection\u003ddatabase_connection)"},{"line_number":1566,"context_line":"        cell_mapping.create()"},{"line_number":1567,"context_line":"        print(cell_mapping_uuid)"},{"line_number":1568,"context_line":"        return 1"},{"line_number":1569,"context_line":""},{"line_number":1570,"context_line":""},{"line_number":1571,"context_line":"CATEGORIES \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_a01d3475","line":1568,"updated":"2017-01-13 18:16:49.000000000","message":"why are we returning 1 if things happen correctly?","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"228722547de0276afb52ea2aed0b9a888c54e3f1","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"            database_connection\u003ddatabase_connection)"},{"line_number":1566,"context_line":"        cell_mapping.create()"},{"line_number":1567,"context_line":"        print(cell_mapping_uuid)"},{"line_number":1568,"context_line":"        return 1"},{"line_number":1569,"context_line":""},{"line_number":1570,"context_line":""},{"line_number":1571,"context_line":"CATEGORIES \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_d48842ea","line":1568,"in_reply_to":"7a3c09a3_a01d3475","updated":"2017-01-13 19:37:08.000000000","message":"Yeah, this should return 0.","commit_id":"3636932f0a42cb1eb393c62ab11f6a3fd484ede3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fb5fa7e2770f2739ba4e6b83d5785431d31fe170","unresolved":false,"context_lines":[{"line_number":1404,"context_line":"        \"or can by taken from config. The result is cell uuid.\"))"},{"line_number":1405,"context_line":"    @args(\u0027--database-connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1406,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1407,"context_line":"          help\u003d_(\u0027(optional) The database url for the cell database\u0027))"},{"line_number":1408,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1409,"context_line":"          help\u003d_(\u0027(optional) The transport url for the cell message queue\u0027))"},{"line_number":1410,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d_(\u0027The name of the cell\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_00a19d94","line":1407,"range":{"start_line":1407,"start_character":18,"end_line":1407,"end_character":28},"updated":"2017-01-13 23:11:57.000000000","message":"I don\u0027t think we need this extra notation as optional. Everything above has optional args. If the argparser doesn\u0027t show these as optional because they have defaults and we care, I\u0027d think we should do that there.","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a841f167a583f44190c67a20135f69121857c79f","unresolved":false,"context_lines":[{"line_number":1404,"context_line":"        \"or can by taken from config. The result is cell uuid.\"))"},{"line_number":1405,"context_line":"    @args(\u0027--database-connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1406,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1407,"context_line":"          help\u003d_(\u0027(optional) The database url for the cell database\u0027))"},{"line_number":1408,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1409,"context_line":"          help\u003d_(\u0027(optional) The transport url for the cell message queue\u0027))"},{"line_number":1410,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d_(\u0027The name of the cell\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_807e6de2","line":1407,"range":{"start_line":1407,"start_character":18,"end_line":1407,"end_character":28},"in_reply_to":"7a3c09a3_00a19d94","updated":"2017-01-13 23:16:57.000000000","message":"Done","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fb5fa7e2770f2739ba4e6b83d5785431d31fe170","unresolved":false,"context_lines":[{"line_number":1419,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1420,"context_line":"        if not database_connection:"},{"line_number":1421,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1422,"context_line":"                  \u0027if [DATABASE]/connection is not set \u0027"},{"line_number":1423,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1424,"context_line":"            return 1"},{"line_number":1425,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_a0b0c9de","line":1422,"range":{"start_line":1422,"start_character":23,"end_line":1422,"end_character":31},"updated":"2017-01-13 23:11:57.000000000","message":"This should be \u0027database\u0027 I think.","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a841f167a583f44190c67a20135f69121857c79f","unresolved":false,"context_lines":[{"line_number":1419,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1420,"context_line":"        if not database_connection:"},{"line_number":1421,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1422,"context_line":"                  \u0027if [DATABASE]/connection is not set \u0027"},{"line_number":1423,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1424,"context_line":"            return 1"},{"line_number":1425,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_a08369cb","line":1422,"range":{"start_line":1422,"start_character":23,"end_line":1422,"end_character":31},"in_reply_to":"7a3c09a3_a0b0c9de","updated":"2017-01-13 23:16:57.000000000","message":"Done","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"fb5fa7e2770f2739ba4e6b83d5785431d31fe170","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"            transport_url\u003dtransport_url,"},{"line_number":1430,"context_line":"            database_connection\u003ddatabase_connection)"},{"line_number":1431,"context_line":"        cell_mapping.create()"},{"line_number":1432,"context_line":"        print(cell_mapping_uuid)"},{"line_number":1433,"context_line":"        return 0"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_602b41ec","line":1432,"updated":"2017-01-13 23:11:57.000000000","message":"This is good for scripting but kinda sucks for docs, examples and interactive usage. We don\u0027t really have a need to capture this for anything we need to automate, do we?","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a841f167a583f44190c67a20135f69121857c79f","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"            transport_url\u003dtransport_url,"},{"line_number":1430,"context_line":"            database_connection\u003ddatabase_connection)"},{"line_number":1431,"context_line":"        cell_mapping.create()"},{"line_number":1432,"context_line":"        print(cell_mapping_uuid)"},{"line_number":1433,"context_line":"        return 0"},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_006b5d1f","line":1432,"in_reply_to":"7a3c09a3_602b41ec","updated":"2017-01-13 23:16:57.000000000","message":"Looks like in map_cell_and_hosts we have this behind a --verbose flag, so I think we can do that here too.","commit_id":"f04d6aecad90659fe184c4834d26bcc87439620e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4bba0952c00743c5c0740d65d3014837fde64271","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        self.map_instances(cell_uuid)"},{"line_number":1117,"context_line":"        return 0"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"    @args(\u0027--database_connection\u0027,"},{"line_number":1120,"context_line":"          metavar\u003d\u0027\u003cdatabase_connection\u003e\u0027,"},{"line_number":1121,"context_line":"          help\u003d\u0027The database connection url for cell0. \u0027"},{"line_number":1122,"context_line":"               \u0027This is optional. If not provided, a standard database \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f1a0e592","line":1119,"range":{"start_line":1119,"start_character":11,"end_line":1119,"end_character":32},"updated":"2017-01-14 02:00:38.000000000","message":"This uses the underscore, we should be consistent between map_cell0 and create_cell commands, so let\u0027s change one or the other.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1116,"context_line":"        self.map_instances(cell_uuid)"},{"line_number":1117,"context_line":"        return 0"},{"line_number":1118,"context_line":""},{"line_number":1119,"context_line":"    @args(\u0027--database_connection\u0027,"},{"line_number":1120,"context_line":"          metavar\u003d\u0027\u003cdatabase_connection\u003e\u0027,"},{"line_number":1121,"context_line":"          help\u003d\u0027The database connection url for cell0. \u0027"},{"line_number":1122,"context_line":"               \u0027This is optional. If not provided, a standard database \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_45c6334a","line":1119,"range":{"start_line":1119,"start_character":11,"end_line":1119,"end_character":32},"in_reply_to":"7a3c09a3_f1a0e592","updated":"2017-01-16 08:56:14.000000000","message":"Good point, changed to --database_connection and --transport_url in create_cell.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"    @action_description("},{"line_number":1402,"context_line":"        _(\"Add a new cell to nova API database. \""},{"line_number":1403,"context_line":"        \"DB and MQ urls can be provided directly \""},{"line_number":1404,"context_line":"        \"or can by taken from config. The result is cell uuid.\"))"},{"line_number":1405,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d_(\u0027The name of the cell\u0027))"},{"line_number":1406,"context_line":"    @args(\u0027--database-connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f6d8dbf1","line":1404,"range":{"start_line":1403,"start_character":8,"end_line":1404,"end_character":65},"updated":"2017-01-14 01:10:26.000000000","message":"nit: please align this with the string above.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"    @action_description("},{"line_number":1402,"context_line":"        _(\"Add a new cell to nova API database. \""},{"line_number":1403,"context_line":"        \"DB and MQ urls can be provided directly \""},{"line_number":1404,"context_line":"        \"or can by taken from config. The result is cell uuid.\"))"},{"line_number":1405,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d_(\u0027The name of the cell\u0027))"},{"line_number":1406,"context_line":"    @args(\u0027--database-connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_e5a55f04","line":1404,"range":{"start_line":1403,"start_character":8,"end_line":1404,"end_character":65},"in_reply_to":"7a3c09a3_f6d8dbf1","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"},{"line_number":1417,"context_line":"        if not transport_url:"},{"line_number":1418,"context_line":"            print(_(\u0027Must specify --transport-url if [DEFAULT]/transport_url \u0027"},{"line_number":1419,"context_line":"                  \u0027is not set in the configuration file.\u0027))"},{"line_number":1420,"context_line":"            return 1"},{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_d6dbdfeb","line":1419,"updated":"2017-01-14 01:10:26.000000000","message":"nit: Please align this with the string above.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"},{"line_number":1417,"context_line":"        if not transport_url:"},{"line_number":1418,"context_line":"            print(_(\u0027Must specify --transport-url if [DEFAULT]/transport_url \u0027"},{"line_number":1419,"context_line":"                  \u0027is not set in the configuration file.\u0027))"},{"line_number":1420,"context_line":"            return 1"},{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_65ba4f25","line":1419,"in_reply_to":"7a3c09a3_d6dbdfeb","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1417,"context_line":"        if not transport_url:"},{"line_number":1418,"context_line":"            print(_(\u0027Must specify --transport-url if [DEFAULT]/transport_url \u0027"},{"line_number":1419,"context_line":"                  \u0027is not set in the configuration file.\u0027))"},{"line_number":1420,"context_line":"            return 1"},{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"},{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_36e343a5","line":1420,"updated":"2017-01-14 01:10:26.000000000","message":"We don\u0027t have a test for this case.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1417,"context_line":"        if not transport_url:"},{"line_number":1418,"context_line":"            print(_(\u0027Must specify --transport-url if [DEFAULT]/transport_url \u0027"},{"line_number":1419,"context_line":"                  \u0027is not set in the configuration file.\u0027))"},{"line_number":1420,"context_line":"            return 1"},{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"},{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_4592b3a0","line":1420,"in_reply_to":"7a3c09a3_36e343a5","updated":"2017-01-16 08:56:14.000000000","message":"I\u0027ve added a couple of tests for things like this.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"},{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_76cceb35","line":1425,"range":{"start_line":1424,"start_character":18,"end_line":1425,"end_character":48},"updated":"2017-01-14 01:10:26.000000000","message":"nit: please align this with \u0027Must\u0027 above.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"},{"line_number":1422,"context_line":"        if not database_connection:"},{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_858c9b80","line":1425,"range":{"start_line":1424,"start_character":18,"end_line":1425,"end_character":48},"in_reply_to":"7a3c09a3_76cceb35","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1429,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_56ee0f8c","line":1426,"updated":"2017-01-14 01:10:26.000000000","message":"We don\u0027t have a test for this.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1423,"context_line":"            print(_(\u0027Must specify --database-connection \u0027"},{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1429,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_c5ece32b","line":1426,"in_reply_to":"7a3c09a3_56ee0f8c","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1429,"context_line":"            ctxt,"},{"line_number":1430,"context_line":"            uuid\u003dcell_mapping_uuid, name\u003dname,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f651bb63","line":1427,"updated":"2017-01-14 01:10:26.000000000","message":"I\u0027m not crazy about this part when we don\u0027t have a list or delete operation for cell mappings yet.\n\nThe only unique constraint we have on this table is the uuid, so even if you run this command 30 times with the same name, it\u0027s going to create a new record every time because name isn\u0027t a unique field.\n\nI think I\u0027d like to see us first check to see if a cell mapping exists with the given name (or combination of name/transport_url/database_connection) and if we already have a match, we just exit without doing anything (not a failure).","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                  \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                  \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1428,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1429,"context_line":"            ctxt,"},{"line_number":1430,"context_line":"            uuid\u003dcell_mapping_uuid, name\u003dname,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_859bbb71","line":1427,"in_reply_to":"7a3c09a3_f651bb63","updated":"2017-01-16 08:56:14.000000000","message":"Yes, I\u0027d happy to have DB unique constraints for transport_url/database_connection combination.\n\nI supposed that name could be nonunique like for instances,\nso I\u0027ve added a naive check for uniqueness for transport_url/database_connection combination.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99c5189f63691b68089ed35acdff9b1277d4b5a7","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    @args(\u0027--database_connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1408,"context_line":"          help\u003d_(\u0027The database url for the cell database\u0027))"},{"line_number":1409,"context_line":"    @args(\u0027--transport_url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1410,"context_line":"          help\u003d_(\u0027The transport url for the cell message queue\u0027))"},{"line_number":1411,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1412,"context_line":"          help\u003d_(\u0027Output the uuid of the created cell\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_c1d20200","line":1409,"range":{"start_line":1409,"start_character":13,"end_line":1409,"end_character":26},"updated":"2017-01-16 15:34:35.000000000","message":"Sorry if I made this confusing, but can we make this --transport-url with a dash rather than an underscore? That\u0027s how it\u0027s defined in simple_cell_setup and map_cell_and_hosts.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3cc6e0296966a26207b2bc6b7e961cf71fe587dc","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    @args(\u0027--database_connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1408,"context_line":"          help\u003d_(\u0027The database url for the cell database\u0027))"},{"line_number":1409,"context_line":"    @args(\u0027--transport_url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1410,"context_line":"          help\u003d_(\u0027The transport url for the cell message queue\u0027))"},{"line_number":1411,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1412,"context_line":"          help\u003d_(\u0027Output the uuid of the created cell\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_cd507361","line":1409,"range":{"start_line":1409,"start_character":13,"end_line":1409,"end_character":26},"in_reply_to":"7a3c09a3_9245aa18","updated":"2017-01-16 16:28:03.000000000","message":"Yeah but map_cell0 doesn\u0027t have --transport-url and that\u0027s what I\u0027m asking to be consistent with.\n\nAt some point we should change --database_connection to --database-connection but would have to do that in some kind of backward compatible way for those that have scripts using the underscore form, and I\u0027m not sure if it\u0027s possible to deprecate/inline replace arg names like that in here.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    @args(\u0027--database_connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1408,"context_line":"          help\u003d_(\u0027The database url for the cell database\u0027))"},{"line_number":1409,"context_line":"    @args(\u0027--transport_url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1410,"context_line":"          help\u003d_(\u0027The transport url for the cell message queue\u0027))"},{"line_number":1411,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1412,"context_line":"          help\u003d_(\u0027Output the uuid of the created cell\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_2d4e576f","line":1409,"range":{"start_line":1409,"start_character":13,"end_line":1409,"end_character":26},"in_reply_to":"7a3c09a3_9245aa18","updated":"2017-01-16 16:17:35.000000000","message":"Yes, I thought about our users. How it painful can be\nto have params with dashes and underscores in one command. Returned to -.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    @args(\u0027--database_connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1408,"context_line":"          help\u003d_(\u0027The database url for the cell database\u0027))"},{"line_number":1409,"context_line":"    @args(\u0027--transport_url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1410,"context_line":"          help\u003d_(\u0027The transport url for the cell message queue\u0027))"},{"line_number":1411,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1412,"context_line":"          help\u003d_(\u0027Output the uuid of the created cell\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_b278e6c5","line":1409,"range":{"start_line":1409,"start_character":13,"end_line":1409,"end_character":26},"in_reply_to":"7a3c09a3_c1d20200","updated":"2017-01-16 16:17:35.000000000","message":"Done","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c7851bc94bfd7a729c5d30d14721f3905606658","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    @args(\u0027--database_connection\u0027, metavar\u003d\u0027\u003cdatabase url\u003e\u0027,"},{"line_number":1407,"context_line":"          dest\u003d\u0027database_connection\u0027,"},{"line_number":1408,"context_line":"          help\u003d_(\u0027The database url for the cell database\u0027))"},{"line_number":1409,"context_line":"    @args(\u0027--transport_url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, dest\u003d\u0027transport_url\u0027,"},{"line_number":1410,"context_line":"          help\u003d_(\u0027The transport url for the cell message queue\u0027))"},{"line_number":1411,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1412,"context_line":"          help\u003d_(\u0027Output the uuid of the created cell\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_9245aa18","line":1409,"range":{"start_line":1409,"start_character":13,"end_line":1409,"end_character":26},"in_reply_to":"7a3c09a3_c1d20200","updated":"2017-01-16 16:10:18.000000000","message":"I think this was changed in order to be consistent with map_cell0, which uses underscores between words instead of dashes. We don\u0027t have consistency between all the commands on this.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99c5189f63691b68089ed35acdff9b1277d4b5a7","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"        ctxt \u003d context.get_context()"},{"line_number":1416,"context_line":"        transport_url \u003d transport_url or CONF.transport_url"},{"line_number":1417,"context_line":"        if not transport_url:"},{"line_number":1418,"context_line":"            print(_(\u0027Must specify --transport_url if [DEFAULT]/transport_url \u0027"},{"line_number":1419,"context_line":"                    \u0027is not set in the configuration file.\u0027))"},{"line_number":1420,"context_line":"            return 1"},{"line_number":1421,"context_line":"        database_connection \u003d database_connection or CONF.database.connection"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_21ef46b1","line":1418,"range":{"start_line":1418,"start_character":36,"end_line":1418,"end_character":49},"updated":"2017-01-16 15:34:35.000000000","message":"--transport-url","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99c5189f63691b68089ed35acdff9b1277d4b5a7","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                    \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                    \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        if any(cell.database_connection \u003d\u003d database_connection"},{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_c12682cd","line":1429,"range":{"start_line":1427,"start_character":11,"end_line":1429,"end_character":66},"updated":"2017-01-16 15:34:35.000000000","message":"Cool. :)\n\nI kind of wish we had made \u0027name\u0027 required in the data model, I\u0027m not sure why we didn\u0027t, but I don\u0027t want to enforce that here I guess if it\u0027s not in the data model.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1424,"context_line":"                    \u0027if [database]/connection is not set \u0027"},{"line_number":1425,"context_line":"                    \u0027in the configuration file.\u0027))"},{"line_number":1426,"context_line":"            return 1"},{"line_number":1427,"context_line":"        if any(cell.database_connection \u003d\u003d database_connection"},{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_b25f0640","line":1429,"range":{"start_line":1427,"start_character":11,"end_line":1429,"end_character":66},"in_reply_to":"7a3c09a3_c12682cd","updated":"2017-01-16 16:17:35.000000000","message":"Done","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c7851bc94bfd7a729c5d30d14721f3905606658","unresolved":false,"context_lines":[{"line_number":1427,"context_line":"        if any(cell.database_connection \u003d\u003d database_connection"},{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_72e83eb5","line":1430,"range":{"start_line":1430,"start_character":31,"end_line":1430,"end_character":35},"updated":"2017-01-16 16:10:18.000000000","message":"I\u0027d prefer something like s/such/the specified/ here","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1427,"context_line":"        if any(cell.database_connection \u003d\u003d database_connection"},{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_d25ad24f","line":1430,"range":{"start_line":1430,"start_character":31,"end_line":1430,"end_character":35},"in_reply_to":"7a3c09a3_72e83eb5","updated":"2017-01-16 16:17:35.000000000","message":"Done","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99c5189f63691b68089ed35acdff9b1277d4b5a7","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_4161b238","line":1431,"range":{"start_line":1431,"start_character":33,"end_line":1431,"end_character":49},"updated":"2017-01-16 15:34:35.000000000","message":"nit: \"already exists.\"","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_32323611","line":1431,"range":{"start_line":1431,"start_character":33,"end_line":1431,"end_character":49},"in_reply_to":"7a3c09a3_4161b238","updated":"2017-01-16 16:17:35.000000000","message":"Done","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"99c5189f63691b68089ed35acdff9b1277d4b5a7","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_2c9c9dbf","line":1432,"range":{"start_line":1432,"start_character":19,"end_line":1432,"end_character":20},"updated":"2017-01-16 15:34:35.000000000","message":"nit: I tend to like to return unique error codes for unique errors, i.e. this is a tad different than the argument validation above so I\u0027d use a different return code for it (probably 2). That\u0027s just me though.","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"d78156536ccfbc9c471f64dab8a6e43fa0d05912","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with such transport_url and database_connection \u0027"},{"line_number":1431,"context_line":"                    \u0027combination is already exist\u0027))"},{"line_number":1432,"context_line":"            return 1"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a3c09a3_723cbee2","line":1432,"range":{"start_line":1432,"start_character":19,"end_line":1432,"end_character":20},"in_reply_to":"7a3c09a3_2c9c9dbf","updated":"2017-01-16 16:17:35.000000000","message":"Done","commit_id":"ae8f0654dd49ad1798d10d9b9f83845e3095f157"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f67da28fead001c49a3f0df87f017ee01c7d36f6","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"               and cell.transport_url \u003d\u003d transport_url"},{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1431,"context_line":"                    \u0027and database_connection combination already exists\u0027))"},{"line_number":1432,"context_line":"            return 2"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":13,"id":"7a3c09a3_2d9657f0","line":1431,"range":{"start_line":1431,"start_character":65,"end_line":1431,"end_character":71},"updated":"2017-01-16 16:29:10.000000000","message":"nit: if you respin please end this message with a period.","commit_id":"2c8c918be1461638c5ffd9c73809f077b0b0851d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"738f3062b07b3e1259fe1aef254a0df4bbaebb55","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1431,"context_line":"                    \u0027and database_connection combination already exists\u0027))"},{"line_number":1432,"context_line":"            return 2"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_933be9d0","line":1432,"updated":"2017-01-16 17:35:23.000000000","message":"One of the feedback we got is that create_cell should be idempotent, and I think this makes it not. That is, if someone calls create_cell twice with the same args, it should return 0 and do nothing, right?","commit_id":"f7e9f312a064d9809e2093de5b54c18a45a75322"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97a269e79031c18aa7a26062431bc795628e6ece","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1431,"context_line":"                    \u0027and database_connection combination already exists\u0027))"},{"line_number":1432,"context_line":"            return 2"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_c1ae74e5","line":1432,"in_reply_to":"7a3c09a3_2101f805","updated":"2017-01-16 19:11:03.000000000","message":"--name isn\u0027t required here either, as noted in earlier reviews of this. And with this check, we couldn\u0027t create two cells with different names but the same db/transport url. I\u0027m not sure if that\u0027s an issue or not, but I think we could probably handle that later separately if anyone cared.","commit_id":"f7e9f312a064d9809e2093de5b54c18a45a75322"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3907defc6ef985400ae72f63295f83b78b5c0e14","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1431,"context_line":"                    \u0027and database_connection combination already exists\u0027))"},{"line_number":1432,"context_line":"            return 2"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_2101f805","line":1432,"in_reply_to":"7a3c09a3_5327c163","updated":"2017-01-16 19:07:50.000000000","message":"It can be idempotent if the transport_url and database_connection combo matches an existing cell, as being checked here.","commit_id":"f7e9f312a064d9809e2093de5b54c18a45a75322"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dba033227282d133a38893455df14973bc459d25","unresolved":false,"context_lines":[{"line_number":1429,"context_line":"               for cell in objects.CellMappingList.get_all(ctxt)):"},{"line_number":1430,"context_line":"            print(_(\u0027Cell with the specified transport_url \u0027"},{"line_number":1431,"context_line":"                    \u0027and database_connection combination already exists\u0027))"},{"line_number":1432,"context_line":"            return 2"},{"line_number":1433,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1434,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1435,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_5327c163","line":1432,"in_reply_to":"7a3c09a3_933be9d0","updated":"2017-01-16 17:39:20.000000000","message":"It can\u0027t be idempotent, because it creates a cell and generates a uuid. Name is not unique in the database.\n\nPeople running this blindly will have to look at list-cells to decide if they should run this.","commit_id":"f7e9f312a064d9809e2093de5b54c18a45a75322"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"109d91f4f1f2d14f96838710d5dbb7858e238ff6","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                         cell1.database_connection)"},{"line_number":1390,"context_line":"        self.assertEqual(settings[\u0027transport_url\u0027], cell1.transport_url)"},{"line_number":1391,"context_line":""},{"line_number":1392,"context_line":"        # Create a cell by passing db and mq urls"},{"line_number":1393,"context_line":"        self.output.truncate(0)"},{"line_number":1394,"context_line":"        self.output.seek(0)"},{"line_number":1395,"context_line":"        kwargs \u003d dict("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_f6fffb31","line":1392,"updated":"2017-01-14 01:10:26.000000000","message":"This should probably be a separate unit test and then you wouldn\u0027t have to reset the output variable.","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"44c94b47466b7214aaf5454c853ff9f2a8301f69","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                         cell1.database_connection)"},{"line_number":1390,"context_line":"        self.assertEqual(settings[\u0027transport_url\u0027], cell1.transport_url)"},{"line_number":1391,"context_line":""},{"line_number":1392,"context_line":"        # Create a cell by passing db and mq urls"},{"line_number":1393,"context_line":"        self.output.truncate(0)"},{"line_number":1394,"context_line":"        self.output.seek(0)"},{"line_number":1395,"context_line":"        kwargs \u003d dict("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a3c09a3_257da71c","line":1392,"in_reply_to":"7a3c09a3_f6fffb31","updated":"2017-01-16 08:56:14.000000000","message":"Done","commit_id":"95f3e7cc24da19d30ee9697d307a9926b10483f4"}]}
