)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"efdaa65187daa87c2f2a394a786ebd17ffa45662","unresolved":false,"context_lines":[{"line_number":10,"context_line":"ovs-ofctl dump-flows command, and adds the names of the tables being"},{"line_number":11,"context_line":"used to their IDs. This is done for better readability and easier"},{"line_number":12,"context_line":"debugging."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I52907e8d3b81f3f23eff2b0e062160141285bfed"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f91af0f_3089d274","line":13,"updated":"2018-01-02 11:42:01.000000000","message":"please link this patch to the relevant launchpad issue","commit_id":"1362d4bf6bd4d8193271b21bbae37f8c9cc9212f"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"20b2e69616146c0bd0b11c24dcc89154dac37566","unresolved":false,"context_lines":[{"line_number":10,"context_line":"ovs-ofctl dump-flows command, and adds the names of the tables being"},{"line_number":11,"context_line":"used to their IDs. This is done for better readability and easier"},{"line_number":12,"context_line":"debugging."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I52907e8d3b81f3f23eff2b0e062160141285bfed"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f91af0f_c4822b50","line":13,"in_reply_to":"9f91af0f_3089d274","updated":"2018-01-02 12:56:13.000000000","message":"I am not sure there is one.\nIf one exists I will add it.","commit_id":"1362d4bf6bd4d8193271b21bbae37f8c9cc9212f"}],"doc/source/testing_and_debugging.rst":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3fae533a68adb67ec5b6802e67eb2be4ea9a7deb","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. code-block:: bash"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    sudo ovs-ofctl dump-flows br-int -O OpenFlow13 | \u003cdragonflow_root\u003e/tools/add_table_names"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"**ovs-appctl ofproto/trace**"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_d0a4260b","line":66,"range":{"start_line":66,"start_character":53,"end_line":66,"end_character":70},"updated":"2018-01-02 12:23:58.000000000","message":"nit: Maybe change this to \u0027/opt/stack/dragonflow\u0027 ? This way it\u0027s a working example for standard devstack.","commit_id":"1362d4bf6bd4d8193271b21bbae37f8c9cc9212f"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"20b2e69616146c0bd0b11c24dcc89154dac37566","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. code-block:: bash"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    sudo ovs-ofctl dump-flows br-int -O OpenFlow13 | \u003cdragonflow_root\u003e/tools/add_table_names"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"**ovs-appctl ofproto/trace**"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_64979f92","line":66,"range":{"start_line":66,"start_character":53,"end_line":66,"end_character":70},"in_reply_to":"9f91af0f_d0a4260b","updated":"2018-01-02 12:56:13.000000000","message":"Will do.","commit_id":"1362d4bf6bd4d8193271b21bbae37f8c9cc9212f"}],"tools/create_add_tables_script.sh":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"8d16babfa1c46e382f3d53e96d4be7744a48bc78","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"DEST_FILE\u003d${2:-${DRAGONFLOW_DIR}/tools/add_table_names}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"awk \u0027BEGIN {FS\u003d\"\u003d\"; print \"#!/bin/awk -f\\n\\nBEGIN {\"}; /^[^#].*TABLE[\\w]*/{ name\u003dgensub(\" \", \"\", \"g\", $1); id\u003dgensub(\" \", \"\", \"g\", $2); line\u003d\"  id_to_name[\"id\"]\u003d\\\"\"name\"\\\"\"; print line }; END {print \"}\\n\\n{\\n  head \u003d \\\"\\\"\\n  tail\u003d$0\\n  while (match(tail, /(resubmit\\\\(,|table\u003d)([0-9]+)/, arr)) {\\n    repl \u003d substr(tail, RSTART, RLENGTH)\\n    head \u003d head substr(tail,1,RSTART-1) repl \\\"(\\\" id_to_name[arr[2]] \\\")\\\"\\n    tail \u003d substr(tail,RSTART+RLENGTH)\\n  }\\n  print head tail\\n}\\n\"}\u0027 ${DRAGONFLOW_DIR}/dragonflow/controller/common/constants.py \u003e ${DEST_FILE}"},{"line_number":9,"context_line":"chmod +x ${DEST_FILE}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"9f91af0f_4d2e3744","line":8,"updated":"2018-01-02 20:29:49.000000000","message":"I\u0027m no expert on awk, can this be broken into several lines or maybe external .awk file to make reading a bit easier?","commit_id":"9d09ad53ea71c58633a01873e878530848b26e0a"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"52882b3744922097b211b7810e20fbdce3f93928","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"DEST_FILE\u003d${2:-${DRAGONFLOW_DIR}/tools/add_table_names}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"awk \u0027BEGIN {FS\u003d\"\u003d\"; print \"#!/bin/awk -f\\n\\nBEGIN {\"}; /^[^#].*TABLE[\\w]*/{ name\u003dgensub(\" \", \"\", \"g\", $1); id\u003dgensub(\" \", \"\", \"g\", $2); line\u003d\"  id_to_name[\"id\"]\u003d\\\"\"name\"\\\"\"; print line }; END {print \"}\\n\\n{\\n  head \u003d \\\"\\\"\\n  tail\u003d$0\\n  while (match(tail, /(resubmit\\\\(,|table\u003d)([0-9]+)/, arr)) {\\n    repl \u003d substr(tail, RSTART, RLENGTH)\\n    head \u003d head substr(tail,1,RSTART-1) repl \\\"(\\\" id_to_name[arr[2]] \\\")\\\"\\n    tail \u003d substr(tail,RSTART+RLENGTH)\\n  }\\n  print head tail\\n}\\n\"}\u0027 ${DRAGONFLOW_DIR}/dragonflow/controller/common/constants.py \u003e ${DEST_FILE}"},{"line_number":9,"context_line":"chmod +x ${DEST_FILE}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"9f91af0f_b6970b91","line":8,"in_reply_to":"9f91af0f_4d2e3744","updated":"2018-01-03 07:28:31.000000000","message":"It is possible, but it is not common.\nWhen using awk scripts, you either create an awk file and break it into lines to be readable, or if it is embedded in a command line (like here), it is a one-liner.\nSo, though it is possible, I prefer not to break it.\nFor the review, you can add newlines in the proper places (every \u0027;\u0027)","commit_id":"9d09ad53ea71c58633a01873e878530848b26e0a"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"bad2fd2a205ecf3b2089a753166d412dc82e6e14","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"DEST_FILE\u003d${2:-${DRAGONFLOW_DIR}/tools/add_table_names}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"awk \u0027BEGIN {FS\u003d\"\u003d\"; print \"#!/bin/awk -f\\n\\nBEGIN {\"}; /^[^#].*TABLE[\\w]*/{ name\u003dgensub(\" \", \"\", \"g\", $1); id\u003dgensub(\" \", \"\", \"g\", $2); line\u003d\"  id_to_name[\"id\"]\u003d\\\"\"name\"\\\"\"; print line }; END {print \"}\\n\\n{\\n  head \u003d \\\"\\\"\\n  tail\u003d$0\\n  while (match(tail, /(resubmit\\\\(,|table\u003d)([0-9]+)/, arr)) {\\n    repl \u003d substr(tail, RSTART, RLENGTH)\\n    head \u003d head substr(tail,1,RSTART-1) repl \\\"(\\\" id_to_name[arr[2]] \\\")\\\"\\n    tail \u003d substr(tail,RSTART+RLENGTH)\\n  }\\n  print head tail\\n}\\n\"}\u0027 ${DRAGONFLOW_DIR}/dragonflow/controller/common/constants.py \u003e ${DEST_FILE}"},{"line_number":9,"context_line":"chmod +x ${DEST_FILE}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"9f91af0f_f9e90480","line":8,"in_reply_to":"9f91af0f_9951d8db","updated":"2018-01-03 09:17:21.000000000","message":"Done","commit_id":"9d09ad53ea71c58633a01873e878530848b26e0a"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"01c35916a1878479fc229a31d55b18b012bc083e","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"DEST_FILE\u003d${2:-${DRAGONFLOW_DIR}/tools/add_table_names}"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"awk \u0027BEGIN {FS\u003d\"\u003d\"; print \"#!/bin/awk -f\\n\\nBEGIN {\"}; /^[^#].*TABLE[\\w]*/{ name\u003dgensub(\" \", \"\", \"g\", $1); id\u003dgensub(\" \", \"\", \"g\", $2); line\u003d\"  id_to_name[\"id\"]\u003d\\\"\"name\"\\\"\"; print line }; END {print \"}\\n\\n{\\n  head \u003d \\\"\\\"\\n  tail\u003d$0\\n  while (match(tail, /(resubmit\\\\(,|table\u003d)([0-9]+)/, arr)) {\\n    repl \u003d substr(tail, RSTART, RLENGTH)\\n    head \u003d head substr(tail,1,RSTART-1) repl \\\"(\\\" id_to_name[arr[2]] \\\")\\\"\\n    tail \u003d substr(tail,RSTART+RLENGTH)\\n  }\\n  print head tail\\n}\\n\"}\u0027 ${DRAGONFLOW_DIR}/dragonflow/controller/common/constants.py \u003e ${DEST_FILE}"},{"line_number":9,"context_line":"chmod +x ${DEST_FILE}"}],"source_content_type":"text/x-sh","patch_set":2,"id":"9f91af0f_9951d8db","line":8,"in_reply_to":"9f91af0f_b6970b91","updated":"2018-01-03 08:38:55.000000000","message":"I know it is not the best way to get around this, but maybe adding explanation of what this line is doing can be helpful.","commit_id":"9d09ad53ea71c58633a01873e878530848b26e0a"}]}
