)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b077566f95a263916d8a2bc3ad86a54b864d28df","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change SpawnIsSynchronous fixture return"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In normal usage utils.spawn and utils.spawn_n return an"},{"line_number":10,"context_line":"eventlet.greenthread.GreenThread object which has a few methods defined"},{"line_number":11,"context_line":"on it. Currently the wait() and link() methods are used in Nova. However"},{"line_number":12,"context_line":"the SpawnIsSynchronous fixture was returning the results of wait()"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5aef4532_17e055f9","line":9,"range":{"start_line":9,"start_character":38,"end_line":9,"end_character":45},"updated":"2016-03-10 02:12:17.000000000","message":"spawn_n doesn\u0027t actually return anything.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d66c37898c868671ced19dc76fbec0c8ad83136","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change SpawnIsSynchronous fixture return"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In normal usage utils.spawn and utils.spawn_n return an"},{"line_number":10,"context_line":"eventlet.greenthread.GreenThread object which has a few methods defined"},{"line_number":11,"context_line":"on it. Currently the wait() and link() methods are used in Nova. However"},{"line_number":12,"context_line":"the SpawnIsSynchronous fixture was returning the results of wait()"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5aef4532_720b8b24","line":9,"range":{"start_line":9,"start_character":38,"end_line":9,"end_character":45},"in_reply_to":"5aef4532_17e055f9","updated":"2016-03-10 13:59:52.000000000","message":"It returns a greenlet but I couldn\u0027t find docs on that interface. I will update this though.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"}],"nova/network/model.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b077566f95a263916d8a2bc3ad86a54b864d28df","unresolved":false,"context_lines":[{"line_number":464,"context_line":"    def json(self):"},{"line_number":465,"context_line":"        return jsonutils.dumps(self)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def wait(self, do_raise\u003dTrue):"},{"line_number":468,"context_line":"        \"\"\"Return this NetworkInfo"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        This is useful to avoid type checking when it\u0027s not clear if you have a"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_7728b9e2","side":"PARENT","line":467,"updated":"2016-03-10 02:12:17.000000000","message":"Should this go back to just doing a pass like it used to?\n\nhttps://github.com/openstack/nova/blob/stable/liberty/nova/network/model.py#L457","commit_id":"027be875914f9f459ea86768eaedb02b2690decb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d66c37898c868671ced19dc76fbec0c8ad83136","unresolved":false,"context_lines":[{"line_number":464,"context_line":"    def json(self):"},{"line_number":465,"context_line":"        return jsonutils.dumps(self)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def wait(self, do_raise\u003dTrue):"},{"line_number":468,"context_line":"        \"\"\"Return this NetworkInfo"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"        This is useful to avoid type checking when it\u0027s not clear if you have a"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_b23fd3b2","side":"PARENT","line":467,"in_reply_to":"5aef4532_7728b9e2","updated":"2016-03-10 13:59:52.000000000","message":"When it just passed that was incorrectly fulfilling the interface. If we keep it is should return self. But the purpose of this patch is that it\u0027s no longer necessary because we have an object that has wait() on it which can wrap this result.","commit_id":"027be875914f9f459ea86768eaedb02b2690decb"}],"nova/tests/fixtures.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b077566f95a263916d8a2bc3ad86a54b864d28df","unresolved":false,"context_lines":[{"line_number":477,"context_line":"    def link(self, func, *args, **kwargs):"},{"line_number":478,"context_line":"        func(self, *args, **kwargs)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def unlink(self, *args, **kwargs):"},{"line_number":481,"context_line":"        # This method doesn\u0027t make sense for a synchronous call, it\u0027s just"},{"line_number":482,"context_line":"        # defined to satisfy the interface."},{"line_number":483,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_178695da","line":480,"range":{"start_line":480,"start_character":15,"end_line":480,"end_character":36},"updated":"2016-03-10 02:12:17.000000000","message":"Shouldn\u0027t this take a func arg like link?\n\nhttp://eventlet.net/doc/modules/greenthread.html#eventlet.greenthread.GreenThread.unlink\n\nI know it\u0027s not used so it won\u0027t break anything right now, but seems it\u0027s wrong.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"36859a8c033738a0d5b97f3a33f10eb28462ae2c","unresolved":false,"context_lines":[{"line_number":477,"context_line":"    def link(self, func, *args, **kwargs):"},{"line_number":478,"context_line":"        func(self, *args, **kwargs)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def unlink(self, *args, **kwargs):"},{"line_number":481,"context_line":"        # This method doesn\u0027t make sense for a synchronous call, it\u0027s just"},{"line_number":482,"context_line":"        # defined to satisfy the interface."},{"line_number":483,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_1937d5ff","line":480,"range":{"start_line":480,"start_character":15,"end_line":480,"end_character":36},"in_reply_to":"5aef4532_178695da","updated":"2016-03-10 11:55:28.000000000","message":"seems silly to care if we\u0027re just going straight to pass.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d66c37898c868671ced19dc76fbec0c8ad83136","unresolved":false,"context_lines":[{"line_number":477,"context_line":"    def link(self, func, *args, **kwargs):"},{"line_number":478,"context_line":"        func(self, *args, **kwargs)"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    def unlink(self, *args, **kwargs):"},{"line_number":481,"context_line":"        # This method doesn\u0027t make sense for a synchronous call, it\u0027s just"},{"line_number":482,"context_line":"        # defined to satisfy the interface."},{"line_number":483,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_d2b25f4b","line":480,"range":{"start_line":480,"start_character":15,"end_line":480,"end_character":36},"in_reply_to":"5aef4532_1937d5ff","updated":"2016-03-10 13:59:52.000000000","message":"Even if it were used it would work because the func would be pulled into *args. But I can separate it out to be precise.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b077566f95a263916d8a2bc3ad86a54b864d28df","unresolved":false,"context_lines":[{"line_number":3068,"context_line":"                                            \u0027hosts\u0027: [[self.compute.host,"},{"line_number":3069,"context_line":"                                                       \u0027fake-node\u0027]]}}"},{"line_number":3070,"context_line":""},{"line_number":3071,"context_line":"        self.useFixture(fixtures.SpawnIsSynchronousFixture())"},{"line_number":3072,"context_line":""},{"line_number":3073,"context_line":"        def fake_network_info():"},{"line_number":3074,"context_line":"            return network_model.NetworkInfo([{\u0027address\u0027: \u00271.2.3.4\u0027}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_5753fd6a","line":3071,"updated":"2016-03-10 02:12:17.000000000","message":"This was moved so it\u0027s done before creating self.network_info?","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d66c37898c868671ced19dc76fbec0c8ad83136","unresolved":false,"context_lines":[{"line_number":3068,"context_line":"                                            \u0027hosts\u0027: [[self.compute.host,"},{"line_number":3069,"context_line":"                                                       \u0027fake-node\u0027]]}}"},{"line_number":3070,"context_line":""},{"line_number":3071,"context_line":"        self.useFixture(fixtures.SpawnIsSynchronousFixture())"},{"line_number":3072,"context_line":""},{"line_number":3073,"context_line":"        def fake_network_info():"},{"line_number":3074,"context_line":"            return network_model.NetworkInfo([{\u0027address\u0027: \u00271.2.3.4\u0027}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_727eeb6a","line":3071,"in_reply_to":"5aef4532_5753fd6a","updated":"2016-03-10 13:59:52.000000000","message":"Exactly.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"b35ce1015af79a5d1f724baded9ce8c40f34808c","unresolved":false,"context_lines":[{"line_number":3696,"context_line":""},{"line_number":3697,"context_line":"            _shutdown_instance.assert_called_once_with(self.context,"},{"line_number":3698,"context_line":"                    self.instance, self.block_device_mapping,"},{"line_number":3699,"context_line":"                    self.requested_networks, try_deallocate_networks\u003dFalse)"},{"line_number":3700,"context_line":""},{"line_number":3701,"context_line":"    def test_reschedule_on_resources_unavailable(self):"},{"line_number":3702,"context_line":"        reason \u003d \u0027resource unavailable\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_8e6a9e7f","line":3699,"updated":"2016-03-09 19:14:17.000000000","message":"This changed because the return_value above change from an empty NetworkInfo to a non empty one. It is not relevant to the testing here though.","commit_id":"2010c620c4d657803e7634f1f06cd9acae678fb1"}]}
