)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix event_send for re-assign floating ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"neutron can re-assign a floating ip without disassociate"},{"line_number":10,"context_line":"from origin instance port, and this situation will only"},{"line_number":11,"context_line":"send network changed event for new instance port."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_72735b15","line":9,"updated":"2014-10-23 06:09:17.000000000","message":"neutron -\u003e Neutron\nchange \"re-assign a floating ip\" to \"associate a floating IP to a new port\"","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":10,"context_line":"from origin instance port, and this situation will only"},{"line_number":11,"context_line":"send network changed event for new instance port."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is will cause nova miss to update instance_info_cache"},{"line_number":14,"context_line":"for origin instance. In most situation, after you re-assign"},{"line_number":15,"context_line":"floating ip, run \"nova list\" will return incorrect info,"},{"line_number":16,"context_line":"that may confuse users."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_d25b2785","line":13,"updated":"2014-10-23 06:09:17.000000000","message":"In this case nova will not update","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":11,"context_line":"send network changed event for new instance port."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is will cause nova miss to update instance_info_cache"},{"line_number":14,"context_line":"for origin instance. In most situation, after you re-assign"},{"line_number":15,"context_line":"floating ip, run \"nova list\" will return incorrect info,"},{"line_number":16,"context_line":"that may confuse users."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_f25e6b75","line":14,"updated":"2014-10-23 06:09:17.000000000","message":"origin -\u003e original","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This is will cause nova miss to update instance_info_cache"},{"line_number":14,"context_line":"for origin instance. In most situation, after you re-assign"},{"line_number":15,"context_line":"floating ip, run \"nova list\" will return incorrect info,"},{"line_number":16,"context_line":"that may confuse users."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Nova will sync data in table instance_info_cache, but it"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_524f37bd","line":15,"updated":"2014-10-23 06:09:17.000000000","message":"Please state clearly what is the incorrect info.","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Nova will sync data in table instance_info_cache, but it"},{"line_number":19,"context_line":"may take dozens of seconds."},{"line_number":20,"context_line":"The new added code will send network changed event for the"},{"line_number":21,"context_line":"origin instance, and this will make nova update instance_"},{"line_number":22,"context_line":"_info_cache table in a few seconds."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Code fixed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_f2d58bb9","line":21,"updated":"2014-10-23 06:09:17.000000000","message":"origin -\u003e original","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":22,"context_line":"_info_cache table in a few seconds."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Code fixed."},{"line_number":25,"context_line":"Test method added in test_notifiers_nova.py."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: If3ee11535f649fc51bf1a52806008c1c5c0e73b6"},{"line_number":28,"context_line":"Closes-Bug: 1381886"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_d2e96781","line":25,"updated":"2014-10-23 06:09:17.000000000","message":"These two lines can be removed.","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":8686,"name":"Wang Bo","email":"bo.wang@easystack.cn","username":"wangbo"},"change_message_id":"b41a2a3ba02b0438f70c8d4e6180053bcbe15f28","unresolved":false,"context_lines":[{"line_number":7,"context_line":"fix event_send for re-assign floating ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Neutron can associate a floating ip to a new port"},{"line_number":10,"context_line":"without disassociate from original instance port."},{"line_number":11,"context_line":"This situation will send network changed event only"},{"line_number":12,"context_line":"for new instance port, and that event object contains"},{"line_number":13,"context_line":"the new instance\u0027s id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a890539_40d17cfa","line":10,"updated":"2014-11-11 05:42:51.000000000","message":"nit: without disassociating","commit_id":"add8944d4dba2a69e8f7da47f120d5dc63952f77"}],"neutron/notifiers/nova.py":[{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8e40666595c8e55bbd43c2bf033c207bb73eeb53","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027] \u003d returned_obj_port"},{"line_number":147,"context_line":"            event \u003d self.create_port_changed_event(action, original_obj,"},{"line_number":148,"context_line":"                                                   returned_obj)"},{"line_number":149,"context_line":"            self.queue_event(event)"},{"line_number":150,"context_line":"            return"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        event \u003d self.create_port_changed_event(action, original_obj,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_128a0fbf","line":149,"updated":"2014-10-23 06:09:17.000000000","message":"These two lines are duplicated with line 152-154. Can they be merged?","commit_id":"def097bb82cb1fbe175e481252de91b14615a964"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"7a9aaee583f2810f2f68d571514ca057da724bee","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"},{"line_number":136,"context_line":"            and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)"},{"line_number":137,"context_line":"            and original_obj.get(\u0027port_id\u0027)"},{"line_number":138,"context_line":"            ):"},{"line_number":139,"context_line":"            returned_obj_port \u003d returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027]"},{"line_number":140,"context_line":"            # disassociate floating ip from original port"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa7fdbe_8b3240f0","line":137,"updated":"2014-10-23 14:10:07.000000000","message":"If statement should be formatted similar to other multi-line \"if\" statements in this file (such as line 200-201).  2nd and 3rd line should be further indented to indicate it is still part of \"if\".   Trailing \"):\"  should not be on line by itself.","commit_id":"e017ed3f68e0e1fb49ae3ea20b7a22e72f46d94b"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"7a9aaee583f2810f2f68d571514ca057da724bee","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            # associate floating ip to new port"},{"line_number":146,"context_line":"            returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027] \u003d returned_obj_port"},{"line_number":147,"context_line":"            event \u003d self.create_port_changed_event(action, original_obj,"},{"line_number":148,"context_line":"                                                   returned_obj)"},{"line_number":149,"context_line":"            self.queue_event(event)"},{"line_number":150,"context_line":"            return"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa7fdbe_4b9858c0","line":148,"updated":"2014-10-23 14:10:07.000000000","message":"Repeating earlier comment.  Are lines 147-150 needed since these are repeated by lines 152-154  ?","commit_id":"e017ed3f68e0e1fb49ae3ea20b7a22e72f46d94b"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        if not cfg.CONF.notify_nova_on_port_data_changes:"},{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # when neutron re-assign a floationg ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port with disassociate it first, an event"},{"line_number":137,"context_line":"        # should be send for original instance, that will make nova know"},{"line_number":138,"context_line":"        # original instance\u0027s info should be also updated. It\u0027s a way to"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_0de30a06","line":135,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  *reassigns\nnit:  *floating","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # when neutron re-assign a floationg ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port with disassociate it first, an event"},{"line_number":137,"context_line":"        # should be send for original instance, that will make nova know"},{"line_number":138,"context_line":"        # original instance\u0027s info should be also updated. It\u0027s a way to"},{"line_number":139,"context_line":"        # simulate a disassociating action indeed."}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_cdaf4293","line":136,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  s/with disassociate/without disassociating/ ??","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # when neutron re-assign a floationg ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port with disassociate it first, an event"},{"line_number":137,"context_line":"        # should be send for original instance, that will make nova know"},{"line_number":138,"context_line":"        # original instance\u0027s info should be also updated. It\u0027s a way to"},{"line_number":139,"context_line":"        # simulate a disassociating action indeed."},{"line_number":140,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_8dbe1ad3","line":137,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  sent","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        # when neutron re-assign a floationg ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port with disassociate it first, an event"},{"line_number":137,"context_line":"        # should be send for original instance, that will make nova know"},{"line_number":138,"context_line":"        # original instance\u0027s info should be also updated. It\u0027s a way to"},{"line_number":139,"context_line":"        # simulate a disassociating action indeed."},{"line_number":140,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"},{"line_number":141,"context_line":"                and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_cdb822e8","line":138,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  *also be","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # port to a new instance port with disassociate it first, an event"},{"line_number":137,"context_line":"        # should be send for original instance, that will make nova know"},{"line_number":138,"context_line":"        # original instance\u0027s info should be also updated. It\u0027s a way to"},{"line_number":139,"context_line":"        # simulate a disassociating action indeed."},{"line_number":140,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"},{"line_number":141,"context_line":"                and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)"},{"line_number":142,"context_line":"                and original_obj.get(\u0027port_id\u0027)):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_6da2ceaf","line":139,"updated":"2014-11-04 09:22:58.000000000","message":"I don\u0027t think I understand this last sentence.  I think you could just remove it.  The remaining comments should be sufficient.","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        # simulate a disassociating action indeed."},{"line_number":140,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"},{"line_number":141,"context_line":"                and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)"},{"line_number":142,"context_line":"                and original_obj.get(\u0027port_id\u0027)):"},{"line_number":143,"context_line":"            returned_obj_port \u003d returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027]"},{"line_number":144,"context_line":"            returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027] \u003d None"},{"line_number":145,"context_line":"            event \u003d self.create_port_changed_event(action, original_obj,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_6d900e44","line":142,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  It might help to extract out this boolean expression in to an intermediate variable:\n\n  notify_original_port \u003d (action \u003d\u003d \u0027update_floatingip\u0027\n                          and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)\t\n\t\t          and original_obj.get(\u0027port_id\u0027))\n  if notify_original_port:","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                and returned_obj[\u0027floatingip\u0027].get(\u0027port_id\u0027)"},{"line_number":142,"context_line":"                and original_obj.get(\u0027port_id\u0027)):"},{"line_number":143,"context_line":"            returned_obj_port \u003d returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027]"},{"line_number":144,"context_line":"            returned_obj[\u0027floatingip\u0027][\u0027port_id\u0027] \u003d None"},{"line_number":145,"context_line":"            event \u003d self.create_port_changed_event(action, original_obj,"},{"line_number":146,"context_line":"                                                   returned_obj)"},{"line_number":147,"context_line":"            self.queue_event(event)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_0dc6aa49","line":144,"updated":"2014-11-04 09:22:58.000000000","message":"(reason for -1) I don\u0027t think I like modifying this structure like this only to change it back later.  Instead, could you make a copy of the structure to pass to create_port_changed_event with this slight change?","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"24f9affed755b2d22e898a4cea16bd1e7d22cde8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        if not cfg.CONF.notify_nova_on_port_data_changes:"},{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # When neutron re-assigns floationg ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port without disassociate it first, an"},{"line_number":137,"context_line":"        # event should be sent for original instance, that will make nova"},{"line_number":138,"context_line":"        # know original instance\u0027s info, and update database for it."}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8c0949_55c5693a","line":135,"updated":"2014-11-10 21:10:02.000000000","message":"nit:  *floating","commit_id":"6a5aae0cf9e57dfed1e64e72cd06e92d17ce6807"},{"author":{"_account_id":8686,"name":"Wang Bo","email":"bo.wang@easystack.cn","username":"wangbo"},"change_message_id":"b41a2a3ba02b0438f70c8d4e6180053bcbe15f28","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # When neutron re-assigns floating ip from an original instance"},{"line_number":136,"context_line":"        # port to a new instance port without disassociate it first, an"},{"line_number":137,"context_line":"        # event should be sent for original instance, that will make nova"},{"line_number":138,"context_line":"        # know original instance\u0027s info, and update database for it."},{"line_number":139,"context_line":"        if (action \u003d\u003d \u0027update_floatingip\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a890539_00e854b3","line":136,"updated":"2014-11-11 05:42:51.000000000","message":"nit: disassociating it firstly","commit_id":"add8944d4dba2a69e8f7da47f120d5dc63952f77"}],"neutron/tests/unit/notifiers/test_notifiers_nova.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8e5e1c59602181a27dedb7140babee60d48233a2","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        returned_obj_non \u003d {\u0027floatingip\u0027: {\u0027port_id\u0027: None}}"},{"line_number":317,"context_line":"        event_dis \u003d self.nova_notifier.create_port_changed_event("},{"line_number":318,"context_line":"            \u0027update_floatingip\u0027, original_obj, returned_obj_non)"},{"line_number":319,"context_line":"        event_ass \u003d self.nova_notifier.create_port_changed_event("},{"line_number":320,"context_line":"            \u0027update_floatingip\u0027, original_obj, returned_obj)"},{"line_number":321,"context_line":"        self.assertEqual(self.nova_notifier.pending_events[0], event_dis)"},{"line_number":322,"context_line":"        self.assertEqual(self.nova_notifier.pending_events[1], event_ass)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8c0949_ade836b5","line":319,"updated":"2014-11-04 09:22:58.000000000","message":"nit:  This isn\u0027t the best way to abbreviate association.  It might be consider offensive to some.","commit_id":"98f443091efd176a07ac59393ef5e281ba3ce5d1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"24f9affed755b2d22e898a4cea16bd1e7d22cde8","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        returned_obj_non \u003d {\u0027floatingip\u0027: {\u0027port_id\u0027: None}}"},{"line_number":317,"context_line":"        event_dis \u003d self.nova_notifier.create_port_changed_event("},{"line_number":318,"context_line":"            \u0027update_floatingip\u0027, original_obj, returned_obj_non)"},{"line_number":319,"context_line":"        event_asso \u003d self.nova_notifier.create_port_changed_event("},{"line_number":320,"context_line":"            \u0027update_floatingip\u0027, original_obj, returned_obj)"},{"line_number":321,"context_line":"        self.assertEqual(self.nova_notifier.pending_events[0], event_dis)"},{"line_number":322,"context_line":"        self.assertEqual(self.nova_notifier.pending_events[1], event_asso)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8c0949_f5b495d2","line":319,"updated":"2014-11-10 21:10:02.000000000","message":"nit:  Sorry, I should\u0027ve stated this more clearly in the previous patch set.  The standard abbreviation for association is assoc.  But, this is better.","commit_id":"6a5aae0cf9e57dfed1e64e72cd06e92d17ce6807"}]}
