)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a855db09b5610f1a92e1c088d2a14d4aff3f0cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This enables an admin to create a cell mapping and corresponding"},{"line_number":10,"context_line":"host mappings in the API database. For example:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  nova-manage --config-file nova-cell.conf cell_v2 map_cell_and_hosts"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"With the following options:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7af24918_b7cc3a6b","line":12,"range":{"start_line":12,"start_character":28,"end_line":12,"end_character":42},"updated":"2016-03-02 22:35:45.000000000","message":"In IRC alaski is saying no cells v1 users should be running this command, but nova-cells.conf is a cells v1 thing, so we have some confusing information here, which made me apparently misunderstand the release note.  If cells v1 users shouldn\u0027t be running this command, I think that needs to be explicit in the command help string and release note.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5536492ddc88aa02cf52563bfc91a1be9e59da04","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This enables an admin to create a cell mapping and corresponding"},{"line_number":10,"context_line":"host mappings in the API database. For example:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  nova-manage --config-file nova-cell.conf cell_v2 map_cell_and_hosts"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"With the following options:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7af24918_c2d30203","line":12,"range":{"start_line":12,"start_character":28,"end_line":12,"end_character":42},"in_reply_to":"7af24918_b7cc3a6b","updated":"2016-03-03 18:47:17.000000000","message":"Cells v1 users should run this command when multi cell support is available. I wrote the instructions as they should be used in the end state (when cells v2 is 100% ready)","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"}],"nova/cmd/manage.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"251c4d5677729f76e7dbe5b8bbd47c3a35591b1d","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--uuid\u0027, metavar\u003d\u0027\u003cuuid\u003e\u0027, help\u003d\u0027The uuid of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1317,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1318,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_74c5aa59","line":1315,"updated":"2016-01-27 14:34:53.000000000","message":"I would prefer to leave this part out and just generate the uuid.  Deployers shouldn\u0027t need to care what the uuid is.  The only exception I think is cell0 where we may want to specify 00000-00-.. but for that we may want a separate command to just do it since deployers still don\u0027t really need to care.","commit_id":"7aa27c1d80656f00b53809512cd1ae19d03c7df3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"251c4d5677729f76e7dbe5b8bbd47c3a35591b1d","unresolved":false,"context_lines":[{"line_number":1320,"context_line":"                           verbose\u003dFalse):"},{"line_number":1321,"context_line":"        \"\"\"Create a cell mapping and host mappings for a cell."},{"line_number":1322,"context_line":""},{"line_number":1323,"context_line":"        This should be used with --config-file \u003ccell nova.conf\u003e"},{"line_number":1324,"context_line":"        so that the main database will be the cell database."},{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        if not uuid:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_74e4ca3a","line":1323,"updated":"2016-01-27 14:34:53.000000000","message":"Maybe be more clear here that this only applies to current cells users.  Non cells will just point at the current nova.conf.","commit_id":"7aa27c1d80656f00b53809512cd1ae19d03c7df3"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"969bbb3133e5f75690e0459762c4fe07216443f6","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_357aa125","line":1314,"updated":"2016-02-10 16:35:22.000000000","message":"I missed this earlier. Did you investigate pulling this value from the config file as well? It looks like there\u0027s a get_transport_url method in rpc.py which would do all the heavy lifting.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"b086626ee56d043822ccc637bb2cb245cdce244e","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_f073b74b","line":1314,"in_reply_to":"3a57f1b5_357aa125","updated":"2016-02-10 16:49:52.000000000","message":"Nvm, I see that get_transport_url does not do what it seems like it would.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3ace3b0040aeaeb8e3b3adb4ddd11fbe0001e373","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_4703b442","line":1314,"in_reply_to":"3a57f1b5_f073b74b","updated":"2016-02-16 10:21:33.000000000","message":"I actually wonder if we should make it explicit in the configuration file we manage. Providing that thru a CLI is pretty sensitive leakage.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"495b8e72665e7197e08e200a68379e9369ab03a4","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_b925acc3","line":1314,"in_reply_to":"bae84128_cf46f4be","updated":"2016-02-19 21:41:17.000000000","message":"Yeah, I tend to agree that our config files should be the master notes for our DB and transport.\nMaybe we should discuss that in a ML thread ? This review is becoming a bit huge.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e7f52c9fa27f0ec0d9ff6fe5f8a0197618f283b","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_c1ff0364","line":1314,"in_reply_to":"dae33548_0700f164","updated":"2016-02-18 22:59:11.000000000","message":"Okay. I had been thinking it might be confusing to decouple the nova.conf from the db connection. That is, specifying a db connection string is only useful if it\u0027s different from the config and I couldn\u0027t think of when it should be the case that the nova.conf should be completely ignored in a tool that relies on a nova.conf. Does that make sense?\n\nOn the transport thing, I mentioned in IRC today to doffm that the transport urls are already stored in the cells table. So I had been imagining an operator would dump the cells table and use the transport urls to pass into this nova-manage command. I also checked how the transport urls get stored in the cells table in the first place, and found the params like username, password, broker_hosts, hostname, port, virtual_host are all expected to be passed to \u0027nova-manage cell create\u0027 when operators create cells\n\nThat doesn\u0027t cover the case of a non-cells (single cell) user though. They wouldn\u0027t have a transport url readily available anywhere. Would the cell mapping in this case have potentially an empty transport url similar to cell0? Assuming I add the logic to not switch transport if empty string.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1d003d3fafaf6f9ad21919555ead184a65931520","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_f6824f93","line":1314,"in_reply_to":"dae33548_40b7f1d7","updated":"2016-02-17 00:50:10.000000000","message":"Right, I think we should discuss on how to get that information instead of providing it in the CLI, because I just dislike providing creds in my terminal :-)","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0c4dac2c36d28b4fc28df0a72d666e6a83b9442b","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_40b7f1d7","line":1314,"in_reply_to":"dae33548_4703b442","updated":"2016-02-16 23:40:01.000000000","message":"That\u0027s a good point on sensitive data. Current state is the transport information is stored in the ConfigOpts but scattered in various Opts depending on what rpc backend is being used. I *think* we could write a function for oslo.messaging that could extract a url from the pieces and use that instead","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"fd978d54110a4f4167c138e22bf84d6388243aca","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_0700f164","line":1314,"in_reply_to":"dae33548_a9c945ae","updated":"2016-02-18 15:45:34.000000000","message":"On the cell0 change we landed on the db connection defaulting to using a ConfigOpt but being able to take a passed in argument for users who want to specify a separate one. I think we can go the same direction here, the default should be to pull it from ConfigOpts but still allow users to pass it in. However since the default case is a bit hairy here I would suggest we move forward with having it be passed in and look to add the default case later.\n\nGiven that this call should probably take a db connection string as well, but default to CONF.database.connection if not passed in.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"df5ceb41a9d5152ad90175eb87d9690895592e40","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_cf46f4be","line":1314,"in_reply_to":"dae33548_c1ff0364","updated":"2016-02-19 16:01:43.000000000","message":"Your first paragraph makes sense. I was thinking that for completeness and consistency it should be allowed to pass in db information here, but you\u0027re right in that it really should not differ from what\u0027s available in nova.conf. If the case comes up later the capability can be added in.\n\nThe cell mapping here should point at the existing transport that nova-api is using to talk to computes/conductors. I\u0027m not sure about all transports but for rabbitmq it\u0027s easy enough to assemble the transport url if you have all of the above info, which should already be in the config somewhere. Ideally a method would be added to oslo.messaging that just returned the value, but if that proves unfeasible then asking for it to be provided should be reasonable. I do see that there\u0027s a transport_url config option that oslo.messaging uses, though it\u0027s not guaranteed to be used and the transport could instead be configured via backed specific options.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3785f45454456182781a563c294383e21fc0dc89","unresolved":false,"context_lines":[{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_a9c945ae","line":1314,"in_reply_to":"dae33548_f6824f93","updated":"2016-02-18 00:09:31.000000000","message":"I looked into what it would take to get the url from ConfigOpts and it looks pretty hairy. I\u0027m not sure where we landed on the cell0 change that might be taking db connection on the CLI, that is, should I keep pursuing extracting a url from ConfigOpts? Does anyone have a better idea?","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"969bbb3133e5f75690e0459762c4fe07216443f6","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"},{"line_number":1318,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_d5c46d41","line":1315,"updated":"2016-02-10 16:35:22.000000000","message":"I wonder if we should just leave off \"mapping here\", and for verbose?","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0c4dac2c36d28b4fc28df0a72d666e6a83b9442b","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"},{"line_number":1318,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_4089b125","line":1315,"in_reply_to":"3a57f1b5_d5c46d41","updated":"2016-02-16 23:40:01.000000000","message":"I wasn\u0027t sure. I suppose this is the only storage of \"cell name\" in the system now without the \"cells\" table, then it makes sense that it really means \"cell name\" and not \"cell mapping name\"","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5c03bc7d32b2f6080d7323f89d8b864044118ec6","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"},{"line_number":1318,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_5a67a2e8","line":1315,"in_reply_to":"dae33548_4089b125","updated":"2016-02-17 21:27:19.000000000","message":"Yeah, it\u0027s both really. I have a preference for \"cell\" rather than \"cell mapping\", here and on line 1317, but it\u0027s not worth getting stuck on so whatever you end up with is fine.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3785f45454456182781a563c294383e21fc0dc89","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"    @args(\u0027--transport-url\u0027, metavar\u003d\u0027\u003ctransport url\u003e\u0027, required\u003dTrue,"},{"line_number":1313,"context_line":"          dest\u003d\u0027transport_url\u0027,"},{"line_number":1314,"context_line":"          help\u003d\u0027The transport url for the cell message queue\u0027)"},{"line_number":1315,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell mapping\u0027)"},{"line_number":1316,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1317,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell mapping\u0027)"},{"line_number":1318,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_a9a4a507","line":1315,"in_reply_to":"dae33548_5a67a2e8","updated":"2016-02-18 00:09:31.000000000","message":"Sure, I\u0027ll change it in the next rev","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3ace3b0040aeaeb8e3b3adb4ddd11fbe0001e373","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1327,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1328,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":1329,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1330,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1331,"context_line":"                transport_url\u003dtransport_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_7b6e8cca","line":1328,"updated":"2016-02-16 10:21:33.000000000","message":"are we still needing an admin context here? I was thinking the DB API was no longer needing it - because it should rather be a RBAC policy","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c6d3b2251d53d52fa57daa971bfdb44b679854d8","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1327,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1328,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":1329,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1330,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1331,"context_line":"                transport_url\u003dtransport_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_b6b1e791","line":1328,"in_reply_to":"dae33548_20a58db4","updated":"2016-02-17 00:48:58.000000000","message":"Well, it was a nit, I\u0027m still fine with the above","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0c4dac2c36d28b4fc28df0a72d666e6a83b9442b","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1327,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1328,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":1329,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1330,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1331,"context_line":"                transport_url\u003dtransport_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_20a58db4","line":1328,"in_reply_to":"dae33548_7b6e8cca","updated":"2016-02-16 23:40:01.000000000","message":"How would we get the user/project/credentials during nova-manage to use to create the non-admin context?","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5c03bc7d32b2f6080d7323f89d8b864044118ec6","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1327,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1328,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":1329,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1330,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1331,"context_line":"                transport_url\u003dtransport_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_bae50e39","line":1328,"in_reply_to":"dae33548_b6b1e791","updated":"2016-02-17 21:27:19.000000000","message":"This is a pattern that comes up a lot. There\u0027s a get_admin_context helper method in the context module so it gets used. The alternative would be to create the context manually with context.RequestContext(project_id\u003dNone, user_id\u003dNone) which is basically the same as above without setting is_admin\u003dTrue. It doesn\u0027t make a difference here, but it might be nice to not give the impression that an admin context is needed here. I\u0027m with Sylvain though, it\u0027s a nit.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3785f45454456182781a563c294383e21fc0dc89","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        \"\"\""},{"line_number":1326,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1327,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1328,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":1329,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1330,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1331,"context_line":"                transport_url\u003dtransport_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_c96649ec","line":1328,"in_reply_to":"dae33548_bae50e39","updated":"2016-02-18 00:09:31.000000000","message":"Ah, okay. I thought the suggestion was the use a real user\u0027s id and project id here by receiving them on the command line or something. I\u0027ll change it to an empty regular context then","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41ee5fc05ab0c8df14ea68c27e59c5727d055715","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1351,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1352,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell\u0027)"},{"line_number":1353,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"},{"line_number":1354,"context_line":"        \"\"\"EXPERIMENTAL. Create a cell mapping and host mappings for a cell."},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"        Users not dividing their cloud into multiple cells will be a single"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_31be7a65","line":1353,"updated":"2016-03-02 22:14:16.000000000","message":"So --config-file isn\u0027t a required parameter for this? Or that\u0027s just for the command to read from for your nova config to get the database connection?\n\nI could see someone forgetting to specify --config-file, which will by default use nova.conf, does that break anything if you were supposed to use nova-cells.conf?  Would it be more straightforward to specify the database connection URL explicitly as an argument to the command?","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c79eed3de1cebebd27b31a701dc7bb9228f5d1f9","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1351,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1352,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell\u0027)"},{"line_number":1353,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"},{"line_number":1354,"context_line":"        \"\"\"EXPERIMENTAL. Create a cell mapping and host mappings for a cell."},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"        Users not dividing their cloud into multiple cells will be a single"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_9712de55","line":1353,"in_reply_to":"7af24918_31be7a65","updated":"2016-03-02 22:28:19.000000000","message":"If they were supposed to use nova-cells.conf this would create a cell which isn\u0027t configured as was expected which would need to be cleaned up. But it\u0027s not expected that anyone with a nova-cells.conf will use this right now because cellsv2 does not have multiple cells support yet. And this could be robustified in the meantime.\n\nThere was a discussion in IRC about this and Sean pushed for sensible defaults which is to read the db value from nova.conf. The ability to pass in an explicit db connection string will be added later for complex users, but devstack just wants it to work without needing that.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"659cf503b608560fd887e1b747b9173648289adf","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"    @args(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027, help\u003d\u0027The name of the cell\u0027)"},{"line_number":1351,"context_line":"    @args(\u0027--verbose\u0027, action\u003d\u0027store_true\u0027,"},{"line_number":1352,"context_line":"          help\u003d\u0027Return and output the uuid of the created cell\u0027)"},{"line_number":1353,"context_line":"    def map_cell_and_hosts(self, transport_url, name\u003dNone, verbose\u003dFalse):"},{"line_number":1354,"context_line":"        \"\"\"EXPERIMENTAL. Create a cell mapping and host mappings for a cell."},{"line_number":1355,"context_line":""},{"line_number":1356,"context_line":"        Users not dividing their cloud into multiple cells will be a single"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_22a8e68c","line":1353,"in_reply_to":"7af24918_9712de55","updated":"2016-03-02 22:54:58.000000000","message":"Running it without --config-file in the nova cells case puts you in the same situation as running it twice. It would use nova.conf and create that cell for you, unless you had already run it in which case it would fail as described below.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e83029f0c34d511c15a41c7b8d4383073c60fb2a","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"        Users running multiple cells should specify"},{"line_number":1361,"context_line":"        --config-file \u003ccell nova.conf\u003e to add a cell v2 to their deployment."},{"line_number":1362,"context_line":"        \"\"\""},{"line_number":1363,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1364,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1365,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1366,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_540fb487","line":1363,"updated":"2016-03-02 22:20:11.000000000","message":"So...what happens if I\u0027m a dummy and run this command twice?  The uniqueness constraint on cell mapping is on the uuid, which we\u0027re generating each time this is ran. So won\u0027t we end up with another cell mappings entry for the same hosts? Isn\u0027t that...bad?\n\nCan we enforce uniqueness on the transport_url such that if this is called twice and we already have a cell mapping with that transport URL we error out? Or update the existing cell mapping?","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"659cf503b608560fd887e1b747b9173648289adf","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"        Users running multiple cells should specify"},{"line_number":1361,"context_line":"        --config-file \u003ccell nova.conf\u003e to add a cell v2 to their deployment."},{"line_number":1362,"context_line":"        \"\"\""},{"line_number":1363,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":1364,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1365,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1366,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_a2f876c4","line":1363,"in_reply_to":"7af24918_540fb487","updated":"2016-03-02 22:54:58.000000000","message":"I\u0027m not sure about uniqueness on the transport_url. It is possible to share a database, and may be possible to share a transport. There may be enough uniqueness required, like vhost on rabbitmq, but I wouldn\u0027t want to count on it.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41ee5fc05ab0c8df14ea68c27e59c5727d055715","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1365,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1366,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1367,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1368,"context_line":"                transport_url\u003dtransport_url,"},{"line_number":1369,"context_line":"                database_connection\u003dCONF.database.connection)"},{"line_number":1370,"context_line":"        cell_mapping.create()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_54a854db","line":1367,"range":{"start_line":1367,"start_character":46,"end_line":1367,"end_character":55},"updated":"2016-03-02 22:14:16.000000000","message":"If we\u0027re using nova-cells.conf, and name was not provided, couldn\u0027t we use CONF.cells.name?","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e83029f0c34d511c15a41c7b8d4383073c60fb2a","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1365,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1366,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1367,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1368,"context_line":"                transport_url\u003dtransport_url,"},{"line_number":1369,"context_line":"                database_connection\u003dCONF.database.connection)"},{"line_number":1370,"context_line":"        cell_mapping.create()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_14cecc2d","line":1367,"range":{"start_line":1367,"start_character":46,"end_line":1367,"end_character":55},"in_reply_to":"7af24918_54a854db","updated":"2016-03-02 22:20:11.000000000","message":"And if using nova.conf, and name isn\u0027t provided, we could use CONF.host?","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c79eed3de1cebebd27b31a701dc7bb9228f5d1f9","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1365,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":1366,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1367,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"},{"line_number":1368,"context_line":"                transport_url\u003dtransport_url,"},{"line_number":1369,"context_line":"                database_connection\u003dCONF.database.connection)"},{"line_number":1370,"context_line":"        cell_mapping.create()"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_577176a7","line":1367,"range":{"start_line":1367,"start_character":46,"end_line":1367,"end_character":55},"in_reply_to":"7af24918_54a854db","updated":"2016-03-02 22:28:19.000000000","message":"Yes. But for now no user will have that set, unless a cellsv1 user is crazy enough to make one cell a v2 cell.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e83029f0c34d511c15a41c7b8d4383073c60fb2a","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"},{"line_number":1374,"context_line":"            host_mapping \u003d objects.HostMapping("},{"line_number":1375,"context_line":"                    ctxt, host\u003dcompute_node.host, cell_mapping\u003dcell_mapping)"},{"line_number":1376,"context_line":"            host_mapping.create()"},{"line_number":1377,"context_line":"        if verbose:"},{"line_number":1378,"context_line":"            return cell_mapping_uuid"},{"line_number":1379,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_b48b98c2","line":1376,"range":{"start_line":1376,"start_character":12,"end_line":1376,"end_character":33},"updated":"2016-03-02 22:20:11.000000000","message":"Related to the question above on running this twice, HostMapping has a unique constraint on the host value, so I think we\u0027re fail the command here on a 2nd run.\n\nhttps://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api_models.py#L70\n\nBut we\u0027d already have created another CellMapping that is empty...","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"659cf503b608560fd887e1b747b9173648289adf","unresolved":false,"context_lines":[{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"},{"line_number":1374,"context_line":"            host_mapping \u003d objects.HostMapping("},{"line_number":1375,"context_line":"                    ctxt, host\u003dcompute_node.host, cell_mapping\u003dcell_mapping)"},{"line_number":1376,"context_line":"            host_mapping.create()"},{"line_number":1377,"context_line":"        if verbose:"},{"line_number":1378,"context_line":"            return cell_mapping_uuid"},{"line_number":1379,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_823f3a86","line":1376,"range":{"start_line":1376,"start_character":12,"end_line":1376,"end_character":33},"in_reply_to":"7af24918_b48b98c2","updated":"2016-03-02 22:54:58.000000000","message":"The second CellMapping shouldn\u0027t be an issue, but it would be good to prevent it.\n\nWe pull CellMapping by querying a HostMapping or an InstanceMapping, and InstanceMapping only sets what a HostMapping has returned. So we won\u0027t have any issue with unused CellMappings in the db.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41ee5fc05ab0c8df14ea68c27e59c5727d055715","unresolved":false,"context_lines":[{"line_number":1375,"context_line":"                    ctxt, host\u003dcompute_node.host, cell_mapping\u003dcell_mapping)"},{"line_number":1376,"context_line":"            host_mapping.create()"},{"line_number":1377,"context_line":"        if verbose:"},{"line_number":1378,"context_line":"            return cell_mapping_uuid"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"CATEGORIES \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_5485f404","line":1378,"range":{"start_line":1378,"start_character":12,"end_line":1378,"end_character":36},"updated":"2016-03-02 22:14:16.000000000","message":"Shouldn\u0027t this print something rather than return it? You return exit codes, not output.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5536492ddc88aa02cf52563bfc91a1be9e59da04","unresolved":false,"context_lines":[{"line_number":1375,"context_line":"                    ctxt, host\u003dcompute_node.host, cell_mapping\u003dcell_mapping)"},{"line_number":1376,"context_line":"            host_mapping.create()"},{"line_number":1377,"context_line":"        if verbose:"},{"line_number":1378,"context_line":"            return cell_mapping_uuid"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"CATEGORIES \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_e271de45","line":1378,"range":{"start_line":1378,"start_character":12,"end_line":1378,"end_character":36},"in_reply_to":"7af24918_5485f404","updated":"2016-03-03 18:47:17.000000000","message":"This makes it print (I mean, when I run nova-manage it prints) and was also handy for the unit test. But let me see if I can capture stdout during the test instead","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c79eed3de1cebebd27b31a701dc7bb9228f5d1f9","unresolved":false,"context_lines":[{"line_number":1375,"context_line":"                    ctxt, host\u003dcompute_node.host, cell_mapping\u003dcell_mapping)"},{"line_number":1376,"context_line":"            host_mapping.create()"},{"line_number":1377,"context_line":"        if verbose:"},{"line_number":1378,"context_line":"            return cell_mapping_uuid"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"CATEGORIES \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_74b47081","line":1378,"range":{"start_line":1378,"start_character":12,"end_line":1378,"end_character":36},"in_reply_to":"7af24918_5485f404","updated":"2016-03-02 22:28:19.000000000","message":"Yes, this should print.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"373a3863b7723bb77a930c4e6837df5f4e023b21","unresolved":false,"context_lines":[{"line_number":1379,"context_line":"                print(_(\u0027Host %(host)s is already mapped to cell %(uuid)s, \u0027"},{"line_number":1380,"context_line":"                        \u0027exiting\u0027) % {\u0027host\u0027: host_mapping.host,"},{"line_number":1381,"context_line":"                                      \u0027uuid\u0027: host_mapping.cell_mapping.uuid})"},{"line_number":1382,"context_line":"                return(1)"},{"line_number":1383,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1384,"context_line":"        cell_mapping \u003d objects.CellMapping("},{"line_number":1385,"context_line":"                ctxt, uuid\u003dcell_mapping_uuid, name\u003dname,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_a4cdc267","line":1382,"updated":"2016-03-04 10:03:53.000000000","message":"I\u0027m just thinking of someone Ctrl-C\u0027ing this command in the below loop, it would create some HostMapping rows that then a second run would get an exception (because they\u0027re already there).\n\nI\u0027d prefer to loop above all the computes for checking which ones are not having an HostMapping, and then only create the HostMapping for those.\n\nIf you want to return an error, then you could just check how many hosts need to have an HostMapping, and then return the error if equals to 0 (or not saying anything, and return 0 as a no-op)","commit_id":"a11c90f32d3a24ab0ed671084bf58bb0e2537c0a"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"0e5b11af9813d2b3030850bd0e06829887dba075","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"        # First, try to detect if a CellMapping has already been created"},{"line_number":1368,"context_line":"        compute_nodes \u003d objects.ComputeNodeList.get_all(ctxt)"},{"line_number":1369,"context_line":"        if not compute_nodes:"},{"line_number":1370,"context_line":"            print(_(\u0027No hosts found to map to cell, exiting\u0027))"},{"line_number":1371,"context_line":"            return(1)"},{"line_number":1372,"context_line":"        missing_nodes \u003d []"},{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_153f71b4","line":1370,"updated":"2016-03-04 15:39:01.000000000","message":"is it necessary to user print instead of any type of logging?","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"abc87a6141eb78b049773a00abf5a1562c57128c","unresolved":false,"context_lines":[{"line_number":1367,"context_line":"        # First, try to detect if a CellMapping has already been created"},{"line_number":1368,"context_line":"        compute_nodes \u003d objects.ComputeNodeList.get_all(ctxt)"},{"line_number":1369,"context_line":"        if not compute_nodes:"},{"line_number":1370,"context_line":"            print(_(\u0027No hosts found to map to cell, exiting\u0027))"},{"line_number":1371,"context_line":"            return(1)"},{"line_number":1372,"context_line":"        missing_nodes \u003d []"},{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_64e60145","line":1370,"in_reply_to":"7af24918_153f71b4","updated":"2016-03-04 16:47:23.000000000","message":"Yes, this is a shell basically, see the other commands in here that use print to give output.","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c27d36a542c702ea40f91fd9f87a37caceeaba6","unresolved":false,"context_lines":[{"line_number":1368,"context_line":"        compute_nodes \u003d objects.ComputeNodeList.get_all(ctxt)"},{"line_number":1369,"context_line":"        if not compute_nodes:"},{"line_number":1370,"context_line":"            print(_(\u0027No hosts found to map to cell, exiting\u0027))"},{"line_number":1371,"context_line":"            return(1)"},{"line_number":1372,"context_line":"        missing_nodes \u003d []"},{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"},{"line_number":1374,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_4a5f7472","line":1371,"updated":"2016-03-15 18:41:44.000000000","message":"I\u0027m not sure we need to error out here, but it\u0027s probably fine either way. This would at least indicate that nothing was done which is probably good if you\u0027re writing scripts against this.","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4352763197a4086aa029c04ce71b3299577b622e","unresolved":false,"context_lines":[{"line_number":1368,"context_line":"        compute_nodes \u003d objects.ComputeNodeList.get_all(ctxt)"},{"line_number":1369,"context_line":"        if not compute_nodes:"},{"line_number":1370,"context_line":"            print(_(\u0027No hosts found to map to cell, exiting\u0027))"},{"line_number":1371,"context_line":"            return(1)"},{"line_number":1372,"context_line":"        missing_nodes \u003d []"},{"line_number":1373,"context_line":"        for compute_node in compute_nodes:"},{"line_number":1374,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_e54e73c0","line":1371,"in_reply_to":"1af94dfe_4a5f7472","updated":"2016-03-15 19:13:14.000000000","message":"I could see that. I wasn\u0027t sure what to put in the case of \"didn\u0027t do anything\"\n\nWill make this return(0)","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"833d3edd1b9f907768c147cc5d714d59c9c1b3c0","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                # we should support."},{"line_number":1390,"context_line":"                cell_mapping_uuid \u003d host_mapping.cell_mapping.uuid"},{"line_number":1391,"context_line":"        if not missing_nodes:"},{"line_number":1392,"context_line":"            print (_(\u0027All hosts are already mapped to cell(s), exiting.\u0027))"},{"line_number":1393,"context_line":"            return(1)"},{"line_number":1394,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1395,"context_line":"        if cell_mapping_uuid is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_3308ba2d","line":1392,"range":{"start_line":1392,"start_character":17,"end_line":1392,"end_character":18},"updated":"2016-03-05 01:31:29.000000000","message":"Errant space here","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"833d3edd1b9f907768c147cc5d714d59c9c1b3c0","unresolved":false,"context_lines":[{"line_number":1389,"context_line":"                # we should support."},{"line_number":1390,"context_line":"                cell_mapping_uuid \u003d host_mapping.cell_mapping.uuid"},{"line_number":1391,"context_line":"        if not missing_nodes:"},{"line_number":1392,"context_line":"            print (_(\u0027All hosts are already mapped to cell(s), exiting.\u0027))"},{"line_number":1393,"context_line":"            return(1)"},{"line_number":1394,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1395,"context_line":"        if cell_mapping_uuid is not None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_453db9ba","line":1392,"range":{"start_line":1392,"start_character":70,"end_line":1392,"end_character":71},"updated":"2016-03-05 01:31:29.000000000","message":"There isn\u0027t a period on the other print messages","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c27d36a542c702ea40f91fd9f87a37caceeaba6","unresolved":false,"context_lines":[{"line_number":1390,"context_line":"                cell_mapping_uuid \u003d host_mapping.cell_mapping.uuid"},{"line_number":1391,"context_line":"        if not missing_nodes:"},{"line_number":1392,"context_line":"            print (_(\u0027All hosts are already mapped to cell(s), exiting.\u0027))"},{"line_number":1393,"context_line":"            return(1)"},{"line_number":1394,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1395,"context_line":"        if cell_mapping_uuid is not None:"},{"line_number":1396,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_ea812091","line":1393,"updated":"2016-03-15 18:41:44.000000000","message":"Another case where I\u0027m not sure if this should be an error, I tend to think that in this case we shouldn\u0027t error out since everything is already mapped and we\u0027re happy. If we do error out here, maybe we should use a different exit code so you can script around this.","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4352763197a4086aa029c04ce71b3299577b622e","unresolved":false,"context_lines":[{"line_number":1390,"context_line":"                cell_mapping_uuid \u003d host_mapping.cell_mapping.uuid"},{"line_number":1391,"context_line":"        if not missing_nodes:"},{"line_number":1392,"context_line":"            print (_(\u0027All hosts are already mapped to cell(s), exiting.\u0027))"},{"line_number":1393,"context_line":"            return(1)"},{"line_number":1394,"context_line":"        # Create the cell mapping in the API database"},{"line_number":1395,"context_line":"        if cell_mapping_uuid is not None:"},{"line_number":1396,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_85ffaf33","line":1393,"in_reply_to":"1af94dfe_ea812091","updated":"2016-03-15 19:13:14.000000000","message":"Will make this return(0)","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c27d36a542c702ea40f91fd9f87a37caceeaba6","unresolved":false,"context_lines":[{"line_number":1396,"context_line":"            try:"},{"line_number":1397,"context_line":"                cell_mapping \u003d objects.CellMapping.get_by_uuid("},{"line_number":1398,"context_line":"                    ctxt, cell_mapping_uuid)"},{"line_number":1399,"context_line":"            except exception.CellMappingNotFound:"},{"line_number":1400,"context_line":"                cell_mapping \u003d None"},{"line_number":1401,"context_line":"        if cell_mapping is None:"},{"line_number":1402,"context_line":"            cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_2a182884","line":1399,"range":{"start_line":1399,"start_character":12,"end_line":1399,"end_character":49},"updated":"2016-03-15 18:41:44.000000000","message":"This seems odd, we get the cell_mapping_uuid from a host_mapping.cell_mapping.uuid above, so the cell mapping would have had to be deleted between then and now. If this were a service I\u0027d log something, but since it\u0027s not, I guess, meh? Maybe this was one of the weird concurrent race cases that were are paranoid about?","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"6d6f4a9d0a8924dd41fd4e48f30bfbbd7ea7bbcc","unresolved":false,"context_lines":[{"line_number":1396,"context_line":"            try:"},{"line_number":1397,"context_line":"                cell_mapping \u003d objects.CellMapping.get_by_uuid("},{"line_number":1398,"context_line":"                    ctxt, cell_mapping_uuid)"},{"line_number":1399,"context_line":"            except exception.CellMappingNotFound:"},{"line_number":1400,"context_line":"                cell_mapping \u003d None"},{"line_number":1401,"context_line":"        if cell_mapping is None:"},{"line_number":1402,"context_line":"            cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_4549278b","line":1399,"range":{"start_line":1399,"start_character":12,"end_line":1399,"end_character":49},"in_reply_to":"1af94dfe_2a182884","updated":"2016-03-15 18:51:19.000000000","message":"At this point I can\u0027t see any way to trigger this. There\u0027s no mechanism for admins to delete a CellMapping and the only way to have a mapped host would be through the code below which relies on having a valid CellMapping. So yeah, this shouldn\u0027t happen.","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4352763197a4086aa029c04ce71b3299577b622e","unresolved":false,"context_lines":[{"line_number":1396,"context_line":"            try:"},{"line_number":1397,"context_line":"                cell_mapping \u003d objects.CellMapping.get_by_uuid("},{"line_number":1398,"context_line":"                    ctxt, cell_mapping_uuid)"},{"line_number":1399,"context_line":"            except exception.CellMappingNotFound:"},{"line_number":1400,"context_line":"                cell_mapping \u003d None"},{"line_number":1401,"context_line":"        if cell_mapping is None:"},{"line_number":1402,"context_line":"            cell_mapping_uuid \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_e0adc189","line":1399,"range":{"start_line":1399,"start_character":12,"end_line":1399,"end_character":49},"in_reply_to":"1af94dfe_4549278b","updated":"2016-03-15 19:13:14.000000000","message":"Will remove the try-except here","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"833d3edd1b9f907768c147cc5d714d59c9c1b3c0","unresolved":false,"context_lines":[{"line_number":737,"context_line":"        self.assertEqual(expected, output)"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"    def test_map_cell_and_hosts_partial_update(self):"},{"line_number":740,"context_line":"        # Create a cell mapping and hosts and check that nothing new is created"},{"line_number":741,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":742,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":743,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_60d7f8bf","line":740,"range":{"start_line":740,"start_character":42,"end_line":740,"end_character":79},"updated":"2016-03-05 01:31:29.000000000","message":"This isn\u0027t accurate for the partial update test","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c27d36a542c702ea40f91fd9f87a37caceeaba6","unresolved":false,"context_lines":[{"line_number":737,"context_line":"        self.assertEqual(expected, output)"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"    def test_map_cell_and_hosts_partial_update(self):"},{"line_number":740,"context_line":"        # Create a cell mapping and hosts and check that nothing new is created"},{"line_number":741,"context_line":"        ctxt \u003d context.RequestContext()"},{"line_number":742,"context_line":"        cell_mapping_uuid \u003d uuidutils.generate_uuid()"},{"line_number":743,"context_line":"        cell_mapping \u003d objects.CellMapping("}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_45b927e9","line":740,"range":{"start_line":740,"start_character":42,"end_line":740,"end_character":79},"in_reply_to":"7af24918_60d7f8bf","updated":"2016-03-15 18:41:44.000000000","message":"Yeah would be nice to address this little doc issue.","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c27d36a542c702ea40f91fd9f87a37caceeaba6","unresolved":false,"context_lines":[{"line_number":770,"context_line":"        self.commands.map_cell_and_hosts(cell_transport_url,"},{"line_number":771,"context_line":"                                         name\u003d\u0027ssd\u0027,"},{"line_number":772,"context_line":"                                         verbose\u003dTrue)"},{"line_number":773,"context_line":"        # Verify the HostMapping for the last host missing it"},{"line_number":774,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host(ctxt, \u0027host2\u0027)"},{"line_number":775,"context_line":"        self.assertEqual(cell_mapping.uuid, host_mapping.cell_mapping.uuid)"},{"line_number":776,"context_line":"        # Verify the output"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_05a6ffc0","line":773,"range":{"start_line":773,"start_character":51,"end_line":773,"end_character":61},"updated":"2016-03-15 18:41:44.000000000","message":"is missing?","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4352763197a4086aa029c04ce71b3299577b622e","unresolved":false,"context_lines":[{"line_number":770,"context_line":"        self.commands.map_cell_and_hosts(cell_transport_url,"},{"line_number":771,"context_line":"                                         name\u003d\u0027ssd\u0027,"},{"line_number":772,"context_line":"                                         verbose\u003dTrue)"},{"line_number":773,"context_line":"        # Verify the HostMapping for the last host missing it"},{"line_number":774,"context_line":"        host_mapping \u003d objects.HostMapping.get_by_host(ctxt, \u0027host2\u0027)"},{"line_number":775,"context_line":"        self.assertEqual(cell_mapping.uuid, host_mapping.cell_mapping.uuid)"},{"line_number":776,"context_line":"        # Verify the output"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af94dfe_3b2518ab","line":773,"range":{"start_line":773,"start_character":51,"end_line":773,"end_character":61},"in_reply_to":"1af94dfe_05a6ffc0","updated":"2016-03-15 19:13:14.000000000","message":"It shouldn\u0027t be missing, it should have been created. Will update this comment","commit_id":"f1fc42b0ae8bdb41428ef534f3abbb04a93fae78"}],"releasenotes/notes/create-cell-mappings-bf0a540a0440bb65.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"66ba9936ee0557af1f5628c50298a2f3d17c8a41","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    available for generating cell mappings and host"},{"line_number":6,"context_line":"    mappings in the API database. Current cells users"},{"line_number":7,"context_line":"    should specify --config-file \u003ccell nova.conf\u003e and"},{"line_number":8,"context_line":"    non-cells users should specify the current nova.conf."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"dae33548_aa924549","line":8,"updated":"2016-02-16 10:33:12.000000000","message":"we should also explain when that command is useful, eg.\n- case #1, you don\u0027t care about sharding your cloud, you don\u0027t need that or you\u0027re fully okay with one single cell v2\n- case #2, you want to add another cell v2 (or more), then you need to issue that.","commit_id":"3d6562f86e0d7f4e5366377ef8b19523ef526699"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"1a51e97de3eaa3dc1ac3588892f143a66538f130","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new nova-manage command ``nova-manage cell_v2 map_cell_and_hosts`` is"},{"line_number":4,"context_line":"    now available for generating cell mappings and host mappings in the"},{"line_number":5,"context_line":"    API database."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9aed3d3a_8647754a","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2016-02-26 22:47:31.000000000","message":"Should this be upgrades? Is this nova-manage command a required step for all users once it\u0027s out?","commit_id":"056c70b18a327cadac4d045a912f3240bc50fde0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"dc8b0940104264287ca8c7280604ceebdec61d30","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new nova-manage command ``nova-manage cell_v2 map_cell_and_hosts`` is"},{"line_number":4,"context_line":"    now available for generating cell mappings and host mappings in the"},{"line_number":5,"context_line":"    API database."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7af24918_849bf171","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"7af24918_30552650","updated":"2016-03-02 13:40:36.000000000","message":"Yeah, a note at that time should be added.","commit_id":"056c70b18a327cadac4d045a912f3240bc50fde0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"30d126fb2441c843245f39f68b1030002c9dc137","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new nova-manage command ``nova-manage cell_v2 map_cell_and_hosts`` is"},{"line_number":4,"context_line":"    now available for generating cell mappings and host mappings in the"},{"line_number":5,"context_line":"    API database."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7af24918_30552650","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"9aed3d3a_03a30501","updated":"2016-03-01 22:26:19.000000000","message":"Makes sense. Will change it to \"upgrades\". We\u0027ll have a separate note when it\u0027s required to run it in order for things to work (when CellMapping is definitely in the boot path) I guess?","commit_id":"056c70b18a327cadac4d045a912f3240bc50fde0"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5b1ae4052dd114ebb919567c853ff6277f10abbc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - A new nova-manage command ``nova-manage cell_v2 map_cell_and_hosts`` is"},{"line_number":4,"context_line":"    now available for generating cell mappings and host mappings in the"},{"line_number":5,"context_line":"    API database."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9aed3d3a_03a30501","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"9aed3d3a_8647754a","updated":"2016-02-29 17:50:37.000000000","message":"It\u0027s not required immediately when this is merged, but it is required as part of the upgrade process. There\u0027s no deadline on when it must be done by though. But I do think it qualifies as an upgrade thing.","commit_id":"056c70b18a327cadac4d045a912f3240bc50fde0"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7cc977437f08e59eff4011aa0c8ff3dd5903a60f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    now available for generating cell mappings and host mappings in the"},{"line_number":5,"context_line":"    API database."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    Users not dividing their cloud into multiple cells will be a single cell"},{"line_number":8,"context_line":"    deployment and should specify their current nova.conf in --config-file."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    Users running multiple cells should specify --config-file \u003ccell nova.conf\u003e"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9aed3d3a_9cdce213","line":7,"range":{"start_line":7,"start_character":72,"end_line":7,"end_character":76},"updated":"2016-02-27 00:07:20.000000000","message":"s/cell/cell v2/","commit_id":"056c70b18a327cadac4d045a912f3240bc50fde0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41ee5fc05ab0c8df14ea68c27e59c5727d055715","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    API database. For the moment, this is only an experimental command used"},{"line_number":6,"context_line":"    for testing."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Users not dividing their cloud into multiple cells will be a single cell v2"},{"line_number":9,"context_line":"    deployment and should specify their current nova.conf in --config-file."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    Users running multiple cells should specify --config-file \u003ccell nova.conf\u003e"},{"line_number":12,"context_line":"    to add a cell v2 to their deployment."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7af24918_51d4e6bb","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":75},"updated":"2016-03-02 22:14:16.000000000","message":"Just for my understanding, this is for existing deployments that aren\u0027t using cells v1, right?","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c79eed3de1cebebd27b31a701dc7bb9228f5d1f9","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    API database. For the moment, this is only an experimental command used"},{"line_number":6,"context_line":"    for testing."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Users not dividing their cloud into multiple cells will be a single cell v2"},{"line_number":9,"context_line":"    deployment and should specify their current nova.conf in --config-file."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    Users running multiple cells should specify --config-file \u003ccell nova.conf\u003e"},{"line_number":12,"context_line":"    to add a cell v2 to their deployment."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7af24918_57a856db","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":75},"in_reply_to":"7af24918_51d4e6bb","updated":"2016-03-02 22:28:19.000000000","message":"Correct, same below.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41ee5fc05ab0c8df14ea68c27e59c5727d055715","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Users not dividing their cloud into multiple cells will be a single cell v2"},{"line_number":9,"context_line":"    deployment and should specify their current nova.conf in --config-file."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    Users running multiple cells should specify --config-file \u003ccell nova.conf\u003e"},{"line_number":12,"context_line":"    to add a cell v2 to their deployment."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7af24918_f1e372a2","line":12,"range":{"start_line":11,"start_character":4,"end_line":12,"end_character":41},"updated":"2016-03-02 22:14:16.000000000","message":"And this is for the existing cells v1 deployments to start mapping for cells v2.","commit_id":"f4c1af5169ec13f5df83d939d2d0acee0270558c"}]}
