)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c69676eecc563155ffb038eacad4dd8627d559a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Those locks will improve the scheduler decisions both in FilterScheduler"},{"line_number":18,"context_line":"and CachedScheduler because of more accurate host state caches."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The following patchs will implement the claims for pci and numa"},{"line_number":21,"context_line":"resources and merge compute node claim logics if possible."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I3759233a56d28f7153ee8c2f00a60ad22fe94e78"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a7b0d38_417d381b","line":20,"updated":"2015-12-23 14:25:52.000000000","message":"s/patchs/patches/","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"8844807788b3336f8eb204b465eb9a64240922f7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Those locks will improve the scheduler decisions both in FilterScheduler"},{"line_number":18,"context_line":"and CachedScheduler because of more accurate host state caches."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"The following patchs will implement the claims for pci and numa"},{"line_number":21,"context_line":"resources and merge compute node claim logics if possible."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I3759233a56d28f7153ee8c2f00a60ad22fe94e78"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a7b0d38_1e495060","line":20,"in_reply_to":"1a7b0d38_417d381b","updated":"2015-12-29 07:08:21.000000000","message":"Done","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"}],"nova/scheduler/filter_scheduler.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f3b14ae4ca64e42732c95628c642b99496e7f5c7","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        while len(weighed_hosts) \u003e 0:"},{"line_number":158,"context_line":"            chosen_host \u003d random.choice("},{"line_number":159,"context_line":"                    weighed_hosts[0:scheduler_host_subset_size])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Now consume the resources so the filter/weights"},{"line_number":162,"context_line":"            # will change for the next instance."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_3e6b5a20","line":159,"range":{"start_line":159,"start_character":36,"end_line":159,"end_character":62},"updated":"2015-12-23 18:58:48.000000000","message":"Not sure we need this anymore at all now. I\u0027ll get some more people to look at this, but I think we can deprecate this option now.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"8844807788b3336f8eb204b465eb9a64240922f7","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        while len(weighed_hosts) \u003e 0:"},{"line_number":158,"context_line":"            chosen_host \u003d random.choice("},{"line_number":159,"context_line":"                    weighed_hosts[0:scheduler_host_subset_size])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"            # Now consume the resources so the filter/weights"},{"line_number":162,"context_line":"            # will change for the next instance."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_54e33ea4","line":159,"range":{"start_line":159,"start_character":36,"end_line":159,"end_character":62},"in_reply_to":"1a7b0d38_3e6b5a20","updated":"2015-12-29 07:08:21.000000000","message":"IMO if there are multiple scheduler instances that are scheduling using similar flavors, this option might still be useful to avoid collisions to some extent. That\u0027s why I kept this.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c69676eecc563155ffb038eacad4dd8627d559a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                LOG.debug(\"Selected host: %(host)s\", {\u0027host\u0027: chosen_host})"},{"line_number":172,"context_line":"                return chosen_host"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        LOG.debug(\"No host available!\")"},{"line_number":175,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_a1889ce8","line":174,"updated":"2015-12-23 14:25:52.000000000","message":"Will there be enough information in the logging output for this to be associated with a RequestSpec?","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"8844807788b3336f8eb204b465eb9a64240922f7","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                LOG.debug(\"Selected host: %(host)s\", {\u0027host\u0027: chosen_host})"},{"line_number":172,"context_line":"                return chosen_host"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        LOG.debug(\"No host available!\")"},{"line_number":175,"context_line":"        return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_b46ce235","line":174,"in_reply_to":"1a7b0d38_a1889ce8","updated":"2015-12-29 07:08:21.000000000","message":"Added spec_obj logging.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"378092125fb6b85dfe6477358535bedafd9ac6bc","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                        {\u0027host\u0027: chosen_host, \u0027failure\u0027: e})"},{"line_number":169,"context_line":"                weighed_hosts.remove(chosen_host)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            # TODO(Yingxin): Temporarily keep this strange logic, remove this"},{"line_number":172,"context_line":"            # horrible catch-all once NUMA and PCI are properly claimed."},{"line_number":173,"context_line":"            except Exception as ex:"},{"line_number":174,"context_line":"                # Ignores exception raised from consume_from_request() so that"},{"line_number":175,"context_line":"                # booting instance would fail in the resource claim of compute"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_7ebb2473","line":172,"range":{"start_line":171,"start_character":12,"end_line":172,"end_character":72},"updated":"2015-12-31 11:37:20.000000000","message":"So we should be claiming NUMA and PCI properly NOW and raising ComputREsourcesUnavailable and not have this exception handler at all - not move it a level up","commit_id":"ca30a338b6e995d5c11454465173647fd83e90c3"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"ce85ce7f70787109cae16fcb7557379ce1b668f1","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                        {\u0027host\u0027: chosen_host, \u0027failure\u0027: e})"},{"line_number":169,"context_line":"                weighed_hosts.remove(chosen_host)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            # TODO(Yingxin): Temporarily keep this strange logic, remove this"},{"line_number":172,"context_line":"            # horrible catch-all once NUMA and PCI are properly claimed."},{"line_number":173,"context_line":"            except Exception as ex:"},{"line_number":174,"context_line":"                # Ignores exception raised from consume_from_request() so that"},{"line_number":175,"context_line":"                # booting instance would fail in the resource claim of compute"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_cdde126d","line":172,"range":{"start_line":171,"start_character":12,"end_line":172,"end_character":72},"in_reply_to":"fa69d971_7ebb2473","updated":"2016-01-02 08:30:54.000000000","message":"Removed this just after PCI and NUMA are correctly claimed in  https://review.openstack.org/#/c/262937/","commit_id":"ca30a338b6e995d5c11454465173647fd83e90c3"}],"nova/scheduler/host_manager.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f3b14ae4ca64e42732c95628c642b99496e7f5c7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return_value \u003d None"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            return_value \u003d function(self, spec_obj)"},{"line_number":87,"context_line":"        except Exception as e:"},{"line_number":88,"context_line":"            # Ignores exception raised from consume_from_request() so that"},{"line_number":89,"context_line":"            # booting instance would fail in the resource claim of compute"},{"line_number":90,"context_line":"            # node, other suitable node may be chosen during scheduling retry."},{"line_number":91,"context_line":"            LOG.warning(_LW(\"Selected host: %(host)s failed to consume from \""},{"line_number":92,"context_line":"                            \"instance. Error: %(error)s\"),"},{"line_number":93,"context_line":"                        {\u0027host\u0027: self.host, \u0027error\u0027: e})"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # Reraise ComputeResourcesUnavailable to let retries occur as"},{"line_number":96,"context_line":"            # early as possible."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_becc2a36","line":93,"range":{"start_line":87,"start_character":7,"end_line":93,"end_character":56},"updated":"2015-12-23 18:58:48.000000000","message":"So if we do this properly - we should be able to remove this horrible catch-all - this will only fail for NUMA and PCI I think, so if we do the previous patch as I suggested, this can go away.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"8844807788b3336f8eb204b465eb9a64240922f7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return_value \u003d None"},{"line_number":85,"context_line":"        try:"},{"line_number":86,"context_line":"            return_value \u003d function(self, spec_obj)"},{"line_number":87,"context_line":"        except Exception as e:"},{"line_number":88,"context_line":"            # Ignores exception raised from consume_from_request() so that"},{"line_number":89,"context_line":"            # booting instance would fail in the resource claim of compute"},{"line_number":90,"context_line":"            # node, other suitable node may be chosen during scheduling retry."},{"line_number":91,"context_line":"            LOG.warning(_LW(\"Selected host: %(host)s failed to consume from \""},{"line_number":92,"context_line":"                            \"instance. Error: %(error)s\"),"},{"line_number":93,"context_line":"                        {\u0027host\u0027: self.host, \u0027error\u0027: e})"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # Reraise ComputeResourcesUnavailable to let retries occur as"},{"line_number":96,"context_line":"            # early as possible."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_5e3cb8c7","line":93,"range":{"start_line":87,"start_character":7,"end_line":93,"end_character":56},"in_reply_to":"1a7b0d38_becc2a36","updated":"2015-12-29 07:08:21.000000000","message":"Of course, the \u0027catch-all\u0027 will be removed once NUMA and PCI are handled correctly.\n\nAnd there is no need to use such complicated decorator simply to update timestamp.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c69676eecc563155ffb038eacad4dd8627d559a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            LOG.warning(_LW(\"Selected host: %(host)s failed to consume from \""},{"line_number":92,"context_line":"                            \"instance. Error: %(error)s\"),"},{"line_number":93,"context_line":"                        {\u0027host\u0027: self.host, \u0027error\u0027: e})"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # Reraise ComputeResourcesUnavailable to let retries occur as"},{"line_number":96,"context_line":"            # early as possible."},{"line_number":97,"context_line":"            if isinstance(e, exception.ComputeResourcesUnavailable):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_c4829652","line":94,"updated":"2015-12-23 14:25:52.000000000","message":"I think you should separate this block into a separate except block rather than an \u0027is instance\u0027 check. The above log as a warning should have different impact than the early retries that will come from the ComputeResourcesUnavailable. That should perhaps have a debug log, but not a warning?","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"8844807788b3336f8eb204b465eb9a64240922f7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            LOG.warning(_LW(\"Selected host: %(host)s failed to consume from \""},{"line_number":92,"context_line":"                            \"instance. Error: %(error)s\"),"},{"line_number":93,"context_line":"                        {\u0027host\u0027: self.host, \u0027error\u0027: e})"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"            # Reraise ComputeResourcesUnavailable to let retries occur as"},{"line_number":96,"context_line":"            # early as possible."},{"line_number":97,"context_line":"            if isinstance(e, exception.ComputeResourcesUnavailable):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_286096ce","line":94,"in_reply_to":"1a7b0d38_c4829652","updated":"2015-12-29 07:08:21.000000000","message":"There are other kinds of exceptions coming from PCI and NUMA consumption, so warnings will be raised from them. It is bad to catch all the exceptions during resource consuming, and I\u0027m still in the progress to eliminate them.","commit_id":"b87a5fc93170b2617763166a7e59c773ee545aa6"}]}
