)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7e3bfee99bb1350a05186ee3358e995ea0d63794","unresolved":false,"context_lines":[{"line_number":9,"context_line":"A when root providers were added, a series of TODOs were"},{"line_number":10,"context_line":"left in allocation candidate and resource provider data"},{"line_number":11,"context_line":"handling. These TODOs should be removed once we are assured"},{"line_number":12,"context_line":"that there are no null roots. That is the case now, given"},{"line_number":13,"context_line":"that we had an online migration and a status check."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This is a WIP because:"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_a986b0da","line":13,"range":{"start_line":12,"start_character":30,"end_line":13,"end_character":51},"updated":"2019-05-08 02:19:18.000000000","message":"Unfortunately, there can be users who are using nova-repositoried-placement for Stein release simply since the code is still there, and in nova repo in Stein we haven\u0027t merged this kind of online-migration - I wanted to backport it to nova as well, but the functional tests were already removed then.\n\nTherefore, I think we should wait and get this merged in U release.","commit_id":"e7a94e469265edffbba57b15aa54a35b7cca60c6"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7e3bfee99bb1350a05186ee3358e995ea0d63794","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* I\u0027m out of brain and I don\u0027t know if I\u0027m done."},{"line_number":18,"context_line":"* Release note required"},{"line_number":19,"context_line":"* Do we need a stopper migration or something of that ilk?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Based on profiling, removing the in_ ought to make things"},{"line_number":22,"context_line":"more tidy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_496db430","line":19,"range":{"start_line":19,"start_character":2,"end_line":19,"end_character":58},"updated":"2019-05-08 02:19:18.000000000","message":"Probably, yes.","commit_id":"e7a94e469265edffbba57b15aa54a35b7cca60c6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8582d7449d216c00a5e327bb1b98857b1fc03f9e","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* I\u0027m out of brain and I don\u0027t know if I\u0027m done."},{"line_number":18,"context_line":"* Release note required"},{"line_number":19,"context_line":"* Do we need a stopper migration or something of that ilk?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Based on profiling, removing the in_ ought to make things"},{"line_number":22,"context_line":"more tidy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_aa2522c4","line":19,"range":{"start_line":19,"start_character":2,"end_line":19,"end_character":58},"in_reply_to":"dfbec78f_496db430","updated":"2019-05-09 17:32:54.000000000","message":"(12:03:59 PM) mriedem: on https://review.opendev.org/#/c/657716/ i\u0027d think we could do a blocker migration of sorts in train placement such that you can\u0027t upgrade until you\u0027ve done that online data migration in stein\n(12:05:00 PM) mriedem: seems like a simple \"SELECT COUNT(id) FROM resource_providers WHERE root_provider_id IS NULL;\" would do the trick yeah?\n(12:05:14 PM) mriedem: if that\u0027s more than 0 you didn\u0027t do your homework\n(12:07:06 PM) mriedem: we already have a placement-status upgrade check for it, we could change that to an error and drop the code in train\n(12:07:15 PM) mriedem: drop the compat code i mean","commit_id":"e7a94e469265edffbba57b15aa54a35b7cca60c6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74094d151fe3da2d1cadee70a545c52e3e8148d7","unresolved":false,"context_lines":[{"line_number":15,"context_line":"This is a WIP because:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* I\u0027m out of brain and I don\u0027t know if I\u0027m done."},{"line_number":18,"context_line":"* Release note required"},{"line_number":19,"context_line":"* Do we need a stopper migration or something of that ilk?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Based on profiling, removing the in_ ought to make things"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_200633d0","line":18,"updated":"2019-05-09 18:56:39.000000000","message":"That\u0027s in the bottom change in this series now.","commit_id":"f1c141f68e911bb557d51003995707011ba9f993"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"74094d151fe3da2d1cadee70a545c52e3e8148d7","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* I\u0027m out of brain and I don\u0027t know if I\u0027m done."},{"line_number":18,"context_line":"* Release note required"},{"line_number":19,"context_line":"* Do we need a stopper migration or something of that ilk?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Based on profiling, removing the in_ ought to make things"},{"line_number":22,"context_line":"more tidy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dfbec78f_e0281b35","line":19,"updated":"2019-05-09 18:56:39.000000000","message":"That\u0027s the 2nd change in the series, but unsure how to test it properly like we can do in the nova migrations. You basically need to run the first migration which creates the tables, but then before the blocker migration inject some bogus record and make sure it blows up. I\u0027m not sure how easy that injection is with alembic.\n\nI did test the blocker migration manually and it works, but we should have a test if it\u0027s not really hard to add one.","commit_id":"f1c141f68e911bb557d51003995707011ba9f993"}],"placement/objects/allocation_candidate.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a61e762916ef877071e6771c56eb9f3a230f4493","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return _alloc_candidates_single_provider(context, resources, rp_tuples)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    @classmethod"},{"line_number":177,"context_line":"    # TODO(efried): This is only a writer context because it accesses the"},{"line_number":178,"context_line":"    # resource_providers table via ResourceProvider.get_by_uuid, which does"},{"line_number":179,"context_line":"    # data migration to populate the root_provider_uuid.  Change this back to a"},{"line_number":180,"context_line":"    # reader when that migration is no longer happening."},{"line_number":181,"context_line":"    @db_api.placement_context_manager.writer"},{"line_number":182,"context_line":"    def _get_by_requests(cls, context, requests, limit\u003dNone,"},{"line_number":183,"context_line":"                         group_policy\u003dNone, nested_aware\u003dTrue):"},{"line_number":184,"context_line":"        # TODO(jaypipes): Make a RequestGroupContext object and put these"},{"line_number":185,"context_line":"        # pieces of information in there, passing the context to the various"}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_959aca6b","line":182,"range":{"start_line":177,"start_character":0,"end_line":182,"end_character":1},"updated":"2019-05-22 21:42:05.000000000","message":".","commit_id":"e0efa65e296eea041f88e38cee898f1e7b785798"}],"placement/objects/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a61e762916ef877071e6771c56eb9f3a230f4493","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    ret \u003d {}"},{"line_number":644,"context_line":"    for r in context.session.execute(sel):"},{"line_number":645,"context_line":"        d \u003d dict(r)"},{"line_number":646,"context_line":"        ret[d[\u0027id\u0027]] \u003d ProviderIds(**d)"},{"line_number":647,"context_line":"    return ret"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_124a707f","line":646,"range":{"start_line":645,"start_character":8,"end_line":646,"end_character":39},"updated":"2019-05-22 21:42:05.000000000","message":"Is `r` dict-ish enough that we can now collapse this to\n\n ret[r[\u0027id\u0027]] \u003d ProviderIds(**r)\n\n?","commit_id":"e0efa65e296eea041f88e38cee898f1e7b785798"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5564adc5f843d5141d079f1c23a5a8e94cbfeee8","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    ret \u003d {}"},{"line_number":644,"context_line":"    for r in context.session.execute(sel):"},{"line_number":645,"context_line":"        d \u003d dict(r)"},{"line_number":646,"context_line":"        ret[d[\u0027id\u0027]] \u003d ProviderIds(**d)"},{"line_number":647,"context_line":"    return ret"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bfb3d3c7_a7f9ddc8","line":646,"range":{"start_line":645,"start_character":8,"end_line":646,"end_character":39},"in_reply_to":"bfb3d3c7_124a707f","updated":"2019-05-23 09:16:47.000000000","message":"yes","commit_id":"e0efa65e296eea041f88e38cee898f1e7b785798"}]}
