)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Fixtures and a number of tests are updated to reflected the new"},{"line_number":19,"context_line":"location of the placement engine."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The original parse_args needed to import RPC and database related"},{"line_number":22,"context_line":"modules that are not required in the placement context. A new"},{"line_number":23,"context_line":"_parse_args method is added to wsgi.py which does the minimal required"},{"line_number":24,"context_line":"work. Because we no longer use the central parse_args, the placement"},{"line_number":25,"context_line":"db sync in nova/cmd/manager.py must make a manual configuration of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":53,"id":"5f7c97a3_f5f1d4df","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":55},"updated":"2018-06-19 21:55:53.000000000","message":"incomplete sentence","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":22,"context_line":"modules that are not required in the placement context. A new"},{"line_number":23,"context_line":"_parse_args method is added to wsgi.py which does the minimal required"},{"line_number":24,"context_line":"work. Because we no longer use the central parse_args, the placement"},{"line_number":25,"context_line":"db sync in nova/cmd/manager.py must make a manual configuration of the"},{"line_number":26,"context_line":"context manager."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"blueprint placement-extract"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":53,"id":"5f7c97a3_b5fb5cbc","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":2},"updated":"2018-06-19 21:55:53.000000000","message":"api_db?","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"}],"nova/api/openstack/placement/db_api.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"2620bb4d77f05921fe73a66643af2a5b4cd676fc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_782916e4","line":20,"updated":"2018-02-09 08:31:59.000000000","message":"Maybe just context_manager since the moduule path is already placement-specific","commit_id":"8ec555b92093352ed8a9a6cfbf86eeac54add568"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c840e72a510b63a020d46f1e83ab66cc4e773d5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_2d54abfe","line":20,"in_reply_to":"3fa0c359_782916e4","updated":"2018-02-09 11:40:54.000000000","message":"That\u0027s a good idea. At the moment these are copy \u0026 pastes from the original code, designed to limit the extent of changes throughout all the modules. To get a feel of what the impact will be, before doing the complete and correct version.","commit_id":"8ec555b92093352ed8a9a6cfbf86eeac54add568"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"2620bb4d77f05921fe73a66643af2a5b4cd676fc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            **_get_db_conf(conf.placement_database))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def get_placement_engine():"},{"line_number":40,"context_line":"    return placement_context_manager.get_legacy_facade().get_engine()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_d8e94ab7","line":39,"updated":"2018-02-09 08:31:59.000000000","message":"Maybe just get_engine since the module path is already placement-specific.","commit_id":"8ec555b92093352ed8a9a6cfbf86eeac54add568"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":20,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"},{"line_number":24,"context_line":"    kw \u003d dict(conf_group.items())"},{"line_number":25,"context_line":"    if connection is not None:"},{"line_number":26,"context_line":"        kw[\u0027connection\u0027] \u003d connection"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_75d4e41f","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":44},"updated":"2018-06-19 21:55:53.000000000","message":"As far as I can tell this is never used, i.e. nothing ever passes something in for this.","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a578065c34d396de5db0e50f4c7bb224e376b74b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"},{"line_number":24,"context_line":"    kw \u003d dict(conf_group.items())"},{"line_number":25,"context_line":"    if connection is not None:"},{"line_number":26,"context_line":"        kw[\u0027connection\u0027] \u003d connection"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_b5411ca9","line":23,"range":{"start_line":23,"start_character":29,"end_line":23,"end_character":44},"in_reply_to":"5f7c97a3_75d4e41f","updated":"2018-06-19 22:05:59.000000000","message":"True, only usages are below and neither passes this.  Guess it\u0027s a paste from https://github.com/openstack/nova/blob/ecaadf6d6d3c94706fdd1fb24676e3bd2370f9f7/nova/db/sqlalchemy/api.py#L85","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    return kw"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def configure(conf):"},{"line_number":31,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":32,"context_line":"        placement_context_manager.configure("},{"line_number":33,"context_line":"            **_get_db_conf(conf.api_database))"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_758b841d","line":30,"updated":"2018-06-19 21:55:53.000000000","message":"nit: code comments on the (albeit simple) logic in here would be nice","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"}],"nova/api/openstack/placement/wsgi.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from nova import conf"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"profiler \u003d importutils.try_import(\u0027osprofiler.opts\u0027)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONFIG_FILE \u003d \u0027nova.conf\u0027"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_55ba08e1","line":31,"updated":"2018-06-19 21:55:53.000000000","message":"yar: https://github.com/openstack/nova/blob/master/nova/config.py#L27","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":34,"context_line":"CONFIG_FILE \u003d \u0027nova.conf\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"version_info \u003d pbr.version.VersionInfo(\u0027nova\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def setup_logging(config):"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_75bdc4d5","line":37,"updated":"2018-06-19 21:55:53.000000000","message":"yar: https://github.com/openstack/nova/blob/master/nova/version.py#L24","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    logging.register_options(conf.CONF)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    if profiler:"},{"line_number":64,"context_line":"        profiler.set_defaults(conf.CONF)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    config.set_middleware_defaults()"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_35b74cf8","line":64,"updated":"2018-06-19 21:55:53.000000000","message":"yup: https://github.com/openstack/nova/blob/master/nova/config.py#L46","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    if profiler:"},{"line_number":64,"context_line":"        profiler.set_defaults(conf.CONF)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    config.set_middleware_defaults()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    conf.CONF(argv[1:], project\u003d\u0027nova\u0027, version\u003dversion_info.version_string(),"},{"line_number":69,"context_line":"              default_config_files\u003ddefault_config_files)"}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_f5c8f475","line":66,"updated":"2018-06-19 21:55:53.000000000","message":"https://github.com/openstack/nova/blob/master/nova/config.py#L47","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7a535540cfe575a275a49e46d888c7c0efcff836","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    config.set_middleware_defaults()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    conf.CONF(argv[1:], project\u003d\u0027nova\u0027, version\u003dversion_info.version_string(),"},{"line_number":69,"context_line":"              default_config_files\u003ddefault_config_files)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":53,"id":"5f7c97a3_15a9f08e","line":68,"range":{"start_line":68,"start_character":40,"end_line":68,"end_character":77},"updated":"2018-06-19 21:55:53.000000000","message":"yup:\n\nhttps://github.com/openstack/nova/blob/master/nova/config.py#L51\n\nhttps://github.com/openstack/nova/blob/master/nova/version.py#L25","commit_id":"5dff348da2e170bda118ee8df9adf663918dca8c"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"528186ab6eda58e1508f81b58e101adc67beeed1","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"main_context_manager \u003d enginefacade.transaction_context()"},{"line_number":81,"context_line":"api_context_manager \u003d enginefacade.transaction_context()"},{"line_number":82,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_1f4b2bb1","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":62},"updated":"2018-06-08 19:56:37.000000000","message":"Can changes to this file be reverted now that placement has its own copy of this file?","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cccce8cab5000036c756f105ff8cf4684cb489c8","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"main_context_manager \u003d enginefacade.transaction_context()"},{"line_number":81,"context_line":"api_context_manager \u003d enginefacade.transaction_context()"},{"line_number":82,"context_line":"placement_context_manager \u003d enginefacade.transaction_context()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def _get_db_conf(conf_group, connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_f119c387","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":62},"in_reply_to":"5f7c97a3_1f4b2bb1","updated":"2018-06-08 23:08:00.000000000","message":"Done","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"528186ab6eda58e1508f81b58e101adc67beeed1","unresolved":false,"context_lines":[{"line_number":100,"context_line":"def configure(conf):"},{"line_number":101,"context_line":"    main_context_manager.configure(**_get_db_conf(conf.database))"},{"line_number":102,"context_line":"    api_context_manager.configure(**_get_db_conf(conf.api_database))"},{"line_number":103,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":104,"context_line":"        placement_context_manager.configure("},{"line_number":105,"context_line":"            **_get_db_conf(conf.api_database))"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        placement_context_manager.configure("},{"line_number":108,"context_line":"            **_get_db_conf(conf.placement_database))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if profiler_sqlalchemy and CONF.profiler.enabled \\"},{"line_number":111,"context_line":"            and CONF.profiler.trace_sqlalchemy:"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_df7853f9","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":52},"updated":"2018-06-08 19:56:37.000000000","message":"here","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cccce8cab5000036c756f105ff8cf4684cb489c8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"def configure(conf):"},{"line_number":101,"context_line":"    main_context_manager.configure(**_get_db_conf(conf.database))"},{"line_number":102,"context_line":"    api_context_manager.configure(**_get_db_conf(conf.api_database))"},{"line_number":103,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":104,"context_line":"        placement_context_manager.configure("},{"line_number":105,"context_line":"            **_get_db_conf(conf.api_database))"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        placement_context_manager.configure("},{"line_number":108,"context_line":"            **_get_db_conf(conf.placement_database))"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if profiler_sqlalchemy and CONF.profiler.enabled \\"},{"line_number":111,"context_line":"            and CONF.profiler.trace_sqlalchemy:"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_111f9f6c","line":108,"range":{"start_line":103,"start_character":0,"end_line":108,"end_character":52},"in_reply_to":"5f7c97a3_df7853f9","updated":"2018-06-08 23:08:00.000000000","message":"Done","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"528186ab6eda58e1508f81b58e101adc67beeed1","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    return api_context_manager.get_legacy_facade().get_engine()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"def get_placement_engine():"},{"line_number":152,"context_line":"    return placement_context_manager.get_legacy_facade().get_engine()"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"_SHADOW_TABLE_PREFIX \u003d \u0027shadow_\u0027"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_5f6c4335","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":69},"updated":"2018-06-08 19:56:37.000000000","message":"and here","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cccce8cab5000036c756f105ff8cf4684cb489c8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    return api_context_manager.get_legacy_facade().get_engine()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"def get_placement_engine():"},{"line_number":152,"context_line":"    return placement_context_manager.get_legacy_facade().get_engine()"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"_SHADOW_TABLE_PREFIX \u003d \u0027shadow_\u0027"}],"source_content_type":"text/x-python","patch_set":44,"id":"5f7c97a3_d114c74f","line":152,"range":{"start_line":151,"start_character":0,"end_line":152,"end_character":69},"in_reply_to":"5f7c97a3_5f6c4335","updated":"2018-06-08 23:08:00.000000000","message":"Done","commit_id":"74e79abbb09eb70d9ffe76503492e2e7785ba85e"}]}
