)]}'
{"dragonflow/controller/dhcp_app.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"90aa437908a583000f8a7c336f4c8eb0ae53c813","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        return dns_bin"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def _get_host_routes_list_bin(self, subnet):"},{"line_number":285,"context_line":"        host_routes \u003d []"},{"line_number":286,"context_line":"        if len(subnet.get_host_routes()) \u003e 0:"},{"line_number":287,"context_line":"            host_routes \u003d subnet.get_host_routes()"},{"line_number":288,"context_line":"        routes_bin \u003d \u0027\u0027"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        for route in host_routes:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_0581f64d","line":287,"range":{"start_line":285,"start_character":0,"end_line":287,"end_character":50},"updated":"2016-05-24 06:08:20.000000000","message":"Why not just do: \u0027host_routes \u003d subnet.get_host_routes()\u0027 ?","commit_id":"c71c0d666fcc99645ae36040df4ebdabcd6265a2"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"615be5af3516961d08b61f6a54e37d20a60c481d","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        return dns_bin"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    def _get_host_routes_list_bin(self, subnet):"},{"line_number":285,"context_line":"        host_routes \u003d []"},{"line_number":286,"context_line":"        if len(subnet.get_host_routes()) \u003e 0:"},{"line_number":287,"context_line":"            host_routes \u003d subnet.get_host_routes()"},{"line_number":288,"context_line":"        routes_bin \u003d \u0027\u0027"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        for route in host_routes:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_76afd62b","line":287,"range":{"start_line":285,"start_character":0,"end_line":287,"end_character":50},"in_reply_to":"bab6814e_0581f64d","updated":"2016-05-24 07:18:53.000000000","message":"yes, I\u0027ll fix it.","commit_id":"c71c0d666fcc99645ae36040df4ebdabcd6265a2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"90aa437908a583000f8a7c336f4c8eb0ae53c813","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                        25-32               4"},{"line_number":302,"context_line":"            \"\"\""},{"line_number":303,"context_line":"            addr_bin \u003d addrconv.ipv4.text_to_bin(dest)"},{"line_number":304,"context_line":"            if mask is 0:"},{"line_number":305,"context_line":"                dest_len \u003d 0"},{"line_number":306,"context_line":"            elif mask in range(1, 9):"},{"line_number":307,"context_line":"                dest_len \u003d 1"},{"line_number":308,"context_line":"            elif mask in range(9, 17):"},{"line_number":309,"context_line":"                dest_len \u003d 2"},{"line_number":310,"context_line":"            elif mask in range(17, 25):"},{"line_number":311,"context_line":"                dest_len \u003d 3"},{"line_number":312,"context_line":"            elif mask in range(25, 33):"},{"line_number":313,"context_line":"                dest_len \u003d 4"},{"line_number":314,"context_line":"            routes_bin +\u003d addr_bin[:dest_len]"},{"line_number":315,"context_line":"            routes_bin +\u003d addrconv.ipv4.text_to_bin(route.get(\u0027nexthop\u0027))"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_48083529","line":313,"range":{"start_line":304,"start_character":0,"end_line":313,"end_character":28},"updated":"2016-05-24 06:08:20.000000000","message":"Isn\u0027t this just \u0027int(math.ceil(mask/8.0))\u0027?","commit_id":"c71c0d666fcc99645ae36040df4ebdabcd6265a2"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"615be5af3516961d08b61f6a54e37d20a60c481d","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                        25-32               4"},{"line_number":302,"context_line":"            \"\"\""},{"line_number":303,"context_line":"            addr_bin \u003d addrconv.ipv4.text_to_bin(dest)"},{"line_number":304,"context_line":"            if mask is 0:"},{"line_number":305,"context_line":"                dest_len \u003d 0"},{"line_number":306,"context_line":"            elif mask in range(1, 9):"},{"line_number":307,"context_line":"                dest_len \u003d 1"},{"line_number":308,"context_line":"            elif mask in range(9, 17):"},{"line_number":309,"context_line":"                dest_len \u003d 2"},{"line_number":310,"context_line":"            elif mask in range(17, 25):"},{"line_number":311,"context_line":"                dest_len \u003d 3"},{"line_number":312,"context_line":"            elif mask in range(25, 33):"},{"line_number":313,"context_line":"                dest_len \u003d 4"},{"line_number":314,"context_line":"            routes_bin +\u003d addr_bin[:dest_len]"},{"line_number":315,"context_line":"            routes_bin +\u003d addrconv.ipv4.text_to_bin(route.get(\u0027nexthop\u0027))"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_7676b6d9","line":313,"range":{"start_line":304,"start_character":0,"end_line":313,"end_character":28},"in_reply_to":"bab6814e_48083529","updated":"2016-05-24 07:18:53.000000000","message":"yes, I\u0027ll fix it","commit_id":"c71c0d666fcc99645ae36040df4ebdabcd6265a2"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"69771f28d0a5d1b19b66bad8810b47b77d9f23ce","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        for route in host_routes:"},{"line_number":290,"context_line":"            dest, slash, mask \u003d route.get(\u0027destination\u0027).partition(\u0027/\u0027)"},{"line_number":291,"context_line":"            routes_bin +\u003d struct.pack(\u0027B\u0027, mask)"},{"line_number":292,"context_line":"            \"\"\""},{"line_number":293,"context_line":"            for compact encoding"},{"line_number":294,"context_line":"            Width of subnet mask      Number of significant octets"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_e6a2e699","line":291,"updated":"2016-05-24 12:32:15.000000000","message":"I think you need to keep \u0027mask \u003d int(mask)\u0027","commit_id":"b83f53a01658c3085eab4e49c140ba790ecac5ad"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"54c0131f49cef2328c6451e28b5d68f772788b51","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        for route in host_routes:"},{"line_number":290,"context_line":"            dest, slash, mask \u003d route.get(\u0027destination\u0027).partition(\u0027/\u0027)"},{"line_number":291,"context_line":"            routes_bin +\u003d struct.pack(\u0027B\u0027, mask)"},{"line_number":292,"context_line":"            \"\"\""},{"line_number":293,"context_line":"            for compact encoding"},{"line_number":294,"context_line":"            Width of subnet mask      Number of significant octets"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_45b0e5dd","line":291,"in_reply_to":"bab6814e_e6a2e699","updated":"2016-05-25 01:33:49.000000000","message":"yes, you\u0027re right","commit_id":"b83f53a01658c3085eab4e49c140ba790ecac5ad"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"6d94edd1d91bec7e698d14f37b33027cda7d966d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                port_tunnel_key)"},{"line_number":125,"context_line":"            return"},{"line_number":126,"context_line":"        try:"},{"line_number":127,"context_line":"            self._handle_dhcp_request(msg, pkt, lport)"},{"line_number":128,"context_line":"        except Exception as exception:"},{"line_number":129,"context_line":"            LOG.error(_LE("},{"line_number":130,"context_line":"                \"Unable to handle packet %(msg)s: %(e)s\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_7a74b29b","line":127,"updated":"2016-05-29 11:01:23.000000000","message":"There is an exception thrown from this call:\n2016-05-26 14:21:46.154 22247 ERROR dragonflow.controller.dhcp_app [-] Unable to handle packet version\u003d0x4,msg_type\u003d0xa,msg_len\u003d0x173,xid\u003d0x0,OFPPacketIn(buffer_id\u003d4294967295,cookie\u003d0,data\u003d\u0027\\xff\\xff\\xff\\xff\\xff\\xff\\xfa\\x16\u003ek!\\x0c\\x08\\x00E\\x00\\x01\\x13\\x00\\x00\\x00\\x00\\xff\\x11\\xba\\xda\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\x00D\\x00C\\x00\\xff\\xbc\\xb1\\x01\\x01\\x06\\x00\\x13\\x1c\\xdf\\xea\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xfa\\x16\u003ek!\\x0c\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00c\\x82Sc5\\x01\\x017\\x01\\x03\\xff\u0027,match\u003dOFPMatch(oxm_fields\u003d{\u0027reg6\u0027: 22, \u0027metadata\u0027: 22, \u0027ct_zone\u0027: 10, \u0027in_port\u0027: 12, \u0027ct_state\u0027: (33, 65535)}),reason\u003d1,table_id\u003d11,total_len\u003d289): cannot convert argument to integer\n\nConsider changing LOG.error below to LOG.exception, so that a stack trace will also be generated.","commit_id":"ecfcd73208a1f076ee6bdea6e3be3bf67bb92759"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"3f7ecaffc473f3e012069898a13f6700847417ed","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                port_tunnel_key)"},{"line_number":125,"context_line":"            return"},{"line_number":126,"context_line":"        try:"},{"line_number":127,"context_line":"            self._handle_dhcp_request(msg, pkt, lport)"},{"line_number":128,"context_line":"        except Exception as exception:"},{"line_number":129,"context_line":"            LOG.error(_LE("},{"line_number":130,"context_line":"                \"Unable to handle packet %(msg)s: %(e)s\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_d08bfa1c","line":127,"in_reply_to":"9abb7d3a_7a74b29b","updated":"2016-05-30 02:12:48.000000000","message":"where did you get the above log?","commit_id":"ecfcd73208a1f076ee6bdea6e3be3bf67bb92759"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"e76fbf0cd5293dca323b0ff69f1ba08d22a3f238","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                port_tunnel_key)"},{"line_number":125,"context_line":"            return"},{"line_number":126,"context_line":"        try:"},{"line_number":127,"context_line":"            self._handle_dhcp_request(msg, pkt, lport)"},{"line_number":128,"context_line":"        except Exception as exception:"},{"line_number":129,"context_line":"            LOG.error(_LE("},{"line_number":130,"context_line":"                \"Unable to handle packet %(msg)s: %(e)s\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_5c69e124","line":127,"in_reply_to":"9abb7d3a_d08bfa1c","updated":"2016-05-30 06:12:58.000000000","message":"I\u0027ve found it, thx.","commit_id":"ecfcd73208a1f076ee6bdea6e3be3bf67bb92759"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"21fff3a7cddbbf906d22944faae2913898a0e4c3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            dhcp.option(DHCP_DOMAIN_NAME_OPT,"},{"line_number":195,"context_line":"                    domain_name_bin,"},{"line_number":196,"context_line":"                    len(self.domain_name)),"},{"line_number":197,"context_line":"            dhcp.option(DHCP_CLASSLESS_ROUTE, host_routes, len(host_routes))]"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if self.advertise_mtu:"},{"line_number":200,"context_line":"            intreface_mtu \u003d self._get_port_mtu(lport)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_f392834a","line":197,"range":{"start_line":197,"start_character":17,"end_line":197,"end_character":23},"updated":"2016-05-30 10:47:27.000000000","message":"If user doesn\u0027t set options like host routes, will we add many options with null values to the dhcp packet?","commit_id":"29f9ee28ca65b3e80fd9b5ed52cf723f467e2e0a"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"ef8a1be7f08ac68d3f61f177f8a698a4642e6da7","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            dhcp.option(DHCP_DOMAIN_NAME_OPT,"},{"line_number":195,"context_line":"                    domain_name_bin,"},{"line_number":196,"context_line":"                    len(self.domain_name)),"},{"line_number":197,"context_line":"            dhcp.option(DHCP_CLASSLESS_ROUTE, host_routes, len(host_routes))]"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if self.advertise_mtu:"},{"line_number":200,"context_line":"            intreface_mtu \u003d self._get_port_mtu(lport)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_9f34d1fb","line":197,"range":{"start_line":197,"start_character":17,"end_line":197,"end_character":23},"in_reply_to":"9abb7d3a_f392834a","updated":"2016-05-30 10:49:18.000000000","message":"no, the ryu lib will take care of this.\nwhen the option is not set, it will not be set into DHCP packet.","commit_id":"29f9ee28ca65b3e80fd9b5ed52cf723f467e2e0a"}],"dragonflow/neutron/plugin.py":[{"author":{"_account_id":20405,"name":"liuhaixia","email":"liuhaixia315@huawei.com","username":"liuhaixia"},"change_message_id":"62218b6df0c39f462a6c0db337bdd8805f6e4ed4","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                dhcp_ip\u003ddhcp_address,"},{"line_number":302,"context_line":"                gateway_ip\u003dnew_subnet[\u0027gateway_ip\u0027],"},{"line_number":303,"context_line":"                dns_nameservers\u003dnew_subnet.get(\u0027dns_nameservers\u0027, []),"},{"line_number":304,"context_line":"                host_routes\u003dnew_subnet.get(\u0027host_routes\u0027, []))"},{"line_number":305,"context_line":"        return new_subnet"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    @lock_db.wrap_db_lock()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_fb6691eb","line":304,"range":{"start_line":304,"start_character":2,"end_line":304,"end_character":62},"updated":"2016-05-26 06:44:30.000000000","message":"when ml2 is ready, please update it also.","commit_id":"ecfcd73208a1f076ee6bdea6e3be3bf67bb92759"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"0176c88a41d6fcf9143e00cdf3496ddb9bc58ece","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                dhcp_ip\u003ddhcp_address,"},{"line_number":302,"context_line":"                gateway_ip\u003dnew_subnet[\u0027gateway_ip\u0027],"},{"line_number":303,"context_line":"                dns_nameservers\u003dnew_subnet.get(\u0027dns_nameservers\u0027, []),"},{"line_number":304,"context_line":"                host_routes\u003dnew_subnet.get(\u0027host_routes\u0027, []))"},{"line_number":305,"context_line":"        return new_subnet"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    @lock_db.wrap_db_lock()"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_e694388c","line":304,"range":{"start_line":304,"start_character":2,"end_line":304,"end_character":62},"in_reply_to":"bab6814e_fb6691eb","updated":"2016-05-26 07:20:44.000000000","message":"ok","commit_id":"ecfcd73208a1f076ee6bdea6e3be3bf67bb92759"}]}
