)]}'
{"ironic/conductor/manager.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a501c4e8a973efc3484833c3533e6d894d227c0b","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            if state \u003d\u003d states.DEPLOYING:"},{"line_number":1097,"context_line":"                filters[\u0027reserved\u0027] \u003d True"},{"line_number":1098,"context_line":"                self._clear_reservation(context, filters)"},{"line_number":1099,"context_line":"                filters[\u0027reserved\u0027] \u003d False"},{"line_number":1100,"context_line":"            sort_key \u003d \u0027provision_updated_at\u0027"},{"line_number":1101,"context_line":"            callback_method \u003d utils.cleanup_after_timeout"},{"line_number":1102,"context_line":"            err_handler \u003d provisioning_error_handler"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_f8e17c9b","line":1099,"updated":"2015-06-22 09:39:39.000000000","message":"Why setting it to False?!","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"4a9207c1f6f866bfde118d3b396c18149e50724d","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            if state \u003d\u003d states.DEPLOYING:"},{"line_number":1097,"context_line":"                filters[\u0027reserved\u0027] \u003d True"},{"line_number":1098,"context_line":"                self._clear_reservation(context, filters)"},{"line_number":1099,"context_line":"                filters[\u0027reserved\u0027] \u003d False"},{"line_number":1100,"context_line":"            sort_key \u003d \u0027provision_updated_at\u0027"},{"line_number":1101,"context_line":"            callback_method \u003d utils.cleanup_after_timeout"},{"line_number":1102,"context_line":"            err_handler \u003d provisioning_error_handler"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_7ff05a67","line":1099,"in_reply_to":"fa32b979_adf13f6c","updated":"2015-06-25 02:37:25.000000000","message":"It will break the lock only if timeout for deploy by _clear_reservation().\n\nThen we have nodes without lock. They can come from restart conductor or above action.\n\nThen filter again to set it fail by fail_if_in_state(), this was my idea.","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e2ba2fb9da0650ffc562e7b19082ba54943e22e0","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"            if state \u003d\u003d states.DEPLOYING:"},{"line_number":1097,"context_line":"                filters[\u0027reserved\u0027] \u003d True"},{"line_number":1098,"context_line":"                self._clear_reservation(context, filters)"},{"line_number":1099,"context_line":"                filters[\u0027reserved\u0027] \u003d False"},{"line_number":1100,"context_line":"            sort_key \u003d \u0027provision_updated_at\u0027"},{"line_number":1101,"context_line":"            callback_method \u003d utils.cleanup_after_timeout"},{"line_number":1102,"context_line":"            err_handler \u003d provisioning_error_handler"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_adf13f6c","line":1099,"in_reply_to":"fa32b979_f8e17c9b","updated":"2015-06-23 08:39:00.000000000","message":"I mean, we can\u0027t simple break the lock on every check...","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a501c4e8a973efc3484833c3533e6d894d227c0b","unresolved":false,"context_lines":[{"line_number":1101,"context_line":"            callback_method \u003d utils.cleanup_after_timeout"},{"line_number":1102,"context_line":"            err_handler \u003d provisioning_error_handler"},{"line_number":1103,"context_line":"            self._fail_if_in_state(context, filters, state,"},{"line_number":1104,"context_line":"                                   sort_key, callback_method, err_handler)"},{"line_number":1105,"context_line":""},{"line_number":1106,"context_line":"    def _clear_reservation(self, context, filters):"},{"line_number":1107,"context_line":"        \"\"\"Clear the reserved nodes."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_d89278f6","line":1104,"updated":"2015-06-22 09:39:39.000000000","message":"Is it the right place for it? Cause this will attempt to clean the reservation on every check, it doesn\u0027t seem right.\n\nWe have the locks for a reason (to avoid other conductors to take over the node mid-operation).\n\nWe at least need to know whether the conductor that is currently managing the node is dead before breaking the lock like that.","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"4a9207c1f6f866bfde118d3b396c18149e50724d","unresolved":false,"context_lines":[{"line_number":1101,"context_line":"            callback_method \u003d utils.cleanup_after_timeout"},{"line_number":1102,"context_line":"            err_handler \u003d provisioning_error_handler"},{"line_number":1103,"context_line":"            self._fail_if_in_state(context, filters, state,"},{"line_number":1104,"context_line":"                                   sort_key, callback_method, err_handler)"},{"line_number":1105,"context_line":""},{"line_number":1106,"context_line":"    def _clear_reservation(self, context, filters):"},{"line_number":1107,"context_line":"        \"\"\"Clear the reserved nodes."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_3f109258","line":1104,"in_reply_to":"fa32b979_d89278f6","updated":"2015-06-25 02:37:25.000000000","message":"It will not clear the reservation on every check, timeout is the condition . the conductor that is currently managing the node is dead is one case, but maybe there is some other cases but I am not sure. Anyway should we really check that here or only trigger the action if it\u0027s timeout?","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"af65e70da14e9382fdce00a8512a3f3940151063","unresolved":false,"context_lines":[{"line_number":1106,"context_line":"    def _clear_reservation(self, context, filters):"},{"line_number":1107,"context_line":"        \"\"\"Clear the reserved nodes."},{"line_number":1108,"context_line":""},{"line_number":1109,"context_line":"        Attempt to clear a lock if nodes stuck on tranistion with a reservation"},{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"        \"\"\""},{"line_number":1112,"context_line":"        if not (filters.get(\u0027reserved\u0027) is True):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_9e94f937","line":1109,"updated":"2015-06-15 05:40:42.000000000","message":"s/tranistion/transition/","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a501c4e8a973efc3484833c3533e6d894d227c0b","unresolved":false,"context_lines":[{"line_number":1110,"context_line":""},{"line_number":1111,"context_line":"        \"\"\""},{"line_number":1112,"context_line":"        if not (filters.get(\u0027reserved\u0027) is True):"},{"line_number":1113,"context_line":"            return"},{"line_number":1114,"context_line":"        fields \u003d [\u0027id\u0027, \u0027reservation\u0027]"},{"line_number":1115,"context_line":"        node_iter \u003d self.iter_nodes(fields\u003dfields, filters\u003dfilters)"},{"line_number":1116,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_b8cbf41d","line":1113,"updated":"2015-06-22 09:39:39.000000000","message":"If not filters.get(\u0027reserved\u0027):\n      return","commit_id":"96e4e7a096cc1da6a427a28b25508e304d51e382"}]}
