)]}'
{"tools/df-ovs-flow-dumper.py":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"709c4bc9f7e98e34c1ee00a436fd1b8a42cf01dd","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            flows_as_dicts.append(res)"},{"line_number":82,"context_line":"        return flows_as_dicts"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def ListFlows(self):"},{"line_number":85,"context_line":"        flows \u003d self._get_ovs_flows()"},{"line_number":86,"context_line":"        flows_list \u003d self._parse_ovs_flows(flows)"},{"line_number":87,"context_line":"        flows_list2 \u003d self._ovs_bitify_tables(flows_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_ec600aa7","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":24},"updated":"2016-01-07 07:45:44.000000000","message":"It is not common to use such a code style in python, beginning with the capital letter.\n\nListFlows --\u003e list_flows","commit_id":"a528108b1d48f7eadd32a55be7aa6373656a858d"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"709c4bc9f7e98e34c1ee00a436fd1b8a42cf01dd","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                    result.append({\u0027id\u0027: m.group(1), \u0027name\u0027: m.group(2), \u0027addr\u0027: m.group(3)})"},{"line_number":106,"context_line":"        return result"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _ovs_bitify_tables(self, flows):"},{"line_number":109,"context_line":"        tables \u003d {\u00270\u0027: \u0027START\u0027, \u00279\u0027: \u0027APPCHECK\u0027, \u002710\u0027: \u0027ARPINJECT\u0027, \u002711\u0027: \u0027DHCPINJECT\u0027, \u002717\u0027: \u0027L2LOOKUP\u0027, \u002720\u0027: \u0027L3ROUTE\u0027, \u002764\u0027: \u0027OUTPUT\u0027 }"},{"line_number":110,"context_line":"        result \u003d list()"},{"line_number":111,"context_line":"        for flow in flows:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_ec07aac7","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":26},"updated":"2016-01-07 07:45:44.000000000","message":"_ovs_beautify_tables?","commit_id":"a528108b1d48f7eadd32a55be7aa6373656a858d"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"709c4bc9f7e98e34c1ee00a436fd1b8a42cf01dd","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        return result"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def ListPorts(self):"},{"line_number":132,"context_line":"        ports \u003d self._get_ovs_local_ports()"},{"line_number":133,"context_line":"        ports \u003d self._parse_ovs_local_ports(ports)"},{"line_number":134,"context_line":"        return ports"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_cc10a602","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":17},"updated":"2016-01-07 07:45:44.000000000","message":"list_ports","commit_id":"a528108b1d48f7eadd32a55be7aa6373656a858d"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"709c4bc9f7e98e34c1ee00a436fd1b8a42cf01dd","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        ports \u003d self._parse_ovs_local_ports(ports)"},{"line_number":134,"context_line":"        return ports"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    def PrintOvsFlowRow(self, row):"},{"line_number":137,"context_line":"        if \u0027cookie\u0027 in row and row[\u0027cookie\u0027] \u003d\u003d \u00270x0,\u0027:"},{"line_number":138,"context_line":"            row.pop(\u0027cookie\u0027)"},{"line_number":139,"context_line":"        if row[\u0027packets\u0027] \u003d\u003d \u00270,\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_8cf70ed2","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":23},"updated":"2016-01-07 07:45:44.000000000","message":"print_ovs_flow_row","commit_id":"a528108b1d48f7eadd32a55be7aa6373656a858d"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"709c4bc9f7e98e34c1ee00a436fd1b8a42cf01dd","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(\"%-15s : %-50s : %-40s : %s\" % (table, match, actions, row))"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def PrintData(self):"},{"line_number":153,"context_line":"        ports \u003d self.neutron.list_ports(retrieve_all\u003dTrue)"},{"line_number":154,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":155,"context_line":"        ports2 \u003d dict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa69d971_4cfd96af","line":152,"range":{"start_line":152,"start_character":8,"end_line":152,"end_character":17},"updated":"2016-01-07 07:45:44.000000000","message":"print_data","commit_id":"a528108b1d48f7eadd32a55be7aa6373656a858d"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"4dec6e2c01d905d488399105e22c3eeaaa0dd265","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import re"},{"line_number":16,"context_line":"import sys"},{"line_number":17,"context_line":"import os_client_config"},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from neutron.agent.common import utils"},{"line_number":20,"context_line":"from neutron.common import config as common_config"},{"line_number":21,"context_line":"from neutronclient.neutron import client"},{"line_number":22,"context_line":"from dragonflow.common import common_params"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"cfg.CONF.register_opts(common_params.df_opts, \u0027df\u0027)"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a8bc5a2_32b0d68b","line":22,"range":{"start_line":15,"start_character":0,"end_line":22,"end_character":43},"updated":"2016-09-22 08:30:27.000000000","message":"invalid import order","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"4dec6e2c01d905d488399105e22c3eeaaa0dd265","unresolved":false,"context_lines":[{"line_number":32,"context_line":"def credentials(cloud\u003d\u0027devstack-admin\u0027):"},{"line_number":33,"context_line":"    \"\"\"Retrieves credentials to run functional tests\"\"\""},{"line_number":34,"context_line":"    return get_cloud_config(cloud\u003dcloud).get_auth_args()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class OvsInfo():"},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":"        creds \u003d credentials()"},{"line_number":39,"context_line":"        tenant_name \u003d creds[\u0027project_name\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a8bc5a2_d235f2f7","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":15},"updated":"2016-09-22 08:30:27.000000000","message":"two space line","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"             tenant_name\u003dtenant_name)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _get_ovs_flows(self):"},{"line_number":46,"context_line":"        full_args \u003d [\"ovs-ofctl\", \"dump-flows\", \u0027br-int\u0027, \u0027-O Openflow13\u0027]"},{"line_number":47,"context_line":"        flows \u003d utils.execute(full_args, run_as_root\u003dTrue,"},{"line_number":48,"context_line":"                              process_input\u003dNone)"},{"line_number":49,"context_line":"        return flows"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_bc131c64","line":46,"range":{"start_line":46,"start_character":58,"end_line":46,"end_character":73},"updated":"2016-02-02 09:16:35.000000000","message":"I assume this works but doesn\u0027t it need to be two items in the list?","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"             tenant_name\u003dtenant_name)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _get_ovs_flows(self):"},{"line_number":46,"context_line":"        full_args \u003d [\"ovs-ofctl\", \"dump-flows\", \u0027br-int\u0027, \u0027-O Openflow13\u0027]"},{"line_number":47,"context_line":"        flows \u003d utils.execute(full_args, run_as_root\u003dTrue,"},{"line_number":48,"context_line":"                              process_input\u003dNone)"},{"line_number":49,"context_line":"        return flows"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_e629fe8a","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":17},"updated":"2016-02-02 09:16:35.000000000","message":"full_args can be a class level field since it is the same for all instances.","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _get_ovs_flows(self):"},{"line_number":46,"context_line":"        full_args \u003d [\"ovs-ofctl\", \"dump-flows\", \u0027br-int\u0027, \u0027-O Openflow13\u0027]"},{"line_number":47,"context_line":"        flows \u003d utils.execute(full_args, run_as_root\u003dTrue,"},{"line_number":48,"context_line":"                              process_input\u003dNone)"},{"line_number":49,"context_line":"        return flows"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _parse_ovs_flows(self, flows):"},{"line_number":52,"context_line":"        flow_list \u003d flows.split(\"\\n\")[1:]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_dc337812","line":49,"range":{"start_line":47,"start_character":8,"end_line":49,"end_character":20},"updated":"2016-02-02 09:16:35.000000000","message":"You can just return. No need for a variable","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        return flows"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _parse_ovs_flows(self, flows):"},{"line_number":52,"context_line":"        flow_list \u003d flows.split(\"\\n\")[1:]"},{"line_number":53,"context_line":"        flows_as_dicts \u003d []"},{"line_number":54,"context_line":"        for flow in flow_list:"},{"line_number":55,"context_line":"            if len(flow) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_663d0ebb","line":52,"range":{"start_line":52,"start_character":26,"end_line":52,"end_character":31},"updated":"2016-02-02 09:16:35.000000000","message":"use splitlines() instead of split()","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            if len(flow) \u003d\u003d 0:"},{"line_number":56,"context_line":"                continue"},{"line_number":57,"context_line":"            fs \u003d flow.split(\u0027 \u0027)"},{"line_number":58,"context_line":"            res \u003d {}"},{"line_number":59,"context_line":"            res[\u0027table\u0027] \u003d fs[3].split(\u0027\u003d\u0027)[1]"},{"line_number":60,"context_line":"            res[\u0027match\u0027] \u003d fs[-2]"},{"line_number":61,"context_line":"            res[\u0027packets\u0027] \u003d fs[4].split(\u0027\u003d\u0027)[1]"},{"line_number":62,"context_line":"            res[\u0027actions\u0027] \u003d fs[-1].split(\u0027\u003d\u0027)[1]"},{"line_number":63,"context_line":"            res[\u0027cookie\u0027] \u003d fs[1].split(\u0027\u003d\u0027)[1]"},{"line_number":64,"context_line":"            m \u003d re.search(\u0027priority\u003d(\\d+)\u0027, res[\u0027match\u0027])"},{"line_number":65,"context_line":"            if m:"},{"line_number":66,"context_line":"                res[\u0027priority\u0027] \u003d m.group(1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_66d98e83","line":63,"range":{"start_line":58,"start_character":12,"end_line":63,"end_character":47},"updated":"2016-02-02 09:16:35.000000000","message":"Can be done in a single literal:\n\n res \u003d {\n     \"table\": fs[3].split(\u0027\u003d\u0027)[1]\n     ...\n }","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            res[\u0027packets\u0027] \u003d fs[4].split(\u0027\u003d\u0027)[1]"},{"line_number":62,"context_line":"            res[\u0027actions\u0027] \u003d fs[-1].split(\u0027\u003d\u0027)[1]"},{"line_number":63,"context_line":"            res[\u0027cookie\u0027] \u003d fs[1].split(\u0027\u003d\u0027)[1]"},{"line_number":64,"context_line":"            m \u003d re.search(\u0027priority\u003d(\\d+)\u0027, res[\u0027match\u0027])"},{"line_number":65,"context_line":"            if m:"},{"line_number":66,"context_line":"                res[\u0027priority\u0027] \u003d m.group(1)"},{"line_number":67,"context_line":"                res[\u0027match\u0027] \u003d re.sub(r\u0027priority\u003d(\\d+),?\u0027, \u0027\u0027, res[\u0027match\u0027])"},{"line_number":68,"context_line":"            flows_as_dicts.append(res)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_4671f276","line":65,"range":{"start_line":64,"start_character":12,"end_line":65,"end_character":17},"updated":"2016-02-02 09:16:35.000000000","message":"no need for m. I would understand you wanting to make the condition more readable but m doesn\u0027t do it.\neither change it to \u0027has_priority_section\u0027 or somrthing similar or just but the predicate inline.","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def list_flows(self):"},{"line_number":72,"context_line":"        flows \u003d self._get_ovs_flows()"},{"line_number":73,"context_line":"        flows_list \u003d self._parse_ovs_flows(flows)"},{"line_number":74,"context_line":"        flows_list2 \u003d self._ovs_bitify_tables(flows_list)"},{"line_number":75,"context_line":"        return flows_list2"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _get_ovs_local_ports(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_e6d6de26","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":19},"updated":"2016-02-02 09:16:35.000000000","message":"just return and save yourself the trouble of naming a variable xxx2","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"436327b70ae6ba41587f55235acf98bf369c2b1f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return flows_list2"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _get_ovs_local_ports(self):"},{"line_number":78,"context_line":"        #full_args \u003d [\"ovs-dpctl\", \"show\"]"},{"line_number":79,"context_line":"        full_args \u003d [\"ovs-ofctl\", \"show\", \u0027br-int\u0027, \u0027-O Openflow13\u0027]"},{"line_number":80,"context_line":"        ports \u003d utils.execute(full_args, run_as_root\u003dTrue,"},{"line_number":81,"context_line":"                              process_input\u003dNone)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_92a8eb8d","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":42},"updated":"2016-01-11 09:25:13.000000000","message":"useless comment?","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def _parse_ovs_local_ports(self, ports):"},{"line_number":85,"context_line":"        port_list \u003d ports.split(\"\\n\")[1:]"},{"line_number":86,"context_line":"        result \u003d list()"},{"line_number":87,"context_line":"        for line in port_list:"},{"line_number":88,"context_line":"            if \"addr:\" in line:"},{"line_number":89,"context_line":"                line \u003d line.strip()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_a6b786f4","line":86,"range":{"start_line":86,"start_character":17,"end_line":86,"end_character":23},"updated":"2016-02-02 09:16:35.000000000","message":"[]","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        for line in port_list:"},{"line_number":88,"context_line":"            if \"addr:\" in line:"},{"line_number":89,"context_line":"                line \u003d line.strip()"},{"line_number":90,"context_line":"                m \u003d re.search(\u0027\\A(\\w+)\\(([-\\w]+)\\): addr:(.*?)\\Z\u0027, line)"},{"line_number":91,"context_line":"                if m:"},{"line_number":92,"context_line":"                    result.append({\u0027id\u0027: m.group(1), \u0027name\u0027: m.group(2), \u0027addr\u0027: m.group(3)})"},{"line_number":93,"context_line":"        return result"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_e6a49eba","line":91,"range":{"start_line":90,"start_character":16,"end_line":91,"end_character":21},"updated":"2016-02-02 09:16:35.000000000","message":"ditto","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                    result.append({\u0027id\u0027: m.group(1), \u0027name\u0027: m.group(2), \u0027addr\u0027: m.group(3)})"},{"line_number":93,"context_line":"        return result"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _ovs_bitify_tables(self, flows):"},{"line_number":96,"context_line":"        tables \u003d {\u00270\u0027: \u0027START\u0027, \u00279\u0027: \u0027APPCHECK\u0027, \u002710\u0027: \u0027ARPINJECT\u0027, \u002711\u0027: \u0027DHCPINJECT\u0027, \u002717\u0027: \u0027L2LOOKUP\u0027, \u002720\u0027: \u0027L3ROUTE\u0027, \u002764\u0027: \u0027OUTPUT\u0027 }"},{"line_number":97,"context_line":"        result \u003d list()"},{"line_number":98,"context_line":"        for flow in flows:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_6678ae2c","line":95,"range":{"start_line":95,"start_character":13,"end_line":95,"end_character":19},"updated":"2016-02-02 09:16:35.000000000","message":"Are you making it more bitty or beautiful?","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        return result"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _ovs_bitify_tables(self, flows):"},{"line_number":96,"context_line":"        tables \u003d {\u00270\u0027: \u0027START\u0027, \u00279\u0027: \u0027APPCHECK\u0027, \u002710\u0027: \u0027ARPINJECT\u0027, \u002711\u0027: \u0027DHCPINJECT\u0027, \u002717\u0027: \u0027L2LOOKUP\u0027, \u002720\u0027: \u0027L3ROUTE\u0027, \u002764\u0027: \u0027OUTPUT\u0027 }"},{"line_number":97,"context_line":"        result \u003d list()"},{"line_number":98,"context_line":"        for flow in flows:"},{"line_number":99,"context_line":"            if flow[\u0027table\u0027].strip(\u0027,\u0027) in tables:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_8697ea39","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":14},"updated":"2016-02-02 09:16:35.000000000","message":"Should be somewhere on the class.\nAlso more than 80 chars.\n\nAlso name it `ovs_table_name_mapping` or something similar","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def _ovs_bitify_tables(self, flows):"},{"line_number":96,"context_line":"        tables \u003d {\u00270\u0027: \u0027START\u0027, \u00279\u0027: \u0027APPCHECK\u0027, \u002710\u0027: \u0027ARPINJECT\u0027, \u002711\u0027: \u0027DHCPINJECT\u0027, \u002717\u0027: \u0027L2LOOKUP\u0027, \u002720\u0027: \u0027L3ROUTE\u0027, \u002764\u0027: \u0027OUTPUT\u0027 }"},{"line_number":97,"context_line":"        result \u003d list()"},{"line_number":98,"context_line":"        for flow in flows:"},{"line_number":99,"context_line":"            if flow[\u0027table\u0027].strip(\u0027,\u0027) in tables:"},{"line_number":100,"context_line":"                flow[\u0027table\u0027] \u003d tables[flow[\u0027table\u0027].strip(\u0027,\u0027)]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_46a2529c","line":97,"range":{"start_line":97,"start_character":17,"end_line":97,"end_character":23},"updated":"2016-02-02 09:16:35.000000000","message":"[]","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        tables \u003d {\u00270\u0027: \u0027START\u0027, \u00279\u0027: \u0027APPCHECK\u0027, \u002710\u0027: \u0027ARPINJECT\u0027, \u002711\u0027: \u0027DHCPINJECT\u0027, \u002717\u0027: \u0027L2LOOKUP\u0027, \u002720\u0027: \u0027L3ROUTE\u0027, \u002764\u0027: \u0027OUTPUT\u0027 }"},{"line_number":97,"context_line":"        result \u003d list()"},{"line_number":98,"context_line":"        for flow in flows:"},{"line_number":99,"context_line":"            if flow[\u0027table\u0027].strip(\u0027,\u0027) in tables:"},{"line_number":100,"context_line":"                flow[\u0027table\u0027] \u003d tables[flow[\u0027table\u0027].strip(\u0027,\u0027)]"},{"line_number":101,"context_line":"            m \u003d re.search(\u0027goto_table:(\\d+)\u0027, flow[\u0027actions\u0027])"},{"line_number":102,"context_line":"            if m and m.group(1) in tables:"},{"line_number":103,"context_line":"                flow[\u0027actions\u0027] \u003d re.sub(\u0027goto_table:(\\d+)\u0027,\u0027goto:\u0027+tables[m.group(1)], flow[\u0027actions\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_46f7b28c","line":100,"range":{"start_line":99,"start_character":12,"end_line":100,"end_character":64},"updated":"2016-02-02 09:16:35.000000000","message":"flow[\u0027table\u0027] \u003d tables.get(flow[\u0027table\u0027].strip(\u0027,\u0027), flow[\u0027table\u0027])","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        return ports"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def print_ovs_flow_row(self, row):"},{"line_number":124,"context_line":"        if \u0027cookie\u0027 in row and row[\u0027cookie\u0027] \u003d\u003d \u00270x0,\u0027:"},{"line_number":125,"context_line":"            row.pop(\u0027cookie\u0027)"},{"line_number":126,"context_line":"        if row[\u0027packets\u0027] \u003d\u003d \u00270,\u0027:"},{"line_number":127,"context_line":"            row.pop(\u0027packets\u0027)"},{"line_number":128,"context_line":"        priority \u003d row[\u0027priority\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_26739617","line":125,"range":{"start_line":124,"start_character":8,"end_line":125,"end_character":29},"updated":"2016-02-02 09:16:35.000000000","message":"if row.get(\u0027cookie\u0027) \u003d\u003d \u00270x0,\u0027:","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    def print_ovs_flow_row(self, row):"},{"line_number":124,"context_line":"        if \u0027cookie\u0027 in row and row[\u0027cookie\u0027] \u003d\u003d \u00270x0,\u0027:"},{"line_number":125,"context_line":"            row.pop(\u0027cookie\u0027)"},{"line_number":126,"context_line":"        if row[\u0027packets\u0027] \u003d\u003d \u00270,\u0027:"},{"line_number":127,"context_line":"            row.pop(\u0027packets\u0027)"},{"line_number":128,"context_line":"        priority \u003d row[\u0027priority\u0027]"},{"line_number":129,"context_line":"        actions \u003d row[\u0027actions\u0027]"},{"line_number":130,"context_line":"        table \u003d row[\u0027table\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_6673cee8","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":30},"updated":"2016-02-02 09:16:35.000000000","message":"Is that really part of the printing process?","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            row.pop(\u0027cookie\u0027)"},{"line_number":126,"context_line":"        if row[\u0027packets\u0027] \u003d\u003d \u00270,\u0027:"},{"line_number":127,"context_line":"            row.pop(\u0027packets\u0027)"},{"line_number":128,"context_line":"        priority \u003d row[\u0027priority\u0027]"},{"line_number":129,"context_line":"        actions \u003d row[\u0027actions\u0027]"},{"line_number":130,"context_line":"        table \u003d row[\u0027table\u0027]"},{"line_number":131,"context_line":"        match \u003d row[\u0027match\u0027]"},{"line_number":132,"context_line":"        row.pop(\u0027priority\u0027)"},{"line_number":133,"context_line":"        row.pop(\u0027actions\u0027)"},{"line_number":134,"context_line":"        row.pop(\u0027table\u0027)"},{"line_number":135,"context_line":"        row.pop(\u0027match\u0027)"},{"line_number":136,"context_line":"        if len(row) \u003d\u003d 0:"},{"line_number":137,"context_line":"            row \u003d \"\""},{"line_number":138,"context_line":"        print(\"%-10s | %-3s | %-50s | %-40s | %s\" % (table, priority, match, actions, row))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_26e1569b","line":135,"range":{"start_line":128,"start_character":8,"end_line":135,"end_character":24},"updated":"2016-02-02 09:16:35.000000000","message":"priority \u003d row.pop(\u0027priority\u0027)\n actions \u003d row.pop(\u0027actions\u0027)\n ...","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                            netinfo.append(z)"},{"line_number":165,"context_line":"                    else:"},{"line_number":166,"context_line":"                        netinfo.append(subnet) # just copy fixed_ip array"},{"line_number":167,"context_line":"                print(\"in_port_\"+ovs_port[\u0027id\u0027], ovs_port[\u0027name\u0027], ovs_port[\u0027addr\u0027], info[\u0027name\u0027], info[\u0027device_owner\u0027], info[\u0027mac_address\u0027], netinfo)"},{"line_number":168,"context_line":"                print(info)"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                print(\"in_port_\"+ovs_port[\u0027id\u0027], ovs_port[\u0027name\u0027], ovs_port[\u0027addr\u0027], \u0027-----------------\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_268f16ce","line":167,"range":{"start_line":167,"start_character":0,"end_line":167,"end_character":150},"updated":"2016-02-02 09:16:35.000000000","message":"please look into string fomratting[1] to make this more readable and pythonic.\n\n[1] https://docs.python.org/3.3/library/string.html#format-string-syntax","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"c8244ff502beaaa1b675f5e25805caa3fbe850cc","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                print(\"in_port_\"+ovs_port[\u0027id\u0027], ovs_port[\u0027name\u0027], ovs_port[\u0027addr\u0027], info[\u0027name\u0027], info[\u0027device_owner\u0027], info[\u0027mac_address\u0027], netinfo)"},{"line_number":168,"context_line":"                print(info)"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                print(\"in_port_\"+ovs_port[\u0027id\u0027], ovs_port[\u0027name\u0027], ovs_port[\u0027addr\u0027], \u0027-----------------\u0027)"},{"line_number":171,"context_line":"        flows \u003d self.list_flows()"},{"line_number":172,"context_line":"        print(\"\u003d\" * 130)"},{"line_number":173,"context_line":"        print(\"TABLE:     | PRI | PATTERN                                            | ACTION                                   | More\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_86b4ca82","line":170,"range":{"start_line":170,"start_character":0,"end_line":170,"end_character":105},"updated":"2016-02-02 09:16:35.000000000","message":"ditto","commit_id":"07ad22222578ce7ca2c55652b9a4692ec859673f"}]}
