)]}'
{"nova/scheduler/host_manager.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"cec057477322659f78d00f851f1c63e7e1354158","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def consume_from_request(self, spec_obj):"},{"line_number":238,"context_line":"        \"\"\"Incrementally update host state from an RequestSpec object.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        @utils.synchronized(self.lock_name)"},{"line_number":241,"context_line":"        @set_update_time_on_success"},{"line_number":242,"context_line":"        def _locked(self, spec_obj):"},{"line_number":243,"context_line":"            self._locked_consume_from_request(spec_obj)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_5e9f4603","line":241,"range":{"start_line":240,"start_character":8,"end_line":241,"end_character":35},"updated":"2015-12-23 19:00:10.000000000","message":"Same comment as on the previous patch - I am not sure we need this.","commit_id":"f63c0d6736d65e3d49c661d4f7b43d4655538216"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f5d3d7e1459079b6c51768d337eca24a0efb8657","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def consume_from_request(self, spec_obj):"},{"line_number":238,"context_line":"        \"\"\"Incrementally update host state from an RequestSpec object.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        @utils.synchronized(self.lock_name)"},{"line_number":241,"context_line":"        @set_update_time_on_success"},{"line_number":242,"context_line":"        def _locked(self, spec_obj):"},{"line_number":243,"context_line":"            self._locked_consume_from_request(spec_obj)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_7e49e28a","line":241,"range":{"start_line":240,"start_character":8,"end_line":241,"end_character":35},"in_reply_to":"1a7b0d38_5e9f4603","updated":"2015-12-23 19:02:06.000000000","message":"Also I think we need a big fat comment both here and in update to explain this. It\u0027s far from obvous why we are doing this to the first (or 5th even) time reader of the code.","commit_id":"f63c0d6736d65e3d49c661d4f7b43d4655538216"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"945c056e8427fa16261e8ac940e8191c285d4947","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def consume_from_request(self, spec_obj):"},{"line_number":238,"context_line":"        \"\"\"Incrementally update host state from an RequestSpec object.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        @utils.synchronized(self.lock_name)"},{"line_number":241,"context_line":"        @set_update_time_on_success"},{"line_number":242,"context_line":"        def _locked(self, spec_obj):"},{"line_number":243,"context_line":"            self._locked_consume_from_request(spec_obj)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_579b8d72","line":241,"range":{"start_line":240,"start_character":8,"end_line":241,"end_character":35},"in_reply_to":"1a7b0d38_5e9f4603","updated":"2015-12-24 17:00:52.000000000","message":"I\u0027m still figuring it out whether there is a way not to use this strange closure as explained in the previous patch.","commit_id":"f63c0d6736d65e3d49c661d4f7b43d4655538216"},{"author":{"_account_id":15648,"name":"Yingxin","email":"yingxin.cheng@intel.com","username":"Yingxin"},"change_message_id":"945c056e8427fa16261e8ac940e8191c285d4947","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    def consume_from_request(self, spec_obj):"},{"line_number":238,"context_line":"        \"\"\"Incrementally update host state from an RequestSpec object.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        @utils.synchronized(self.lock_name)"},{"line_number":241,"context_line":"        @set_update_time_on_success"},{"line_number":242,"context_line":"        def _locked(self, spec_obj):"},{"line_number":243,"context_line":"            self._locked_consume_from_request(spec_obj)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_57a62d54","line":241,"range":{"start_line":240,"start_character":8,"end_line":241,"end_character":35},"in_reply_to":"1a7b0d38_7e49e28a","updated":"2015-12-24 17:00:52.000000000","message":"Added explanations. Hope that I make readers comprehend with my poor English.","commit_id":"f63c0d6736d65e3d49c661d4f7b43d4655538216"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"2e3cba037232f059b63f08f9591fc42904a63553","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        @utils.synchronized(self._lock_name)"},{"line_number":161,"context_line":"        def _locked_update(self, compute, service, aggregates, inst_dict):"},{"line_number":162,"context_line":"            # Scheduler API is inherently multi-threaded as every incoming RPC"},{"line_number":163,"context_line":"            # message will be dispatched in it\u0027s own green thread. So the"},{"line_number":164,"context_line":"            # shared host state should be updated in a consistent way to make"},{"line_number":165,"context_line":"            # sure its data is valid under concurrent write operations."},{"line_number":166,"context_line":"            if compute is not None:"},{"line_number":167,"context_line":"                LOG.debug(\"Update host state from compute node: %s\", compute)"},{"line_number":168,"context_line":"                self._update_from_compute_node(compute)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_fe03940d","line":165,"range":{"start_line":162,"start_character":11,"end_line":165,"end_character":70},"updated":"2015-12-31 11:40:45.000000000","message":"This should technically be in the separate patch, but it\u0027s not a big deal","commit_id":"45e90f8ed371cd56340e31e27cb1707aa7bdb1f0"}]}
