)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"6da29b4d7f16103ad31f739ad2cc96797c25fbf9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matt Riedemann \u003cmriedem.os@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-05 13:30:25 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cache host to cell mapping in HostManager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instances per host are not cached in the HostManager"},{"line_number":10,"context_line":"we lookup the HostMapping per candidate compute node during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_0f3c8ebd","line":7,"updated":"2019-06-07 10:16:18.000000000","message":"Is this intended only for backport ? since like you said here: https://review.opendev.org/#/c/623558/, both patches would not be necessary in which case the https://review.opendev.org/#/c/623558/ would have to go on top of this.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38b9f8ce8642f7def60a0944a9bac20778d9a66c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matt Riedemann \u003cmriedem.os@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-05 13:30:25 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cache host to cell mapping in HostManager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instances per host are not cached in the HostManager"},{"line_number":10,"context_line":"we lookup the HostMapping per candidate compute node during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_2608852a","line":7,"in_reply_to":"9fb8cfa7_0f3c8ebd","updated":"2019-06-07 16:58:48.000000000","message":"I haven\u0027t really thought about backports. This change seems isolated enough that it could be backported. I\u0027m also not sure they are mutually exclusive changes since Jay\u0027s change doesn\u0027t touch the method I\u0027m doing the caching for. But I probably wouldn\u0027t work on backporting Jay\u0027s change, so yeah his change would have to be rebased on top of this if we do this. This was mostly an idea and if people are OK with it.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"c78b1347a9ceb10425c707f7c53223c5c2f419c9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matt Riedemann \u003cmriedem.os@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-05 13:30:25 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cache host to cell mapping in HostManager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If the instances per host are not cached in the HostManager"},{"line_number":10,"context_line":"we lookup the HostMapping per candidate compute node during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_a984460d","line":7,"in_reply_to":"9fb8cfa7_2608852a","updated":"2019-06-07 17:29:14.000000000","message":"\u003e I haven\u0027t really thought about backports. This change seems\n \u003e isolated enough that it could be backported. I\u0027m also not sure they\n \u003e are mutually exclusive changes since Jay\u0027s change doesn\u0027t touch the\n \u003e method I\u0027m doing the caching for. \n\nyeah the only relation I saw was that if we merge Jay\u0027s change then we will no longer reach this spot https://review.opendev.org/#/c/663388/1/nova/scheduler/host_manager.py@869 since he already deals with the track_instance_changes\u003dFalse case above in his code. Then this caching thing per scheduling will become invalid although we do call _get_instances_by_host from other places like update/delete etc.\n\n \u003e But I probably wouldn\u0027t work on\n \u003e backporting Jay\u0027s change, \n\nfair enough. its too big I guess.\n\n \u003e so yeah his change would have to be\n \u003e rebased on top of this if we do this. This was mostly an idea and\n \u003e if people are OK with it.\n\nI\u0027ll see if I can measure improvements with this patch.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77aed118b8eb80e08cf6ddcdf0f6f509ef21c15e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from the cells cache (which is a dict, keyed by cell uuid, to the"},{"line_number":21,"context_line":"CellMapping for that cell)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The host to instances cache is only enabled if config option"},{"line_number":24,"context_line":"[filter_scheduler]/track_instance_changes\u003dTrue which some might"},{"line_number":25,"context_line":"turn off if the computes cannot RPC cast information the scheduler."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ic6b1edfad2e384eb32c6942edc522ee301123cbc"},{"line_number":28,"context_line":"Related-Bug: #1737465"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_d0c20a34","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":67},"updated":"2019-08-06 13:48:22.000000000","message":"As cdent pointed out in IRC I could probably just remove this to avoid confusion.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"abc3d67693123b9a28bd0bc5bdd4083092810d18","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from the cells cache (which is a dict, keyed by cell uuid, to the"},{"line_number":21,"context_line":"CellMapping for that cell)."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The host to instances cache is only enabled if config option"},{"line_number":24,"context_line":"[filter_scheduler]/track_instance_changes\u003dTrue which some might"},{"line_number":25,"context_line":"turn off if the computes cannot RPC cast information the scheduler."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ic6b1edfad2e384eb32c6942edc522ee301123cbc"},{"line_number":28,"context_line":"Related-Bug: #1737465"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_1a1e780b","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":67},"in_reply_to":"7faddb67_d0c20a34","updated":"2019-08-06 20:14:13.000000000","message":"Done","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"}],"doc/source/cli/nova-manage.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"31b2d4603eaa7d227280608c681b1f18f5e75deb","unresolved":false,"context_lines":[{"line_number":371,"context_line":"    .. note::"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"      The scheduler caches host-to-cell mapping information so when deleting"},{"line_number":374,"context_line":"      a host the scheduler may need to be restarted or sent the SIGHUP signal."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"Placement"},{"line_number":377,"context_line":"~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_6d2fb43e","line":374,"range":{"start_line":374,"start_character":64,"end_line":374,"end_character":70},"updated":"2019-08-06 21:09:32.000000000","message":"``SIGHUP``","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"6da29b4d7f16103ad31f739ad2cc96797c25fbf9","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        # Check to see if we have the host in our cache."},{"line_number":819,"context_line":"        if host_name in self.host_to_cell_uuid:"},{"line_number":820,"context_line":"            cell_uuid \u003d self.host_to_cell_uuid[host_name]"},{"line_number":821,"context_line":"            if cell_uuid in self.cells:"},{"line_number":822,"context_line":"                return self.cells[cell_uuid]"},{"line_number":823,"context_line":"            # Something is wrong so log a warning and just fall through to"},{"line_number":824,"context_line":"            # lookup the HostMapping."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_bd57a902","line":821,"range":{"start_line":821,"start_character":28,"end_line":821,"end_character":38},"updated":"2019-06-07 10:16:18.000000000","message":"This is a list not dict. So it won\u0027t work, also shows the test doesn\u0027t cover it. -1 for this. \n\nPlus although self.cells dict would be enough, the more right thing is self.enabled_cells cache even if we would not get a cell that is not in enabled_cells cache.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f9665f9801f45ce8d82ccfa30f1955c5debe9671","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        # Check to see if we have the host in our cache."},{"line_number":819,"context_line":"        if host_name in self.host_to_cell_uuid:"},{"line_number":820,"context_line":"            cell_uuid \u003d self.host_to_cell_uuid[host_name]"},{"line_number":821,"context_line":"            if cell_uuid in self.cells:"},{"line_number":822,"context_line":"                return self.cells[cell_uuid]"},{"line_number":823,"context_line":"            # Something is wrong so log a warning and just fall through to"},{"line_number":824,"context_line":"            # lookup the HostMapping."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_092c7297","line":821,"range":{"start_line":821,"start_character":28,"end_line":821,"end_character":38},"in_reply_to":"9fb8cfa7_0903120f","updated":"2019-06-07 17:00:13.000000000","message":"I didn\u0027t use enabled_cells because that is a subset of the cells dict and don\u0027t really want to couple this caching code to how we actually get the list of hosts. IOW, this is more future-proof.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38b9f8ce8642f7def60a0944a9bac20778d9a66c","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        # Check to see if we have the host in our cache."},{"line_number":819,"context_line":"        if host_name in self.host_to_cell_uuid:"},{"line_number":820,"context_line":"            cell_uuid \u003d self.host_to_cell_uuid[host_name]"},{"line_number":821,"context_line":"            if cell_uuid in self.cells:"},{"line_number":822,"context_line":"                return self.cells[cell_uuid]"},{"line_number":823,"context_line":"            # Something is wrong so log a warning and just fall through to"},{"line_number":824,"context_line":"            # lookup the HostMapping."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_0903120f","line":821,"range":{"start_line":821,"start_character":28,"end_line":821,"end_character":38},"in_reply_to":"9fb8cfa7_bd57a902","updated":"2019-06-07 16:58:48.000000000","message":"self.cells is now a dict, see the change below this in the series. I separated those out to keep each change smaller.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77aed118b8eb80e08cf6ddcdf0f6f509ef21c15e","unresolved":false,"context_lines":[{"line_number":854,"context_line":"        \"\"\"Gets the host instance info from the compute host."},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        Some older compute nodes may not be sending instance change updates to"},{"line_number":857,"context_line":"        the Scheduler; other sites may disable this feature for performance"},{"line_number":858,"context_line":"        reasons. In either of these cases, there will either be no information"},{"line_number":859,"context_line":"        for the host, or the \u0027updated\u0027 value for that host dict will be False."},{"line_number":860,"context_line":"        In those cases, we need to grab the current InstanceList instead of"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_b0bc2ebb","line":857,"range":{"start_line":857,"start_character":47,"end_line":857,"end_character":59},"updated":"2019-08-06 13:48:22.000000000","message":"\"this feature\" \u003d\u003d track_instance_changes - we could make that more clear.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77aed118b8eb80e08cf6ddcdf0f6f509ef21c15e","unresolved":false,"context_lines":[{"line_number":853,"context_line":"    def _get_instance_info(self, context, compute):"},{"line_number":854,"context_line":"        \"\"\"Gets the host instance info from the compute host."},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        Some older compute nodes may not be sending instance change updates to"},{"line_number":857,"context_line":"        the Scheduler; other sites may disable this feature for performance"},{"line_number":858,"context_line":"        reasons. In either of these cases, there will either be no information"},{"line_number":859,"context_line":"        for the host, or the \u0027updated\u0027 value for that host dict will be False."},{"line_number":860,"context_line":"        In those cases, we need to grab the current InstanceList instead of"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_f06f065d","line":857,"range":{"start_line":856,"start_character":8,"end_line":857,"end_character":22},"updated":"2019-08-06 13:48:22.000000000","message":"We could likely remove this, it was probably just a comment for rolling upgrades when this feature was added in Kilo:\n\nhttps://review.opendev.org/#/c/160511","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"abc3d67693123b9a28bd0bc5bdd4083092810d18","unresolved":false,"context_lines":[{"line_number":853,"context_line":"    def _get_instance_info(self, context, compute):"},{"line_number":854,"context_line":"        \"\"\"Gets the host instance info from the compute host."},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        Some older compute nodes may not be sending instance change updates to"},{"line_number":857,"context_line":"        the Scheduler; other sites may disable this feature for performance"},{"line_number":858,"context_line":"        reasons. In either of these cases, there will either be no information"},{"line_number":859,"context_line":"        for the host, or the \u0027updated\u0027 value for that host dict will be False."},{"line_number":860,"context_line":"        In those cases, we need to grab the current InstanceList instead of"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_3ada544a","line":857,"range":{"start_line":856,"start_character":8,"end_line":857,"end_character":22},"in_reply_to":"7faddb67_f06f065d","updated":"2019-08-06 20:14:13.000000000","message":"Will clean this up separately.","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77aed118b8eb80e08cf6ddcdf0f6f509ef21c15e","unresolved":false,"context_lines":[{"line_number":865,"context_line":"        if host_info and host_info.get(\"updated\"):"},{"line_number":866,"context_line":"            inst_dict \u003d host_info[\"instances\"]"},{"line_number":867,"context_line":"        else:"},{"line_number":868,"context_line":"            # Host is running old version, or updates aren\u0027t flowing."},{"line_number":869,"context_line":"            inst_dict \u003d self._get_instances_by_host(context, host_name)"},{"line_number":870,"context_line":"        return inst_dict"},{"line_number":871,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_50961a40","line":868,"range":{"start_line":868,"start_character":14,"end_line":868,"end_character":42},"updated":"2019-08-06 13:48:22.000000000","message":"same","commit_id":"a59a373a512bb028dacdd720327f92a4c3ec1186"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"50d80d151835a652b0d912e6f554383c9b641cf5","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                return self.cells[cell_uuid]"},{"line_number":843,"context_line":"            # Something is wrong so log a warning and just fall through to"},{"line_number":844,"context_line":"            # lookup the HostMapping."},{"line_number":845,"context_line":"            LOG.warning(\u0027Host %s is expected to be in cell %s but that cell \u0027"},{"line_number":846,"context_line":"                        \u0027uuid was not found in our cache. The service may \u0027"},{"line_number":847,"context_line":"                        \u0027need to be restarted to refresh the cache.\u0027,"},{"line_number":848,"context_line":"                        host_name, cell_uuid)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"        # We have not cached this host yet so get the HostMapping, cache the"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_953c3931","line":847,"range":{"start_line":845,"start_character":0,"end_line":847,"end_character":69},"updated":"2019-08-09 17:06:11.000000000","message":"Why would one need to restart a service...","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ac283d2ad0f00302adb19290c014bbe3917807c9","unresolved":false,"context_lines":[{"line_number":842,"context_line":"                return self.cells[cell_uuid]"},{"line_number":843,"context_line":"            # Something is wrong so log a warning and just fall through to"},{"line_number":844,"context_line":"            # lookup the HostMapping."},{"line_number":845,"context_line":"            LOG.warning(\u0027Host %s is expected to be in cell %s but that cell \u0027"},{"line_number":846,"context_line":"                        \u0027uuid was not found in our cache. The service may \u0027"},{"line_number":847,"context_line":"                        \u0027need to be restarted to refresh the cache.\u0027,"},{"line_number":848,"context_line":"                        host_name, cell_uuid)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"        # We have not cached this host yet so get the HostMapping, cache the"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_24a431b9","line":847,"range":{"start_line":845,"start_character":0,"end_line":847,"end_character":69},"in_reply_to":"7faddb67_953c3931","updated":"2019-08-10 00:04:51.000000000","message":"I don\u0027t expect this to happen, but wanted to log something in the off chance that the cells cache was wonky.","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"50d80d151835a652b0d912e6f554383c9b641cf5","unresolved":false,"context_lines":[{"line_number":851,"context_line":"        # result and return the CellMapping."},{"line_number":852,"context_line":"        hm \u003d objects.HostMapping.get_by_host(context, host_name)"},{"line_number":853,"context_line":"        cell_mapping \u003d hm.cell_mapping"},{"line_number":854,"context_line":"        self.host_to_cell_uuid[host_name] \u003d cell_mapping.uuid"},{"line_number":855,"context_line":"        return cell_mapping"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"    def _get_instances_by_host(self, context, host_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_d50b917a","line":854,"range":{"start_line":854,"start_character":0,"end_line":854,"end_character":61},"updated":"2019-08-09 17:06:11.000000000","message":"When we\u0027re regenerating everything here. Should we be erroring out above?","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f790888ef76c0be3966178d966bf0958b9a0efe0","unresolved":false,"context_lines":[{"line_number":851,"context_line":"        # result and return the CellMapping."},{"line_number":852,"context_line":"        hm \u003d objects.HostMapping.get_by_host(context, host_name)"},{"line_number":853,"context_line":"        cell_mapping \u003d hm.cell_mapping"},{"line_number":854,"context_line":"        self.host_to_cell_uuid[host_name] \u003d cell_mapping.uuid"},{"line_number":855,"context_line":"        return cell_mapping"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"    def _get_instances_by_host(self, context, host_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6970b6db","line":854,"range":{"start_line":854,"start_character":0,"end_line":854,"end_character":61},"in_reply_to":"7faddb67_049fb565","updated":"2019-08-12 10:18:44.000000000","message":"Ah, indeed. Missed that /o\\","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ac283d2ad0f00302adb19290c014bbe3917807c9","unresolved":false,"context_lines":[{"line_number":851,"context_line":"        # result and return the CellMapping."},{"line_number":852,"context_line":"        hm \u003d objects.HostMapping.get_by_host(context, host_name)"},{"line_number":853,"context_line":"        cell_mapping \u003d hm.cell_mapping"},{"line_number":854,"context_line":"        self.host_to_cell_uuid[host_name] \u003d cell_mapping.uuid"},{"line_number":855,"context_line":"        return cell_mapping"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"    def _get_instances_by_host(self, context, host_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_049fb565","line":854,"range":{"start_line":854,"start_character":0,"end_line":854,"end_character":61},"in_reply_to":"7faddb67_d50b917a","updated":"2019-08-10 00:04:51.000000000","message":"We\u0027re not doing anything about populating self.cells here, and that would get re-populated on restart/SIGHUP.","commit_id":"3a69fdb333e80f5ad2e025a9823b11483fad55c2"}]}
