)]}'
{"manila/compute/nova.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"053cabd9f3388b68705dc746a17acbd05e874f36","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    def keypair_list(self, context):"},{"line_number":306,"context_line":"        return novaclient(context).keypairs.list()"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def image_list(self, context):"},{"line_number":309,"context_line":"        client \u003d novaclient(context)"},{"line_number":310,"context_line":"        if hasattr(client, \u0027images\u0027):"},{"line_number":311,"context_line":"            # Old novaclient with \u0027images\u0027 API proxy"},{"line_number":312,"context_line":"            return client.images.list()"},{"line_number":313,"context_line":"        # New novaclient without \u0027images\u0027 API proxy"},{"line_number":314,"context_line":"        return client.glance.list()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    def add_security_group_to_server(self, context, server, security_group):"},{"line_number":317,"context_line":"        return novaclient(context).servers.add_security_group(server,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_cf31a15c","line":314,"range":{"start_line":308,"start_character":0,"end_line":314,"end_character":35},"updated":"2017-06-01 19:48:51.000000000","message":"Not for this patch set, but I\u0027m inclined to think we should make an osc client and migrate stuff like this glance image list over to it.  There\u0027s only one call to this method ...\n\nThoughts?","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"be0cc0f9d2d88480c26b62ef174f510450c9cbf0","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    def keypair_list(self, context):"},{"line_number":306,"context_line":"        return novaclient(context).keypairs.list()"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def image_list(self, context):"},{"line_number":309,"context_line":"        client \u003d novaclient(context)"},{"line_number":310,"context_line":"        if hasattr(client, \u0027images\u0027):"},{"line_number":311,"context_line":"            # Old novaclient with \u0027images\u0027 API proxy"},{"line_number":312,"context_line":"            return client.images.list()"},{"line_number":313,"context_line":"        # New novaclient without \u0027images\u0027 API proxy"},{"line_number":314,"context_line":"        return client.glance.list()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    def add_security_group_to_server(self, context, server, security_group):"},{"line_number":317,"context_line":"        return novaclient(context).servers.add_security_group(server,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_be8ab360","line":314,"range":{"start_line":308,"start_character":0,"end_line":314,"end_character":35},"in_reply_to":"df140735_cf31a15c","updated":"2017-06-06 10:05:29.000000000","message":"Could be. Separate discussion. For the moment we do not have \"openstackclient\" dep for manila.","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"053cabd9f3388b68705dc746a17acbd05e874f36","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        return novaclient(context).servers.add_security_group(server,"},{"line_number":318,"context_line":"                                                              security_group)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def network_get(self, context, network_id):"},{"line_number":321,"context_line":"        \"\"\"Return network data by its ID.\"\"\""},{"line_number":322,"context_line":"        client \u003d novaclient(context)"},{"line_number":323,"context_line":"        if hasattr(client, \u0027networks\u0027):"},{"line_number":324,"context_line":"            # Old novaclient with \u0027networks\u0027 API proxy"},{"line_number":325,"context_line":"            net \u003d client.networks.get(network_id)"},{"line_number":326,"context_line":"        else:"},{"line_number":327,"context_line":"            # New novaclient without \u0027networks\u0027 API proxy"},{"line_number":328,"context_line":"            net \u003d client.neutron.get(network_id)"},{"line_number":329,"context_line":"        return _to_dict(net)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_6f429540","line":329,"range":{"start_line":320,"start_character":4,"end_line":329,"end_character":28},"updated":"2017-06-01 19:48:51.000000000","message":"This method appears to be unused (except in test of compute api).  We should just remove it.","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"be0cc0f9d2d88480c26b62ef174f510450c9cbf0","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        return novaclient(context).servers.add_security_group(server,"},{"line_number":318,"context_line":"                                                              security_group)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def network_get(self, context, network_id):"},{"line_number":321,"context_line":"        \"\"\"Return network data by its ID.\"\"\""},{"line_number":322,"context_line":"        client \u003d novaclient(context)"},{"line_number":323,"context_line":"        if hasattr(client, \u0027networks\u0027):"},{"line_number":324,"context_line":"            # Old novaclient with \u0027networks\u0027 API proxy"},{"line_number":325,"context_line":"            net \u003d client.networks.get(network_id)"},{"line_number":326,"context_line":"        else:"},{"line_number":327,"context_line":"            # New novaclient without \u0027networks\u0027 API proxy"},{"line_number":328,"context_line":"            net \u003d client.neutron.get(network_id)"},{"line_number":329,"context_line":"        return _to_dict(net)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_fe66ebec","line":329,"range":{"start_line":320,"start_character":4,"end_line":329,"end_character":28},"in_reply_to":"df140735_6f429540","updated":"2017-06-06 10:05:29.000000000","message":"Done","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"}],"manila/network/neutron/api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c19103ff19ae4acc83d636276d4400ed93a03cfb","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            return self.client.list_security_groups(**search_opts)"},{"line_number":378,"context_line":"        except neutron_client_exc.NeutronClientException as e:"},{"line_number":379,"context_line":"            raise exception.NetworkException("},{"line_number":380,"context_line":"                code\u003de.status_code, message\u003de.message)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def security_group_create(self, name, description\u003d\"\"):"},{"line_number":383,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_a96d4dcd","line":380,"range":{"start_line":380,"start_character":36,"end_line":380,"end_character":53},"updated":"2017-06-01 17:46:30.000000000","message":"Isn\u0027t e.message deprecated?  It\u0027s better to use message\u003dsix.text_type(e) here.\n\nhttps://review.openstack.org/#/c/463116/","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"053cabd9f3388b68705dc746a17acbd05e874f36","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            return self.client.list_security_groups(**search_opts)"},{"line_number":378,"context_line":"        except neutron_client_exc.NeutronClientException as e:"},{"line_number":379,"context_line":"            raise exception.NetworkException("},{"line_number":380,"context_line":"                code\u003de.status_code, message\u003de.message)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def security_group_create(self, name, description\u003d\"\"):"},{"line_number":383,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_b2e496e1","line":380,"range":{"start_line":380,"start_character":36,"end_line":380,"end_character":53},"in_reply_to":"df140735_098c397d","updated":"2017-06-01 19:48:51.000000000","message":"It is deprecated since python 2.6 if I understand https://www.python.org/dev/peps/pep-0352 correctly, but as \nValeriy said, he\u0027s being consistent with the rest of this file.  Should we raise a bug and visit all of these later?\n\nPassing the neutron exception object in to the manila exception seems more valuable than the current uninformative neutron message anyways.\n\n$ python3\nPython 3.5.3 (default, May 10 2017, 15:05:55) \n[GCC 6.3.1 20161221 (Red Hat 6.3.1-1)] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e from neutronclient.common import exceptions as neutron_client_exc\n\u003e\u003e\u003e e \u003d neutron_client_exc.NeutronClientException\n\u003e\u003e\u003e e.message\n\u0027An unknown exception occurred.\u0027\n\u003e\u003e\u003e from manila import exception\nraise exception.NetworkException(e.message)\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nmanila.exception.NetworkException: An unknown exception occurred.\n\u003e\u003e\u003e import six\n\u003e\u003e\u003e raise exception.NetworkException(six.text_type(e))\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nmanila.exception.NetworkException: \u003cclass \u0027neutronclient.common.exceptions.NeutronClientException\u0027\u003e","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"15fd4fcc10a4f12a857cea6ff78fd32d9d027f2b","unresolved":false,"context_lines":[{"line_number":377,"context_line":"            return self.client.list_security_groups(**search_opts)"},{"line_number":378,"context_line":"        except neutron_client_exc.NeutronClientException as e:"},{"line_number":379,"context_line":"            raise exception.NetworkException("},{"line_number":380,"context_line":"                code\u003de.status_code, message\u003de.message)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def security_group_create(self, name, description\u003d\"\"):"},{"line_number":383,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_098c397d","line":380,"range":{"start_line":380,"start_character":36,"end_line":380,"end_character":53},"in_reply_to":"df140735_a96d4dcd","updated":"2017-06-01 17:48:05.000000000","message":"I reused existing approach from methods above. If it fails than fails on each of methods.","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c19103ff19ae4acc83d636276d4400ed93a03cfb","unresolved":false,"context_lines":[{"line_number":385,"context_line":"                {\"name\": name, \"description\": description})"},{"line_number":386,"context_line":"        except neutron_client_exc.NeutronClientException as e:"},{"line_number":387,"context_line":"            raise exception.NetworkException("},{"line_number":388,"context_line":"                code\u003de.status_code, message\u003de.message)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def security_group_rule_create(self, parent_group_id,"},{"line_number":391,"context_line":"                                   ip_protocol\u003dNone, from_port\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_4968f1b7","line":388,"range":{"start_line":388,"start_character":36,"end_line":388,"end_character":54},"updated":"2017-06-01 17:46:30.000000000","message":"Same","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"c19103ff19ae4acc83d636276d4400ed93a03cfb","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            })"},{"line_number":402,"context_line":"        except neutron_client_exc.NeutronClientException as e:"},{"line_number":403,"context_line":"            raise exception.NetworkException("},{"line_number":404,"context_line":"                code\u003de.status_code, message\u003de.message)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_095e7911","line":404,"range":{"start_line":404,"start_character":44,"end_line":404,"end_character":53},"updated":"2017-06-01 17:46:30.000000000","message":"Same","commit_id":"40831b5f943394688899916a5bf3ca5d91608644"}]}
