)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2017-07-06 16:55:10 +0200"},{"line_number":4,"context_line":"Commit:     Marcin Mirecki \u003cmmirecki@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-07 20:19:15 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OVN Northbound API for getting a single LS, LSP, DHCP_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements an ls_get function which"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f1d235d_ea6168d5","line":6,"updated":"2017-07-07 19:00:21.000000000","message":"This subject is copied from another patch and should be changed. :)","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2017-07-06 16:55:10 +0200"},{"line_number":4,"context_line":"Commit:     Marcin Mirecki \u003cmmirecki@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-07-07 20:19:15 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OVN Northbound API for getting a single LS, LSP, DHCP_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements an ls_get function which"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f1d235d_0fe5cf38","line":6,"in_reply_to":"3f1d235d_ea6168d5","updated":"2017-07-07 23:06:22.000000000","message":"Done","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"}],"ovsdbapp/backend/ovs_idl/command.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        ]"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@abc.abstractmethod"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, ls):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_0aaa64d1","line":235,"updated":"2017-07-07 19:00:21.000000000","message":"A class isn\u0027t an abstractmethod","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        ]"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@abc.abstractmethod"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, ls):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_cc2fe5a5","line":235,"in_reply_to":"3f1d235d_0aaa64d1","updated":"2017-07-07 23:06:22.000000000","message":"Done","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@abc.abstractmethod"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, ls):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"},{"line_number":239,"context_line":"        self.ls \u003d ls"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_aa825051","line":237,"updated":"2017-07-07 19:00:21.000000000","message":"ls should be changed to something generic like \"record\" here and below","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@abc.abstractmethod"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, ls):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"},{"line_number":239,"context_line":"        self.ls \u003d ls"},{"line_number":240,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_0c583d54","line":237,"in_reply_to":"3f1d235d_aa825051","updated":"2017-07-07 23:06:22.000000000","message":"Done","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"5901ae4075a4244b47a737ab194e30bafe8b5407","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        ]"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, record):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_50e23f03","line":235,"updated":"2017-07-08 17:13:27.000000000","message":"Sorry, I wasn\u0027t very clear in my last comment. This doesn\u0027t need any abc stuff at all. The base api.Command is the abc. Having an ABCMeta metaclass doesn\u0027t make any sense w/o abstractmethods either.","commit_id":"401341d149d87a216f115156779f288d70ac35b9"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"d2d7145f0c62c9575a68cc4a67624a6d7d92dc0f","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        ]"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":236,"context_line":"class BaseGetRowCommand(BaseCommand):"},{"line_number":237,"context_line":"    def __init__(self, api, record):"},{"line_number":238,"context_line":"        super(BaseGetRowCommand, self).__init__(api)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_43c15b80","line":235,"in_reply_to":"3f1d235d_50e23f03","updated":"2017-07-08 19:51:18.000000000","message":"Done","commit_id":"401341d149d87a216f115156779f288d70ac35b9"}],"ovsdbapp/schema/ovn_northbound/api.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @abc.abstractmethod"},{"line_number":60,"context_line":"    def ls_get(self, ls):"},{"line_number":61,"context_line":"        \"\"\"Get logical switch for \u0027ls\u0027"},{"line_number":62,"context_line":"        :returns: :class:`Command` with RowView result"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_4af61cfc","line":62,"updated":"2017-07-07 19:00:21.000000000","message":"blank space here and below after initial line. See comments on next file for changes to argument names.","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    @abc.abstractmethod"},{"line_number":60,"context_line":"    def ls_get(self, ls):"},{"line_number":61,"context_line":"        \"\"\"Get logical switch for \u0027ls\u0027"},{"line_number":62,"context_line":"        :returns: :class:`Command` with RowView result"},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @abc.abstractmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_6fa8c3da","line":62,"in_reply_to":"3f1d235d_4af61cfc","updated":"2017-07-07 23:06:22.000000000","message":"Adding blank after initial line.\nAll other comments have not blank after last line - not adding one either (let me know if you want it after all).\n\nDone","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"47ed3b1d4fd45b52b884ed171bf16d183fbda370","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @abc.abstractmethod"},{"line_number":61,"context_line":"    def ls_get(self, switch):"},{"line_number":62,"context_line":"        \"\"\"Get logical switch for \u0027switch\u0027"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        :returns: :class:`Command` with RowView result"},{"line_number":65,"context_line":"        \"\"\""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff346bd7_e2549dcc","line":63,"updated":"2017-07-25 14:46:32.000000000","message":"Would be good to have \u0027switch\u0027 parameter documented like all other methods do.","commit_id":"d9a28f79a17a1292e1601d6f9d7f14164f9875a9"}],"ovsdbapp/schema/ovn_northbound/impl_idl.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def ls_list(self):"},{"line_number":69,"context_line":"        return cmd.LsListCommand(self)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def ls_get(self, ls):"},{"line_number":72,"context_line":"        return cmd.LsGetCommand(self, ls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def acl_add(self, switch, direction, priority, match, action, log\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_4a2bbc2f","line":71,"updated":"2017-07-07 19:00:21.000000000","message":"all other ls_ commands treat \"switch\" as the name or uuid, might as well follow suit.","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    def ls_list(self):"},{"line_number":69,"context_line":"        return cmd.LsListCommand(self)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def ls_get(self, ls):"},{"line_number":72,"context_line":"        return cmd.LsGetCommand(self, ls)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def acl_add(self, switch, direction, priority, match, action, log\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_8f20bf9d","line":71,"in_reply_to":"3f1d235d_4a2bbc2f","updated":"2017-07-07 23:06:22.000000000","message":"Done","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def lsp_list(self, switch):"},{"line_number":94,"context_line":"        return cmd.LspListCommand(self, switch)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def ls_get(self, ls):"},{"line_number":97,"context_line":"        return cmd.LsGetCommand(self, ls)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def lsp_get_parent(self, port):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_4a44dc1b","line":96,"updated":"2017-07-07 19:00:21.000000000","message":"should be lsp_get not ls_get again.\n\nalso other lsp_ commands use \"port\" for the name or uuid.","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def lsp_list(self, switch):"},{"line_number":94,"context_line":"        return cmd.LspListCommand(self, switch)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def ls_get(self, ls):"},{"line_number":97,"context_line":"        return cmd.LsGetCommand(self, ls)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def lsp_get_parent(self, port):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_4f3aa7cd","line":96,"in_reply_to":"3f1d235d_4a44dc1b","updated":"2017-07-07 23:06:22.000000000","message":"Done","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1c3c776d491761a118116d7ba1938f516495abc1","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def dhcp_options_list(self):"},{"line_number":152,"context_line":"        return cmd.DhcpOptionsListCommand(self)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def dhcp_options_get(self, id):"},{"line_number":155,"context_line":"        return cmd.DhcpOptionsGetCommand(self, id)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def dhcp_options_set_options(self, dhcpopt_uuid, **options):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_4a129c0b","line":154,"updated":"2017-07-07 19:00:21.000000000","message":"id is a reserved word (not that we are likely to shadow it, but I try to avoid it in general). maybe dhcpopt_uuid like in dhcp_options_del since this doesn\u0027t have any other lookup field like name?","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"},{"author":{"_account_id":25007,"name":"Marcin Mirecki","email":"mmirecki@redhat.com","username":"mmirecki"},"change_message_id":"46f69a19ec7dae9323d7125babe840e2081fca92","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    def dhcp_options_list(self):"},{"line_number":152,"context_line":"        return cmd.DhcpOptionsListCommand(self)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def dhcp_options_get(self, id):"},{"line_number":155,"context_line":"        return cmd.DhcpOptionsGetCommand(self, id)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def dhcp_options_set_options(self, dhcpopt_uuid, **options):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_2f0e4b32","line":154,"in_reply_to":"3f1d235d_4a129c0b","updated":"2017-07-07 23:06:22.000000000","message":"Taking: dhcpopt_uuid\n\nDone","commit_id":"e35bd1625163e26a8780037014cc84385a31c71a"}]}
