)]}'
{"karbor/services/protection/protectable_plugins/network.py":[{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"09b6fe841b50ee6aad6d9c5985687cfccd4c9f0b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        else:"},{"line_number":109,"context_line":"            if server and server.network_id:"},{"line_number":110,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":111,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":112,"context_line":"                                          name\u003d\"basic network info\")]"},{"line_number":113,"context_line":"            return []"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_56226302","line":111,"updated":"2017-02-13 08:38:29.000000000","message":"shall we validate the network_id saved in server by checking if it\u0027s still in neutron side?  Is it possible that server has stale information?","commit_id":"17663263e6fdf43c70242f7f879db014be144b0b"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"315476b850ffb23f5e1fd375752de13f0fb06e39","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        else:"},{"line_number":109,"context_line":"            if server and server.network_id:"},{"line_number":110,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":111,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":112,"context_line":"                                          name\u003d\"basic network info\")]"},{"line_number":113,"context_line":"            return []"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_405fe70d","line":111,"in_reply_to":"fa31d9ce_56226302","updated":"2017-02-22 10:48:16.000000000","message":"Done. Get the network info from Sever Ports, and check by the neutron networks.","commit_id":"17663263e6fdf43c70242f7f879db014be144b0b"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"da624cc9fdd97be2c74878508e620aa552322b6e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    _SUPPORT_RESOURCE_TYPE \u003d constants.NETWORK_RESOURCE_TYPE"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _neutron_client(self, cntxt):"},{"line_number":34,"context_line":"        self._neutron_client_instance \u003d ("},{"line_number":35,"context_line":"            ClientFactory.create_client(\u0027neutron\u0027, cntxt))"},{"line_number":36,"context_line":"        return self._neutron_client_instance"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _nova_client(self, cntxt):"},{"line_number":39,"context_line":"        self._nova_client_instance \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_1457f304","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":44},"updated":"2017-04-01 07:36:54.000000000","message":"IMO, \u0027self._neutron_client_instance\u0027 is not needed. So, just return ClientFactory.create_client(\u0027neutron\u0027, cntxt)","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"4e2eb21cb5933b714b28a7fe8bb91201b0fb406e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    _SUPPORT_RESOURCE_TYPE \u003d constants.NETWORK_RESOURCE_TYPE"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _neutron_client(self, cntxt):"},{"line_number":34,"context_line":"        self._neutron_client_instance \u003d ("},{"line_number":35,"context_line":"            ClientFactory.create_client(\u0027neutron\u0027, cntxt))"},{"line_number":36,"context_line":"        return self._neutron_client_instance"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _nova_client(self, cntxt):"},{"line_number":39,"context_line":"        self._nova_client_instance \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_15d13855","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":44},"in_reply_to":"dfeb2761_1457f304","updated":"2017-05-05 03:04:46.000000000","message":"Done","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e1277d8aaf9dca56f10c0b14f4d311f6109b6ac3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    _SUPPORT_RESOURCE_TYPE \u003d constants.NETWORK_RESOURCE_TYPE"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def _neutron_client(self, cntxt):"},{"line_number":34,"context_line":"        self._neutron_client_instance \u003d ("},{"line_number":35,"context_line":"            ClientFactory.create_client(\u0027neutron\u0027, cntxt))"},{"line_number":36,"context_line":"        return self._neutron_client_instance"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _nova_client(self, cntxt):"},{"line_number":39,"context_line":"        self._nova_client_instance \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_fe8c8280","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":44},"in_reply_to":"dfeb2761_1457f304","updated":"2017-05-03 07:34:35.000000000","message":"chenzeng means that return the client instance directly.","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"da624cc9fdd97be2c74878508e620aa552322b6e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return self._neutron_client_instance"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _nova_client(self, cntxt):"},{"line_number":39,"context_line":"        self._nova_client_instance \u003d ("},{"line_number":40,"context_line":"            ClientFactory.create_client(\u0027nova\u0027, cntxt))"},{"line_number":41,"context_line":"        return self._nova_client_instance"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_resource_type(self):"},{"line_number":44,"context_line":"        return self._SUPPORT_RESOURCE_TYPE"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_944ae352","line":41,"range":{"start_line":39,"start_character":0,"end_line":41,"end_character":41},"updated":"2017-04-01 07:36:54.000000000","message":"\u0027self._nova_client_instance\u0027 is not needed.","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"4e2eb21cb5933b714b28a7fe8bb91201b0fb406e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return self._neutron_client_instance"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _nova_client(self, cntxt):"},{"line_number":39,"context_line":"        self._nova_client_instance \u003d ("},{"line_number":40,"context_line":"            ClientFactory.create_client(\u0027nova\u0027, cntxt))"},{"line_number":41,"context_line":"        return self._nova_client_instance"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def get_resource_type(self):"},{"line_number":44,"context_line":"        return self._SUPPORT_RESOURCE_TYPE"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_d5c2b085","line":41,"range":{"start_line":39,"start_character":0,"end_line":41,"end_character":41},"in_reply_to":"dfeb2761_944ae352","updated":"2017-05-05 03:04:46.000000000","message":"Done","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e1277d8aaf9dca56f10c0b14f4d311f6109b6ac3","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                return None"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            netclient \u003d self._neutron_client(context)"},{"line_number":85,"context_line":"            networks \u003d netclient.list_networks().get(\u0027networks\u0027)"},{"line_number":86,"context_line":"        except Exception as e:"},{"line_number":87,"context_line":"            LOG.exception(_LE(\"List all summary networks \""},{"line_number":88,"context_line":"                              \"from neutron failed.\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_fe680288","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":64},"updated":"2017-05-03 07:34:35.000000000","message":"Does it return the networks belong to the project by default?","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"4e2eb21cb5933b714b28a7fe8bb91201b0fb406e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                return None"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            netclient \u003d self._neutron_client(context)"},{"line_number":85,"context_line":"            networks \u003d netclient.list_networks().get(\u0027networks\u0027)"},{"line_number":86,"context_line":"        except Exception as e:"},{"line_number":87,"context_line":"            LOG.exception(_LE(\"List all summary networks \""},{"line_number":88,"context_line":"                              \"from neutron failed.\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_55d7c04c","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":64},"in_reply_to":"5ff73747_fe680288","updated":"2017-05-05 03:04:46.000000000","message":"yes, belong to the project.","commit_id":"6264c2977c4ff2d68024e7a828be11cedc4ab562"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if networks:"},{"line_number":68,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":69,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":70,"context_line":"                                          name\u003d\"basic network info\")]"},{"line_number":71,"context_line":"            return []"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def show_resource(self, context, resource_id, parameters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_6cc1b9e4","line":70,"range":{"start_line":70,"start_character":47,"end_line":70,"end_character":66},"updated":"2017-05-07 08:57:54.000000000","message":"a more proper name?\nhow about \"Network Topology\"?","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            if networks:"},{"line_number":68,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":69,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":70,"context_line":"                                          name\u003d\"basic network info\")]"},{"line_number":71,"context_line":"            return []"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def show_resource(self, context, resource_id, parameters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f013ff3_477df41a","line":70,"range":{"start_line":70,"start_character":47,"end_line":70,"end_character":66},"in_reply_to":"3f044301_6cc1b9e4","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        try:"},{"line_number":96,"context_line":"            # get metadata about network from neutron"},{"line_number":97,"context_line":"            net_client \u003d self._neutron_client(context)"},{"line_number":98,"context_line":"            neutron_networks \u003d []"},{"line_number":99,"context_line":"            neutron_network_infos \u003d net_client.list_networks().get(\u0027networks\u0027)"},{"line_number":100,"context_line":"            for network_info in neutron_network_infos:"},{"line_number":101,"context_line":"                if network_info[\"id\"] not in neutron_networks:"},{"line_number":102,"context_line":"                    neutron_networks.append(network_info[\"id\"])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            # get metadata about network from nova"},{"line_number":105,"context_line":"            nova_client \u003d self._nova_client(context)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_6c3419fc","line":102,"range":{"start_line":98,"start_character":0,"end_line":102,"end_character":63},"updated":"2017-05-07 08:57:54.000000000","message":"how about:\n    neutron_networks \u003d {network.id for network in net_client.list_networks().get(\u0027networks\u0027)}\n?","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        try:"},{"line_number":96,"context_line":"            # get metadata about network from neutron"},{"line_number":97,"context_line":"            net_client \u003d self._neutron_client(context)"},{"line_number":98,"context_line":"            neutron_networks \u003d []"},{"line_number":99,"context_line":"            neutron_network_infos \u003d net_client.list_networks().get(\u0027networks\u0027)"},{"line_number":100,"context_line":"            for network_info in neutron_network_infos:"},{"line_number":101,"context_line":"                if network_info[\"id\"] not in neutron_networks:"},{"line_number":102,"context_line":"                    neutron_networks.append(network_info[\"id\"])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            # get metadata about network from nova"},{"line_number":105,"context_line":"            nova_client \u003d self._nova_client(context)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f231b9d_57de0eda","line":102,"range":{"start_line":98,"start_character":0,"end_line":102,"end_character":63},"in_reply_to":"3f044301_6c3419fc","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            nova_client \u003d self._nova_client(context)"},{"line_number":106,"context_line":"            server \u003d nova_client.servers.get(parent_resource.id)"},{"line_number":107,"context_line":"            addresses \u003d getattr(server, \"addresses\")"},{"line_number":108,"context_line":"            nova_networks \u003d []"},{"line_number":109,"context_line":"            for network_infos in addresses.values():"},{"line_number":110,"context_line":"                for network_info in network_infos:"},{"line_number":111,"context_line":"                    mac \u003d network_info.get(\"OS-EXT-IPS-MAC:mac_addr\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_cf355fdc","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":30},"updated":"2017-05-07 08:57:54.000000000","message":"if you are using this as a set below, why not create it as a set?","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            nova_client \u003d self._nova_client(context)"},{"line_number":106,"context_line":"            server \u003d nova_client.servers.get(parent_resource.id)"},{"line_number":107,"context_line":"            addresses \u003d getattr(server, \"addresses\")"},{"line_number":108,"context_line":"            nova_networks \u003d []"},{"line_number":109,"context_line":"            for network_infos in addresses.values():"},{"line_number":110,"context_line":"                for network_info in network_infos:"},{"line_number":111,"context_line":"                    mac \u003d network_info.get(\"OS-EXT-IPS-MAC:mac_addr\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f231b9d_17f65664","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":30},"in_reply_to":"3f044301_cf355fdc","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            server \u003d nova_client.servers.get(parent_resource.id)"},{"line_number":107,"context_line":"            addresses \u003d getattr(server, \"addresses\")"},{"line_number":108,"context_line":"            nova_networks \u003d []"},{"line_number":109,"context_line":"            for network_infos in addresses.values():"},{"line_number":110,"context_line":"                for network_info in network_infos:"},{"line_number":111,"context_line":"                    mac \u003d network_info.get(\"OS-EXT-IPS-MAC:mac_addr\")"},{"line_number":112,"context_line":"                    network_type \u003d network_info.get(\"OS-EXT-IPS:type\")"},{"line_number":113,"context_line":"                    if network_type \u003d\u003d \u0027fixed\u0027:"},{"line_number":114,"context_line":"                        port \u003d net_client.list_ports("},{"line_number":115,"context_line":"                            mac_address\u003dmac)[\"ports\"][0]"},{"line_number":116,"context_line":"                        if port[\"network_id\"] not in nova_networks:"},{"line_number":117,"context_line":"                            nova_networks.append(port[\"network_id\"])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            # get the exsited networks"},{"line_number":120,"context_line":"            valid_networks \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_ef36dbe7","line":117,"range":{"start_line":109,"start_character":0,"end_line":117,"end_character":68},"updated":"2017-05-07 08:57:54.000000000","message":"might be easier to use server.interface_list() ?\nThe response should include both the port_id and net_id.","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            server \u003d nova_client.servers.get(parent_resource.id)"},{"line_number":107,"context_line":"            addresses \u003d getattr(server, \"addresses\")"},{"line_number":108,"context_line":"            nova_networks \u003d []"},{"line_number":109,"context_line":"            for network_infos in addresses.values():"},{"line_number":110,"context_line":"                for network_info in network_infos:"},{"line_number":111,"context_line":"                    mac \u003d network_info.get(\"OS-EXT-IPS-MAC:mac_addr\")"},{"line_number":112,"context_line":"                    network_type \u003d network_info.get(\"OS-EXT-IPS:type\")"},{"line_number":113,"context_line":"                    if network_type \u003d\u003d \u0027fixed\u0027:"},{"line_number":114,"context_line":"                        port \u003d net_client.list_ports("},{"line_number":115,"context_line":"                            mac_address\u003dmac)[\"ports\"][0]"},{"line_number":116,"context_line":"                        if port[\"network_id\"] not in nova_networks:"},{"line_number":117,"context_line":"                            nova_networks.append(port[\"network_id\"])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            # get the exsited networks"},{"line_number":120,"context_line":"            valid_networks \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"7f231b9d_f7e87a7c","line":117,"range":{"start_line":109,"start_character":0,"end_line":117,"end_character":68},"in_reply_to":"3f044301_ef36dbe7","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                            nova_networks.append(port[\"network_id\"])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            # get the exsited networks"},{"line_number":120,"context_line":"            valid_networks \u003d ("},{"line_number":121,"context_line":"                list(set(nova_networks).intersection(set(neutron_networks))))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if valid_networks:"},{"line_number":124,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_af30d3e9","line":121,"range":{"start_line":120,"start_character":29,"end_line":121,"end_character":77},"updated":"2017-05-07 08:57:54.000000000","message":"you are creating a tuple, which contains a list generated from a set.\nwhy not just do:\n    valid_networks \u003d nova_networks.intersection(neutron_networks)\n(assuming both nova_networks and neutron_networks were created as sets before)\n\nWhat is this validation even for? When will this fail?","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                            nova_networks.append(port[\"network_id\"])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            # get the exsited networks"},{"line_number":120,"context_line":"            valid_networks \u003d ("},{"line_number":121,"context_line":"                list(set(nova_networks).intersection(set(neutron_networks))))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if valid_networks:"},{"line_number":124,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f231b9d_b7068251","line":121,"range":{"start_line":120,"start_character":29,"end_line":121,"end_character":77},"in_reply_to":"3f044301_af30d3e9","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"365de2de3ebf9cd4ca9bbaa773b4218a87b0c2a1","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                                            parent_resource):"},{"line_number":138,"context_line":"        try:"},{"line_number":139,"context_line":"            netclient \u003d self._neutron_client(context)"},{"line_number":140,"context_line":"            networks \u003d netclient.list_networks().get(\u0027networks\u0027)"},{"line_number":141,"context_line":"        except Exception as e:"},{"line_number":142,"context_line":"            LOG.exception(\"List all summary networks from neutron failed.\")"},{"line_number":143,"context_line":"            raise exception.ListProtectableResourceFailed("},{"line_number":144,"context_line":"                type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":145,"context_line":"                reason\u003dsix.text_type(e))"},{"line_number":146,"context_line":"        else:"},{"line_number":147,"context_line":"            if any([n[\"tenant_id\"] \u003d\u003d parent_resource.id for n in networks]):"},{"line_number":148,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":149,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":150,"context_line":"                                          name\u003d\"basic network info\")]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f044301_6f508b0b","line":147,"range":{"start_line":140,"start_character":0,"end_line":147,"end_character":77},"updated":"2017-05-07 08:57:54.000000000","message":"how about, instead of listing all networks and filter them in here, list all networks with the tenant_id as param?","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"},{"author":{"_account_id":16206,"name":"chenhuayi","email":"chenhuayi@huawei.com","username":"chenhuayi2"},"change_message_id":"3c5bcde308252ac0f243c1a04eb41499005f7227","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                                            parent_resource):"},{"line_number":138,"context_line":"        try:"},{"line_number":139,"context_line":"            netclient \u003d self._neutron_client(context)"},{"line_number":140,"context_line":"            networks \u003d netclient.list_networks().get(\u0027networks\u0027)"},{"line_number":141,"context_line":"        except Exception as e:"},{"line_number":142,"context_line":"            LOG.exception(\"List all summary networks from neutron failed.\")"},{"line_number":143,"context_line":"            raise exception.ListProtectableResourceFailed("},{"line_number":144,"context_line":"                type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":145,"context_line":"                reason\u003dsix.text_type(e))"},{"line_number":146,"context_line":"        else:"},{"line_number":147,"context_line":"            if any([n[\"tenant_id\"] \u003d\u003d parent_resource.id for n in networks]):"},{"line_number":148,"context_line":"                return [resource.Resource(type\u003dself._SUPPORT_RESOURCE_TYPE,"},{"line_number":149,"context_line":"                                          id\u003dself._get_network_id(),"},{"line_number":150,"context_line":"                                          name\u003d\"basic network info\")]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f231b9d_77fc6a3d","line":147,"range":{"start_line":140,"start_character":0,"end_line":147,"end_character":77},"in_reply_to":"3f044301_6f508b0b","updated":"2017-06-16 09:26:25.000000000","message":"Done","commit_id":"0dd3573cc074d23ea9d4df575875f7c819b63564"}]}
