)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"af16376bf5a28e8ee1cdb04b9ad501d798444179","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Other than the of_interface methods, today we are forced to use ovs_lib"},{"line_number":10,"context_line":"methods to program flows, which call ovs-ofctl in turn. Let\u0027s make"},{"line_number":11,"context_line":"install_instructions accept string actions regardless of of_interface"},{"line_number":12,"context_line":"driver."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-bug: #1672340"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f201791_ccdd3843","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":42},"updated":"2017-06-23 22:20:53.000000000","message":"how about match?","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"553e533975f3fa012f6280bfb25a4dd6c0e18ce9","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Other than the of_interface methods, today we are forced to use ovs_lib"},{"line_number":10,"context_line":"methods to program flows, which call ovs-ofctl in turn. Let\u0027s make"},{"line_number":11,"context_line":"install_instructions accept string actions regardless of of_interface"},{"line_number":12,"context_line":"driver."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-bug: #1672340"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f1d235d_78c5128e","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":42},"in_reply_to":"3f1d235d_823bdfcf","updated":"2017-06-30 07:09:55.000000000","message":"\"some of them can be used\" is a more appropriate description i guess.","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"0f0f59cfcb602a3911289a116038569a4d6f713e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Other than the of_interface methods, today we are forced to use ovs_lib"},{"line_number":10,"context_line":"methods to program flows, which call ovs-ofctl in turn. Let\u0027s make"},{"line_number":11,"context_line":"install_instructions accept string actions regardless of of_interface"},{"line_number":12,"context_line":"driver."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-bug: #1672340"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f1d235d_823bdfcf","line":11,"range":{"start_line":11,"start_character":35,"end_line":11,"end_character":42},"in_reply_to":"5f201791_ccdd3843","updated":"2017-06-30 06:56:08.000000000","message":"Thanks to your kwargs hack, common match kwargs can be used. right?","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"af16376bf5a28e8ee1cdb04b9ad501d798444179","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Other than the of_interface methods, today we are forced to use ovs_lib"},{"line_number":10,"context_line":"methods to program flows, which call ovs-ofctl in turn. Let\u0027s make"},{"line_number":11,"context_line":"install_instructions accept string actions regardless of of_interface"},{"line_number":12,"context_line":"driver."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-bug: #1672340"},{"line_number":15,"context_line":"Change-Id: Ie2fdeab1f4ac567ef336abae03768e43f426311a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5f201791_6c6f4492","line":12,"updated":"2017-06-23 22:20:53.000000000","message":"what\u0027s the longer term plan?\nif we\u0027re going to obsolete ofctl, isn\u0027t it better to do the opposite?","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"0f0f59cfcb602a3911289a116038569a4d6f713e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Other than the of_interface methods, today we are forced to use ovs_lib"},{"line_number":10,"context_line":"methods to program flows, which call ovs-ofctl in turn. Let\u0027s make"},{"line_number":11,"context_line":"install_instructions accept string actions regardless of of_interface"},{"line_number":12,"context_line":"driver."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Related-bug: #1672340"},{"line_number":15,"context_line":"Change-Id: Ie2fdeab1f4ac567ef336abae03768e43f426311a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f1d235d_950d5739","line":12,"in_reply_to":"5f201791_6c6f4492","updated":"2017-06-30 06:56:08.000000000","message":"when ofctl compatibility gets unnecessary, OFPInstructionActions actions can be used.\n\nAs you say, OFPInstructionActions to string converter could be implemented in ryu, but that would be more work. In this approach, you\u0027ll be able to keep using string actions, which is nice IMO.","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"af16376bf5a28e8ee1cdb04b9ad501d798444179","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                             match\u003dNone, **match_kwargs):"},{"line_number":195,"context_line":"        (dp, ofp, ofpp) \u003d self._get_dp()"},{"line_number":196,"context_line":"        match \u003d self._match(ofp, ofpp, match, **match_kwargs)"},{"line_number":197,"context_line":"        if isinstance(instructions, str):"},{"line_number":198,"context_line":"            # NOTE: instructions must be str for the ofctl of_interface."},{"line_number":199,"context_line":"            # After the ofctl driver is removed, a deprecation warning"},{"line_number":200,"context_line":"            # could be added here."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_ac12fc07","line":197,"range":{"start_line":197,"start_character":36,"end_line":197,"end_character":39},"updated":"2017-06-23 22:20:53.000000000","message":"six.string_types?","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"0f0f59cfcb602a3911289a116038569a4d6f713e","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                             match\u003dNone, **match_kwargs):"},{"line_number":195,"context_line":"        (dp, ofp, ofpp) \u003d self._get_dp()"},{"line_number":196,"context_line":"        match \u003d self._match(ofp, ofpp, match, **match_kwargs)"},{"line_number":197,"context_line":"        if isinstance(instructions, str):"},{"line_number":198,"context_line":"            # NOTE: instructions must be str for the ofctl of_interface."},{"line_number":199,"context_line":"            # After the ofctl driver is removed, a deprecation warning"},{"line_number":200,"context_line":"            # could be added here."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_7512bb5a","line":197,"range":{"start_line":197,"start_character":36,"end_line":197,"end_character":39},"in_reply_to":"5f201791_ac12fc07","updated":"2017-06-30 06:56:08.000000000","message":"Done","commit_id":"926cfc512a400912b4efdc1be0abcce8146c3015"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"12bee3704a4dfb64fd9dc7153ebbb0b4e52295dd","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        if isinstance(instructions, six.string_types):"},{"line_number":199,"context_line":"            # NOTE: instructions must be str for the ofctl of_interface."},{"line_number":200,"context_line":"            # After the ofctl driver is removed, a deprecation warning"},{"line_number":201,"context_line":"            # could be added here."},{"line_number":202,"context_line":"            jsonlist \u003d ofctl_string.ofp_instruction_from_str("},{"line_number":203,"context_line":"                ofp, instructions)"},{"line_number":204,"context_line":"            instructions \u003d ofproto_parser.ofp_instruction_from_jsondict("}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_63641a4a","line":201,"updated":"2017-07-11 12:02:23.000000000","message":"so, a longer term plan is something like the following, right?\n\n1. merge this and make ovsfw work (bug 1672340)\n2. obsolete and remove \"ofctl\" of_interface\n3. mark this deprecated\n4. convert users including ovsfw to use \"native\" api\n5. remove this","commit_id":"3f4bceecaa67a1f20c7ec6243d0c883ff815f531"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"b4f7416b964c54281d616ce52acb991b5f58bbb4","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        if isinstance(instructions, six.string_types):"},{"line_number":199,"context_line":"            # NOTE: instructions must be str for the ofctl of_interface."},{"line_number":200,"context_line":"            # After the ofctl driver is removed, a deprecation warning"},{"line_number":201,"context_line":"            # could be added here."},{"line_number":202,"context_line":"            jsonlist \u003d ofctl_string.ofp_instruction_from_str("},{"line_number":203,"context_line":"                ofp, instructions)"},{"line_number":204,"context_line":"            instructions \u003d ofproto_parser.ofp_instruction_from_jsondict("}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_19faa241","line":201,"in_reply_to":"1f1a1f67_d9c0aa53","updated":"2017-07-13 08:13:02.000000000","message":"ok, it makes sense.","commit_id":"3f4bceecaa67a1f20c7ec6243d0c883ff815f531"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"33e8100b5e6e45fdfa1f11feb421303105270a0e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        if isinstance(instructions, six.string_types):"},{"line_number":199,"context_line":"            # NOTE: instructions must be str for the ofctl of_interface."},{"line_number":200,"context_line":"            # After the ofctl driver is removed, a deprecation warning"},{"line_number":201,"context_line":"            # could be added here."},{"line_number":202,"context_line":"            jsonlist \u003d ofctl_string.ofp_instruction_from_str("},{"line_number":203,"context_line":"                ofp, instructions)"},{"line_number":204,"context_line":"            instructions \u003d ofproto_parser.ofp_instruction_from_jsondict("}],"source_content_type":"text/x-python","patch_set":5,"id":"1f1a1f67_d9c0aa53","line":201,"in_reply_to":"3f1d235d_63641a4a","updated":"2017-07-13 07:58:52.000000000","message":"Yes, but I\u0027m not sure how long it will take to reach the step 5. ;)","commit_id":"3f4bceecaa67a1f20c7ec6243d0c883ff815f531"}]}
