)]}'
{"dragonflow/db/api_nb.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"04b55805cb9a024a2ff9a812c577cf7bef93836c","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    def get_subnets(self):"},{"line_number":776,"context_line":"        subnets \u003d self.lswitch.get(\u0027subnets\u0027)"},{"line_number":777,"context_line":"        if subnets:"},{"line_number":778,"context_line":"            res \u003d []"},{"line_number":779,"context_line":"            for subnet in subnets:"},{"line_number":780,"context_line":"                res.append(Subnet(subnet))"},{"line_number":781,"context_line":"            return res"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_622cd202","line":778,"updated":"2016-07-05 17:37:11.000000000","message":"I think this is a classic use-case for list comprehension, but that\u0027s not a must.","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"832b8ca56fe1099aa7d298815755fd1c19d2c823","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    def get_subnets(self):"},{"line_number":776,"context_line":"        subnets \u003d self.lswitch.get(\u0027subnets\u0027)"},{"line_number":777,"context_line":"        if subnets:"},{"line_number":778,"context_line":"            res \u003d []"},{"line_number":779,"context_line":"            for subnet in subnets:"},{"line_number":780,"context_line":"                res.append(Subnet(subnet))"},{"line_number":781,"context_line":"            return res"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_9ecdc987","line":778,"in_reply_to":"1aa78d24_622cd202","updated":"2016-07-05 22:37:47.000000000","message":"+1","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80abab2dc9fe98831d85ef1da5d8bd6a35cc129b","unresolved":false,"context_lines":[{"line_number":775,"context_line":"    def get_subnets(self):"},{"line_number":776,"context_line":"        subnets \u003d self.lswitch.get(\u0027subnets\u0027)"},{"line_number":777,"context_line":"        if subnets:"},{"line_number":778,"context_line":"            res \u003d []"},{"line_number":779,"context_line":"            for subnet in subnets:"},{"line_number":780,"context_line":"                res.append(Subnet(subnet))"},{"line_number":781,"context_line":"            return res"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_2ada8f4c","line":778,"in_reply_to":"1aa78d24_622cd202","updated":"2016-07-06 01:31:08.000000000","message":"ok","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"04b55805cb9a024a2ff9a812c577cf7bef93836c","unresolved":false,"context_lines":[{"line_number":874,"context_line":"        return self.lport.get(\u0027allowed_address_pairs\u0027)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def get_port_security_enable(self):"},{"line_number":877,"context_line":"        return self.lport.get(\u0027port_security_enabled\u0027, False)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def set_external_value(self, key, value):"},{"line_number":880,"context_line":"        self.external_dict[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_02eeaeeb","line":877,"range":{"start_line":877,"start_character":55,"end_line":877,"end_character":60},"updated":"2016-07-05 17:37:11.000000000","message":"How do we decide on this default? Is it even possible that this value doesn\u0027t exist?","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80abab2dc9fe98831d85ef1da5d8bd6a35cc129b","unresolved":false,"context_lines":[{"line_number":874,"context_line":"        return self.lport.get(\u0027allowed_address_pairs\u0027)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def get_port_security_enable(self):"},{"line_number":877,"context_line":"        return self.lport.get(\u0027port_security_enabled\u0027, False)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"    def set_external_value(self, key, value):"},{"line_number":880,"context_line":"        self.external_dict[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_4abc3bdc","line":877,"range":{"start_line":877,"start_character":55,"end_line":877,"end_character":60},"in_reply_to":"1aa78d24_02eeaeeb","updated":"2016-07-06 01:31:08.000000000","message":"all the bool default value is False, and in mech driver the \"port_security_enable\" key has been set, so it would be exist.","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"daf1f6c37d0d8607fc383c82c241161c5ad747f1","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        return self.lport.get(\u0027allowed_address_pairs\u0027)"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"    def get_port_security_enable(self):"},{"line_number":874,"context_line":"        return self.lport.get(\u0027port_security_enabled\u0027, False)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"    def set_external_value(self, key, value):"},{"line_number":877,"context_line":"        self.external_dict[key] \u003d value"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_1a1f1cb8","line":874,"range":{"start_line":874,"start_character":0,"end_line":874,"end_character":61},"updated":"2016-07-06 05:22:14.000000000","message":"In that case, I wouldn\u0027t have a problem with this code raising an exception if the field isn\u0027t found. But that can wait.","commit_id":"d399ff87bd62c6e0c64b327b9bf0482890c5064d"}],"dragonflow/neutron/ml2/mech_driver.py":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"4c0dcfdbb346558af06e3dc9fb985e241551271c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_b26f7a91","line":181,"range":{"start_line":181,"start_character":20,"end_line":181,"end_character":27},"updated":"2016-07-04 07:39:53.000000000","message":"in nb_api.py\n    def get_subnets(self):\n        res \u003d []\n        for subnet in self.lswitch[\u0027subnets\u0027]:\n            res.append(Subnet(subnet))\n        return res\nso this doesn\u0027t effect the final result.","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"0fa6db64930b69f3babd09c6a4851b7fbc5176ff","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_35041414","line":181,"range":{"start_line":181,"start_character":20,"end_line":181,"end_character":27},"in_reply_to":"1aa78d24_b26f7a91","updated":"2016-07-04 07:51:52.000000000","message":"ok, I\u0027ll modify the nb_api.py to uniform all the similar places, thx for your reminding:)","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"4c0dcfdbb346558af06e3dc9fb985e241551271c","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            dhcp_ip\u003ddhcp_address,"},{"line_number":320,"context_line":"            gateway_ip\u003dsubnet[\u0027gateway_ip\u0027],"},{"line_number":321,"context_line":"            dns_nameservers\u003dsubnet.get(\u0027dns_nameservers\u0027, None),"},{"line_number":322,"context_line":"            host_routes\u003dsubnet.get(\u0027host_routes\u0027, None))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        LOG.info(_LI(\"DFMechDriver: create subnet %s\"), subnet[\u0027id\u0027])"},{"line_number":325,"context_line":"        return subnet"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_52ba96e2","line":322,"range":{"start_line":322,"start_character":24,"end_line":322,"end_character":30},"updated":"2016-07-04 07:39:53.000000000","message":"same problem\n    def get_host_routes(self):\n        return self.subnet.get(\u0027host_routes\u0027, [])","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"0fa6db64930b69f3babd09c6a4851b7fbc5176ff","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            dhcp_ip\u003ddhcp_address,"},{"line_number":320,"context_line":"            gateway_ip\u003dsubnet[\u0027gateway_ip\u0027],"},{"line_number":321,"context_line":"            dns_nameservers\u003dsubnet.get(\u0027dns_nameservers\u0027, None),"},{"line_number":322,"context_line":"            host_routes\u003dsubnet.get(\u0027host_routes\u0027, None))"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        LOG.info(_LI(\"DFMechDriver: create subnet %s\"), subnet[\u0027id\u0027])"},{"line_number":325,"context_line":"        return subnet"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_b53764e2","line":322,"range":{"start_line":322,"start_character":24,"end_line":322,"end_character":30},"in_reply_to":"1aa78d24_52ba96e2","updated":"2016-07-04 07:51:52.000000000","message":"I have modified here in current patch, you can see nb_api.py","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"4c0dcfdbb346558af06e3dc9fb985e241551271c","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        if fixed_ips:"},{"line_number":437,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in fixed_ips]"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            ips \u003d None"},{"line_number":440,"context_line":"        tunnel_key \u003d self.nb_api.allocate_tunnel_key()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"        # Router GW ports are not needed by dragonflow controller and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_12a00e9f","line":439,"range":{"start_line":439,"start_character":12,"end_line":439,"end_character":15},"updated":"2016-07-04 07:39:53.000000000","message":"log something here. In fact, we can\u0027t support port without ip address now.","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"0fa6db64930b69f3babd09c6a4851b7fbc5176ff","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        if fixed_ips:"},{"line_number":437,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in fixed_ips]"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            ips \u003d None"},{"line_number":440,"context_line":"        tunnel_key \u003d self.nb_api.allocate_tunnel_key()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"        # Router GW ports are not needed by dragonflow controller and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_f2f9024f","line":439,"range":{"start_line":439,"start_character":12,"end_line":439,"end_character":15},"in_reply_to":"1aa78d24_12a00e9f","updated":"2016-07-04 07:51:52.000000000","message":"ok, I\u0027ll add log.","commit_id":"32b58fa918d18bda8509bc94124d987d37329829"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"d9bda77c9b68d2ba19fd0379351e9c5dcbddc978","unresolved":false,"context_lines":[{"line_number":432,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_ML2_CORE)"},{"line_number":433,"context_line":"    def create_port_postcommit(self, context):"},{"line_number":434,"context_line":"        port \u003d context.current"},{"line_number":435,"context_line":"        fixed_ips \u003d port.get(\u0027fixed_ips\u0027)"},{"line_number":436,"context_line":"        if fixed_ips:"},{"line_number":437,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in fixed_ips]"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            ips \u003d None"},{"line_number":440,"context_line":"            LOG.warning(_LW(\"No fixed_ips in port(%s)\") %"},{"line_number":441,"context_line":"                        port[\u0027id\u0027])"},{"line_number":442,"context_line":"        tunnel_key \u003d self.nb_api.allocate_tunnel_key()"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        # Router GW ports are not needed by dragonflow controller and"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_3897bb91","line":441,"range":{"start_line":435,"start_character":8,"end_line":441,"end_character":35},"updated":"2016-07-05 07:36:47.000000000","message":"This can be a private method, like\ndef _get_fixed_ips_from_port(...)","commit_id":"1f7aee25fe84e5a1c3777a6de33d9aa644761977"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"c01166a36594ddb934976a891b66b817bef4017b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_308d027c","line":181,"updated":"2016-07-05 13:12:58.000000000","message":"why does not set a default value?","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"04b55805cb9a024a2ff9a812c577cf7bef93836c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_a29a3a61","line":181,"in_reply_to":"1aa78d24_308d027c","updated":"2016-07-05 17:37:11.000000000","message":"if not specified, the default value is None.","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80abab2dc9fe98831d85ef1da5d8bd6a35cc129b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_4aa39bb2","line":181,"in_reply_to":"1aa78d24_7edbbd4f","updated":"2016-07-06 01:31:08.000000000","message":"I think is\u0027s a small issue :)","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"832b8ca56fe1099aa7d298815755fd1c19d2c823","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            router_external\u003dnetwork[\u0027router:external\u0027],"},{"line_number":179,"context_line":"            mtu\u003dnetwork.get(\u0027mtu\u0027),"},{"line_number":180,"context_line":"            version\u003dnetwork[\u0027db_version\u0027],"},{"line_number":181,"context_line":"            subnets\u003dnetwork.get(\u0027subnets\u0027))"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        LOG.info(_LI(\"DFMechDriver: create network %s\"), network[\u0027id\u0027])"},{"line_number":184,"context_line":"        return network"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_7edbbd4f","line":181,"in_reply_to":"1aa78d24_a29a3a61","updated":"2016-07-05 22:37:47.000000000","message":"Yes, but I think we should keep it consistent. The following code set a default value explicitly","commit_id":"b58ab720a95245940e603d90652869402ebe8901"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"04b55805cb9a024a2ff9a812c577cf7bef93836c","unresolved":false,"context_lines":[{"line_number":435,"context_line":"            ips \u003d [ip[\u0027ip_address\u0027] for ip in fixed_ips]"},{"line_number":436,"context_line":"        else:"},{"line_number":437,"context_line":"            ips \u003d None"},{"line_number":438,"context_line":"            LOG.warning(_LW(\"No fixed_ips in port(%s)\") %"},{"line_number":439,"context_line":"                        port[\u0027id\u0027])"},{"line_number":440,"context_line":"        return ips"},{"line_number":441,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_82ebbeaf","line":438,"range":{"start_line":438,"start_character":56,"end_line":438,"end_character":57},"updated":"2016-07-05 17:37:11.000000000","message":"I think it is better to use a comma here (LOG.warning format\u0027s the string for you, and it would be easier on the i18n effort later).","commit_id":"b58ab720a95245940e603d90652869402ebe8901"}]}
