)]}'
{"ironic/conductor/manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"4dbf35ac17112f12d7b420da677a2df7e741e79f","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            if node.instance_uuid is not None:"},{"line_number":538,"context_line":"                raise exception.NodeAssociated(node\u003dnode.uuid,"},{"line_number":539,"context_line":"                                               instance\u003dnode.instance_uuid)"},{"line_number":540,"context_line":"            self.dbapi.destroy_node(node_id)"},{"line_number":541,"context_line":"        except Exception:"},{"line_number":542,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":543,"context_line":"                # Release node lock if error occurred."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Flkk%3D","line":540,"updated":"2014-02-25 19:37:56.000000000","message":"for an operation where there is no greenthread invoked, instead of explicit try \u0026 except, it would be cleaner to use:\n\n  with task_manager.acquire():\n    # do work","commit_id":"e148732266b0f89c7bb7f47432f7298f8d354f03"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3e9db7160238bde69d37194ffbc8acfaaae76313","unresolved":false,"context_lines":[{"line_number":537,"context_line":"            if node.instance_uuid is not None:"},{"line_number":538,"context_line":"                raise exception.NodeAssociated(node\u003dnode.uuid,"},{"line_number":539,"context_line":"                                               instance\u003dnode.instance_uuid)"},{"line_number":540,"context_line":"            self.dbapi.destroy_node(node_id)"},{"line_number":541,"context_line":"        except Exception:"},{"line_number":542,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":543,"context_line":"                # Release node lock if error occurred."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FfcQ%3D","line":540,"in_reply_to":"AAAAU3%2F%2Flkk%3D","updated":"2014-02-26 10:18:20.000000000","message":"Ahh, indeed it\u0027s cleaner.\n\nThe reason why I acquired the task manually was because I thought that the release_resouce() would fail when leaving the \"with scope\" cause the node was deleted. But seems it doesn\u0027t :)\n\nThanks for pointing that out","commit_id":"e148732266b0f89c7bb7f47432f7298f8d354f03"}],"ironic/tests/api/test_nodes.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"bc57725af14532a8d03de41263546a97f51d558a","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        mock_dn.assert_called_once_with(mock.ANY, ndict[\u0027uuid\u0027], \u0027test-topic\u0027)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    @mock.patch.object(objects.Node, \u0027get_by_uuid\u0027)"},{"line_number":710,"context_line":"    def test_delete_node_not_found(self, mock_gbu):"},{"line_number":711,"context_line":"        ndict \u003d dbutils.get_test_node()"},{"line_number":712,"context_line":"        mock_gbu.side_effect \u003d exception.NodeNotFound(node\u003dndict[\u0027uuid\u0027])"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Fjko%3D","line":710,"updated":"2014-02-25 23:37:24.000000000","message":"I don\u0027t see how this tests that a deleted node has been deleted. Doesn\u0027t it test getting a node, not found?","commit_id":"91557de0e273778bac6b0171b44ded9edb9e06e0"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d45cc8d4e183e916583a8e5f3ada8e8c5ad827b2","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        mock_dn.assert_called_once_with(mock.ANY, ndict[\u0027uuid\u0027], \u0027test-topic\u0027)"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"    @mock.patch.object(objects.Node, \u0027get_by_uuid\u0027)"},{"line_number":710,"context_line":"    def test_delete_node_not_found(self, mock_gbu):"},{"line_number":711,"context_line":"        ndict \u003d dbutils.get_test_node()"},{"line_number":712,"context_line":"        mock_gbu.side_effect \u003d exception.NodeNotFound(node\u003dndict[\u0027uuid\u0027])"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Ffeo%3D","line":710,"in_reply_to":"AAAAU3%2F%2Fjko%3D","updated":"2014-02-26 10:18:34.000000000","message":"+1\n\nI broke the previous test in two and this get_json() is supposed to be a delete(), thanks for pointing that out ruby :) I will fix this test","commit_id":"91557de0e273778bac6b0171b44ded9edb9e06e0"}],"ironic/tests/conductor/test_manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"4dbf35ac17112f12d7b420da677a2df7e741e79f","unresolved":false,"context_lines":[{"line_number":712,"context_line":"        self.service.start()"},{"line_number":713,"context_line":"        ndict \u003d utils.get_test_node(driver\u003d\u0027fake\u0027)"},{"line_number":714,"context_line":"        node \u003d self.dbapi.create_node(ndict)"},{"line_number":715,"context_line":"        self.service.destroy_node(self.context, node.uuid)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"    def test_destroy_node_reserved(self):"},{"line_number":718,"context_line":"        self.service.start()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Flic%3D","line":715,"updated":"2014-02-25 19:37:56.000000000","message":"should confirm the node is no longer in the DB","commit_id":"e148732266b0f89c7bb7f47432f7298f8d354f03"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3e9db7160238bde69d37194ffbc8acfaaae76313","unresolved":false,"context_lines":[{"line_number":712,"context_line":"        self.service.start()"},{"line_number":713,"context_line":"        ndict \u003d utils.get_test_node(driver\u003d\u0027fake\u0027)"},{"line_number":714,"context_line":"        node \u003d self.dbapi.create_node(ndict)"},{"line_number":715,"context_line":"        self.service.destroy_node(self.context, node.uuid)"},{"line_number":716,"context_line":""},{"line_number":717,"context_line":"    def test_destroy_node_reserved(self):"},{"line_number":718,"context_line":"        self.service.start()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Ffbo%3D","line":715,"in_reply_to":"AAAAU3%2F%2Flic%3D","updated":"2014-02-26 10:18:20.000000000","message":"+1","commit_id":"e148732266b0f89c7bb7f47432f7298f8d354f03"}]}
