)]}'
{"ironic/api/controllers/v1/port.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"dde086f28eff0054003786c9af5a3b8b30f75703","unresolved":false,"context_lines":[{"line_number":291,"context_line":"                                     pecan.request.context, rpc_port, topic)"},{"line_number":292,"context_line":"        except Exception as e:"},{"line_number":293,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":294,"context_line":"                LOG.exception(e)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        return Port.convert_with_links(new_port)"},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FrH0%3D","line":294,"updated":"2014-03-05 23:07:24.000000000","message":"this will log the exception twice. I think we should remove the try here.","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"7cce30a9367567f3308faff759bd0bde7d9013cc","unresolved":false,"context_lines":[{"line_number":291,"context_line":"                                     pecan.request.context, rpc_port, topic)"},{"line_number":292,"context_line":"        except Exception as e:"},{"line_number":293,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":294,"context_line":"                LOG.exception(e)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        return Port.convert_with_links(new_port)"},{"line_number":297,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FZ34%3D","line":294,"in_reply_to":"AAAAVn%2F%2FrH0%3D","updated":"2014-03-06 10:35:34.000000000","message":"You are right, rpc code does this.","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"}],"ironic/conductor/manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"dde086f28eff0054003786c9af5a3b8b30f75703","unresolved":false,"context_lines":[{"line_number":704,"context_line":"            finally:"},{"line_number":705,"context_line":"                node.save(context)"},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"    def update_port(self, context, port_obj):"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        LOG.debug(_(\"RPC update_port called for port %s.\") % port_obj.uuid)"},{"line_number":710,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FrHg%3D","line":707,"updated":"2014-03-05 23:07:24.000000000","message":"need method doc string","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"7cce30a9367567f3308faff759bd0bde7d9013cc","unresolved":false,"context_lines":[{"line_number":704,"context_line":"            finally:"},{"line_number":705,"context_line":"                node.save(context)"},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"    def update_port(self, context, port_obj):"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"        LOG.debug(_(\"RPC update_port called for port %s.\") % port_obj.uuid)"},{"line_number":710,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FZmk%3D","line":707,"in_reply_to":"AAAAVn%2F%2FrHg%3D","updated":"2014-03-06 10:35:34.000000000","message":"Done","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"}],"ironic/conductor/rpcapi.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3cfee02d2e459917433059f6d72bb6725b43c640","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    RPC_API_VERSION \u003d \u00271.12\u0027"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":69,"context_line":"        if topic is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2B6vo%3D","line":66,"updated":"2014-03-11 10:05:12.000000000","message":"RPC_API_VERSION\u003d\u00271.13\u0027","commit_id":"067868ba248912fd4ef05e42ae8c0062159fb55b"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"123d6afed9fe9c38f71236c3fa0b351b5db36835","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    \"\"\""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    RPC_API_VERSION \u003d \u00271.12\u0027"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def __init__(self, topic\u003dNone):"},{"line_number":69,"context_line":"        if topic is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2B6ng%3D","line":66,"in_reply_to":"AAAAVn%2F%2B6vo%3D","updated":"2014-03-11 10:27:13.000000000","message":"Oh, thanks.","commit_id":"067868ba248912fd4ef05e42ae8c0062159fb55b"}],"ironic/tests/conductor/test_manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"dde086f28eff0054003786c9af5a3b8b30f75703","unresolved":false,"context_lines":[{"line_number":1001,"context_line":"        port \u003d self.dbapi.create_port(pdict)"},{"line_number":1002,"context_line":"        port.extra \u003d {\u0027foo\u0027: \u0027baz\u0027}"},{"line_number":1003,"context_line":"        res \u003d self.service.update_port(self.context, port)"},{"line_number":1004,"context_line":"        self.assertEqual(res[\u0027extra\u0027], {\u0027foo\u0027: \u0027baz\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FfFc%3D","line":1004,"updated":"2014-03-05 23:07:24.000000000","message":"param order is backwards. Should be assertEqual(expected, actual)","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"7cce30a9367567f3308faff759bd0bde7d9013cc","unresolved":false,"context_lines":[{"line_number":1001,"context_line":"        port \u003d self.dbapi.create_port(pdict)"},{"line_number":1002,"context_line":"        port.extra \u003d {\u0027foo\u0027: \u0027baz\u0027}"},{"line_number":1003,"context_line":"        res \u003d self.service.update_port(self.context, port)"},{"line_number":1004,"context_line":"        self.assertEqual(res[\u0027extra\u0027], {\u0027foo\u0027: \u0027baz\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2FZnQ%3D","line":1004,"in_reply_to":"AAAAVn%2F%2FfFc%3D","updated":"2014-03-06 10:35:34.000000000","message":"Done","commit_id":"dd28a2f92bdf2cdb36af2e23d93dcfc50ca55482"}],"ironic/tests/db/test_ports.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3cfee02d2e459917433059f6d72bb6725b43c640","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        self.assertRaises(exception.NodeLocked,"},{"line_number":115,"context_line":"                          self.dbapi.destroy_port, p.id)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_update_port_on_reserved_node(self):"},{"line_number":118,"context_line":"        p \u003d self.dbapi.create_port(db_utils.get_test_port(node_id\u003dself.n.id))"},{"line_number":119,"context_line":"        uuid \u003d self.n.uuid"},{"line_number":120,"context_line":"        self.dbapi.reserve_nodes(\u0027fake-reservation\u0027, [uuid])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2B6uA%3D","side":"PARENT","line":117,"updated":"2014-03-11 10:05:12.000000000","message":"Perhaps we should move this test to test_manager.py instead of deleting it? It\u0027s a valid case where we can\u0027t update a port if the node it\u0027s belongs to is locked.","commit_id":"1f8b8d7e547737abb72bd5a0af83266dad38acb2"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"123d6afed9fe9c38f71236c3fa0b351b5db36835","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        self.assertRaises(exception.NodeLocked,"},{"line_number":115,"context_line":"                          self.dbapi.destroy_port, p.id)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def test_update_port_on_reserved_node(self):"},{"line_number":118,"context_line":"        p \u003d self.dbapi.create_port(db_utils.get_test_port(node_id\u003dself.n.id))"},{"line_number":119,"context_line":"        uuid \u003d self.n.uuid"},{"line_number":120,"context_line":"        self.dbapi.reserve_nodes(\u0027fake-reservation\u0027, [uuid])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2B6nc%3D","side":"PARENT","line":117,"in_reply_to":"AAAAVn%2F%2B6uA%3D","updated":"2014-03-11 10:27:13.000000000","message":"Agree, done.","commit_id":"1f8b8d7e547737abb72bd5a0af83266dad38acb2"}]}
