)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"e9d1a1ab3a49c0bffd579b0fef4253a773fa0b5c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"well."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I902c0e558e15973f8cbcef27339c7c4c1983bcd9"},{"line_number":20,"context_line":"Related-bug: 1535918"},{"line_number":21,"context_line":"Related-bug: 1624052"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"9a629dbe_7a73154e","line":21,"range":{"start_line":20,"start_character":0,"end_line":21,"end_character":20},"updated":"2016-11-07 10:08:35.000000000","message":"both of these bugs are marked as fix released, please file a new bug for this fix","commit_id":"f921bfa1d9c9e2736057873e78dbb1a4ccdc0f76"}],"nova/compute/manager.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3b92c4a6f068cc8ab7601cc3288c87a1eebcb333","unresolved":false,"context_lines":[{"line_number":2823,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":2824,"context_line":"                LOG.debug(\u0027Some ports are still active\u0027)"},{"line_number":2825,"context_line":""},{"line_number":2826,"context_line":"            timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_ports_down)"},{"line_number":2827,"context_line":"            timer.start(interval\u003d0.5).wait()"},{"line_number":2828,"context_line":""},{"line_number":2829,"context_line":"        network_info \u003d compute_utils.get_nw_info_for_instance(instance)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_656bf1f1","line":2826,"updated":"2016-11-01 15:34:32.000000000","message":"should we have timeout support at here? If there are some fault at neutron side, this will be a loop running forever. Then instance will be stuck at rebuilding task_state, and user is no way to retrigger the evaucate again.","commit_id":"300d31040b3f6fdee1aa26b8fb90135eed11f5ac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"aab8b592491959493a72f5ea695dfaf590580332","unresolved":false,"context_lines":[{"line_number":2823,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":2824,"context_line":"                LOG.debug(\u0027Some ports are still active\u0027)"},{"line_number":2825,"context_line":""},{"line_number":2826,"context_line":"            timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_ports_down)"},{"line_number":2827,"context_line":"            timer.start(interval\u003d0.5).wait()"},{"line_number":2828,"context_line":""},{"line_number":2829,"context_line":"        network_info \u003d compute_utils.get_nw_info_for_instance(instance)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_ee0ee48a","line":2826,"in_reply_to":"ba5da102_63f049ff","updated":"2016-11-02 11:31:03.000000000","message":"Sorry, my mistake, I misunderstand the code.","commit_id":"300d31040b3f6fdee1aa26b8fb90135eed11f5ac"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fe14b784f58a51379d7a57970f869154363e85ee","unresolved":false,"context_lines":[{"line_number":2823,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":2824,"context_line":"                LOG.debug(\u0027Some ports are still active\u0027)"},{"line_number":2825,"context_line":""},{"line_number":2826,"context_line":"            timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_ports_down)"},{"line_number":2827,"context_line":"            timer.start(interval\u003d0.5).wait()"},{"line_number":2828,"context_line":""},{"line_number":2829,"context_line":"        network_info \u003d compute_utils.get_nw_info_for_instance(instance)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_63f049ff","line":2826,"in_reply_to":"ba5da102_656bf1f1","updated":"2016-11-01 16:03:46.000000000","message":"It looks like by default, the loop will stop on exception (stop_on_exception\u003dTrue) [1]. Which means that if the Neutron call throws a timeout, we\u0027ll break out of the loop, carry on with the evacuate, and if Neutron is actually down we\u0027ll never receive our vif-plugged event and the evacuate will fail. So I think we\u0027re good?\n\n[1] https://github.com/openstack/oslo.service/blob/master/oslo_service/loopingcall.py#L170","commit_id":"300d31040b3f6fdee1aa26b8fb90135eed11f5ac"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"e9d1a1ab3a49c0bffd579b0fef4253a773fa0b5c","unresolved":false,"context_lines":[{"line_number":2738,"context_line":"        else:"},{"line_number":2739,"context_line":"            return \u0027\u0027"},{"line_number":2740,"context_line":""},{"line_number":2741,"context_line":"    def _wait_for_ports_down(self, context, instance):"},{"line_number":2742,"context_line":"        def _ports_are_down():"},{"line_number":2743,"context_line":"            network_info \u003d self.network_api.get_instance_nw_info(context,"},{"line_number":2744,"context_line":"                                                                 instance)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a629dbe_a05f4074","line":2741,"range":{"start_line":2741,"start_character":8,"end_line":2741,"end_character":28},"updated":"2016-11-07 10:08:35.000000000","message":"what if a port is hung into down state in neutron? don\u0027t we need some timeout or handling for that case?","commit_id":"f921bfa1d9c9e2736057873e78dbb1a4ccdc0f76"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b8ef77b08a797df6ea3608c5fdf19c0a4855c96b","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"            # are so similar, we should really try to unify them."},{"line_number":2827,"context_line":"            self.network_api.setup_instance_network_on_host("},{"line_number":2828,"context_line":"                    context, instance, self.host)"},{"line_number":2829,"context_line":"            self._wait_for_ports_down(context, instance)"},{"line_number":2830,"context_line":""},{"line_number":2831,"context_line":"        network_info \u003d compute_utils.get_nw_info_for_instance(instance)"},{"line_number":2832,"context_line":"        if bdms is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_d0eccb91","line":2829,"range":{"start_line":2829,"start_character":12,"end_line":2829,"end_character":56},"updated":"2016-11-07 07:25:52.000000000","message":"sorry, I still have question, why we aren\u0027t waiting for the event at here?\nI saw there are events send out from neutron after line 2827.","commit_id":"f921bfa1d9c9e2736057873e78dbb1a4ccdc0f76"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"e9d1a1ab3a49c0bffd579b0fef4253a773fa0b5c","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"            # are so similar, we should really try to unify them."},{"line_number":2827,"context_line":"            self.network_api.setup_instance_network_on_host("},{"line_number":2828,"context_line":"                    context, instance, self.host)"},{"line_number":2829,"context_line":"            self._wait_for_ports_down(context, instance)"},{"line_number":2830,"context_line":""},{"line_number":2831,"context_line":"        network_info \u003d compute_utils.get_nw_info_for_instance(instance)"},{"line_number":2832,"context_line":"        if bdms is None:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a629dbe_e00e98e4","line":2829,"range":{"start_line":2829,"start_character":12,"end_line":2829,"end_character":56},"in_reply_to":"ba5da102_d0eccb91","updated":"2016-11-07 10:08:35.000000000","message":"+1 could you please explain this super-explicit","commit_id":"f921bfa1d9c9e2736057873e78dbb1a4ccdc0f76"}]}
