)]}'
{"quantumclient/client.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        return self.endpoint_url"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def do_request(self, url, method, **kwargs):"},{"line_number":146,"context_line":"        self.authenticate_and_get_endpoint_url()"},{"line_number":147,"context_line":"        # Perform the request once. If we get a 401 back then it"},{"line_number":148,"context_line":"        # might be because the auth token expired, so try to"},{"line_number":149,"context_line":"        # re-authenticate and try again. If it still fails, bail."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fo2w%3D","line":146,"updated":"2013-04-30 23:46:28.000000000","message":"if you don\u0027t need the endpoint_url here, why do you return it?","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"unresolved":false,"context_lines":[{"line_number":135,"context_line":"            raise exceptions.Forbidden(message\u003dbody)"},{"line_number":136,"context_line":"        return resp, body"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def authenticate_and_get_endpoint_url(self):"},{"line_number":139,"context_line":"        if not self.auth_token:"},{"line_number":140,"context_line":"            self.authenticate()"},{"line_number":141,"context_line":"        elif not self.endpoint_url:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2Fl8E%3D","line":138,"updated":"2013-05-02 15:43:22.000000000","message":"I don\u0027t want to sound too pedantic...but after you got rid of the return this method\u0027s name no longer needs to have a \u0027get\u0027 within it  :)","commit_id":"f47aa258a63cd1a8baa37f8b6e87eaa88b7eef74"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":135,"context_line":"            raise exceptions.Forbidden(message\u003dbody)"},{"line_number":136,"context_line":"        return resp, body"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def authenticate_and_get_endpoint_url(self):"},{"line_number":139,"context_line":"        if not self.auth_token:"},{"line_number":140,"context_line":"            self.authenticate()"},{"line_number":141,"context_line":"        elif not self.endpoint_url:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FkHo%3D","line":138,"in_reply_to":"AAAAOn%2F%2Fl8E%3D","updated":"2013-05-03 17:45:24.000000000","message":"Thanks Armando.\nDon\u0027t worry you\u0027re not pedant.\nI\u0027d say you\u0027re more like a traditional greek flatbread :)","commit_id":"f47aa258a63cd1a8baa37f8b6e87eaa88b7eef74"}],"quantumclient/quantum/v2_0/network.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"List networks that belong to a given tenant.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Length of a query filter on subnet id"},{"line_number":41,"context_line":"    subnet_id_filter_len \u003d 40"},{"line_number":42,"context_line":"    resource \u003d \u0027network\u0027"},{"line_number":43,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListNetwork\u0027)"},{"line_number":44,"context_line":"    _formatters \u003d {\u0027subnets\u0027: _format_subnets, }"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fo2g%3D","line":41,"updated":"2013-04-30 23:46:28.000000000","message":"could you explain where \u002740\u0027 is coming from?","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"List networks that belong to a given tenant.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Length of a query filter on subnet id"},{"line_number":41,"context_line":"    subnet_id_filter_len \u003d 40"},{"line_number":42,"context_line":"    resource \u003d \u0027network\u0027"},{"line_number":43,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListNetwork\u0027)"},{"line_number":44,"context_line":"    _formatters \u003d {\u0027subnets\u0027: _format_subnets, }"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Foyw%3D","line":41,"in_reply_to":"AAAAOn%2F%2Fo2g%3D","updated":"2013-05-01 00:07:44.000000000","message":"id\u003d\u003cuuid\u003e\u0026","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"List networks that belong to a given tenant.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Length of a query filter on subnet id"},{"line_number":41,"context_line":"    subnet_id_filter_len \u003d 40"},{"line_number":42,"context_line":"    resource \u003d \u0027network\u0027"},{"line_number":43,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListNetwork\u0027)"},{"line_number":44,"context_line":"    _formatters \u003d {\u0027subnets\u0027: _format_subnets, }"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FoyA%3D","line":41,"in_reply_to":"AAAAOn%2F%2Foyw%3D","updated":"2013-05-01 00:13:24.000000000","message":"is it worth documenting this? what if the filter label changes for whatever reason, albeit unlikely?","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":60,"context_line":"                subnet_ids.extend(n[\u0027subnets\u0027])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        def _get_subnet_list(sub_ids):"},{"line_number":63,"context_line":"            search_opts.update({\u0027id\u0027: sub_ids})"},{"line_number":64,"context_line":"            return quantum_client.list_subnets("},{"line_number":65,"context_line":"                **search_opts).get(\u0027subnets\u0027, [])"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FoO0%3D","line":63,"updated":"2013-05-01 09:12:19.000000000","message":"Actually this is not correct.\nThere\u0027s no need for doing an update here, methinks.","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                **search_opts).get(\u0027subnets\u0027, [])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":69,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":70,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":71,"context_line":"            total_subnets \u003d len(subnet_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fo1k%3D","line":68,"updated":"2013-04-30 23:46:28.000000000","message":"is there any way you can tell beforehand that you are going to exceed the limit, therefore avoiding to make a call to the server?","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":65,"context_line":"                **search_opts).get(\u0027subnets\u0027, [])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":69,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":70,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":71,"context_line":"            total_subnets \u003d len(subnet_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Foyo%3D","line":68,"in_reply_to":"AAAAOn%2F%2Fo1k%3D","updated":"2013-05-01 00:07:44.000000000","message":"There is not call to the server.\nthe client will generate the uri and check its length, and if exceed raise a local exception.\n\nThe alternative would have been to add a facility on the api client for calculating the uri lenght of a potential request, but that was probably not worth the hassle.\n\nthe principle adopted here is that in most cases these requests will suceed straight away, so trying and catching only when it fails is going to be better than always doing and if (and calculating the len)","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                **search_opts).get(\u0027subnets\u0027, [])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        try:"},{"line_number":68,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":69,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":70,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":71,"context_line":"            total_subnets \u003d len(subnet_ids)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fox0%3D","line":68,"in_reply_to":"AAAAOn%2F%2Foyo%3D","updated":"2013-05-01 00:13:24.000000000","message":"cool, thanks for clearing this up!","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"dd2c18f1a3d512f74fa97e2cfd2885d21944833d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            total_subnets \u003d len(subnet_ids)"},{"line_number":73,"context_line":"            # Use the excess attribute of the exception to know"},{"line_number":74,"context_line":"            # how many subnet_id filters exceed the URI len limit"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FnZw%3D","line":71,"updated":"2013-05-01 19:22:39.000000000","message":"Consider replacing lines 71-83 with:\n\nmax_size \u003d (self.subnet_id_filter_len * len(subnet_ids)) - uri_len_exc.excess\nchunk \u003d (max_size / self.subnet_id_filter_len) +1\nsubnets \u003d []\nfor i in xrange(0, len(subnet_ids), chunk):\n    subnets.extend(\n         _get_subnet_list(subnet_ids[i: i + chunk])\n    )","commit_id":"0181dd4c3d858c17aef8fea95356651040e89f68"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            total_subnets \u003d len(subnet_ids)"},{"line_number":73,"context_line":"            # Use the excess attribute of the exception to know"},{"line_number":74,"context_line":"            # how many subnet_id filters exceed the URI len limit"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FmYw%3D","line":71,"in_reply_to":"AAAAOn%2F%2FnZw%3D","updated":"2013-05-02 10:24:42.000000000","message":"Thanks Marks, this looks cleaner \nI will just do:\nchunk \u003d (max_size / self.subnet_id_filter_len)\n\nas there is a chance adding the +1 might cause a chunk slightly longer than the URI limit.","commit_id":"0181dd4c3d858c17aef8fea95356651040e89f68"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"List networks that belong to a given tenant.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Length of a query filter on subnet id"},{"line_number":41,"context_line":"    # id\u003d\u003cuuid\u003e\u0026 (with len(uuid)\u003d36)"},{"line_number":42,"context_line":"    subnet_id_filter_len \u003d 40"},{"line_number":43,"context_line":"    resource \u003d \u0027network\u0027"},{"line_number":44,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListNetwork\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FjJI%3D","line":41,"updated":"2013-05-05 08:54:33.000000000","message":"Just thinking out aloud - would it not be better to calculate this at run time.\nFor example len \u003d len(str(uuid.uuid4()))\u0027 + len(\u0027\u003c\u0027)...","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":38,"context_line":"    \"\"\"List networks that belong to a given tenant.\"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    # Length of a query filter on subnet id"},{"line_number":41,"context_line":"    # id\u003d\u003cuuid\u003e\u0026 (with len(uuid)\u003d36)"},{"line_number":42,"context_line":"    subnet_id_filter_len \u003d 40"},{"line_number":43,"context_line":"    resource \u003d \u0027network\u0027"},{"line_number":44,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListNetwork\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FjCg%3D","line":41,"in_reply_to":"AAAAOn%2F%2FjJI%3D","updated":"2013-05-05 15:12:44.000000000","message":"Not a bad point at all. Allow me to address it in another iteration.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"1b3ff15aa6dea48f4d08eec1a8147afe125ce979","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            # Use the excess attribute of the exception to know how many"},{"line_number":73,"context_line":"            # subnet_id filters can be inserted into a single request"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FhJ8%3D","line":70,"updated":"2013-05-07 03:26:23.000000000","message":"My opinion is:\n1. we catch the 414 exception here, so that we can remove the assumed fixed length of URI\n2. and then fallback to half each time.\n\nI heard someone is running quantum in other kind of http server, which may have shorter length of URL.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            # Use the excess attribute of the exception to know how many"},{"line_number":73,"context_line":"            # subnet_id filters can be inserted into a single request"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FZ%2FU%3D","line":70,"in_reply_to":"AAAAOn%2F%2FeyA%3D","updated":"2013-05-10 16:52:13.000000000","message":"as a user, I would not be happy of seeing the cli doing n requests when instead it could do just one.\n\nAnyway, I feel this discussion has gone for almost a week now, and I am not willing to go further.\n\nIf you feel this approach is totally wrong, -2 this patch, and I wil know that I have to rework as you suggests. You\u0027re the CLI guy at the end of the day, so it\u0027s your call.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"1b3ff15aa6dea48f4d08eec1a8147afe125ce979","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            # Use the excess attribute of the exception to know how many"},{"line_number":73,"context_line":"            # subnet_id filters can be inserted into a single request"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FeyA%3D","line":70,"in_reply_to":"AAAAOn%2F%2Fg7s%3D","updated":"2013-05-08 11:05:15.000000000","message":"why do we need to store the maximum number of subnets we can send?\nfor example, this time I got a 100 subnets to query the cidr, if it failed, I failback to 50, and so on. next time I got a 300 subnets to query the cidr, I will failback to 150 and then 75 so on.\n\nand This bug seemingly is just for CLI, it does not impact nova.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            subnets \u003d _get_subnet_list(subnet_ids)"},{"line_number":70,"context_line":"        except exceptions.RequestURITooLong as uri_len_exc:"},{"line_number":71,"context_line":"            # The URI is too long because of too many subnet_id filters"},{"line_number":72,"context_line":"            # Use the excess attribute of the exception to know how many"},{"line_number":73,"context_line":"            # subnet_id filters can be inserted into a single request"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2Fg7s%3D","line":70,"in_reply_to":"AAAAOn%2F%2FhJ8%3D","updated":"2013-05-07 07:54:33.000000000","message":"How do we store the maximum number of subnets you can send? I think we need to store it somewhere in order to be able to \"fallback to half each time\".\n\nAs noted in other comments from Maru which was advocating a different approach, this is a high priority bug, and therefore discussions on the better approach to adopt should probably be put aside in favor of solving the problem which is manifesting pretty much in each medium size deployment.\n\nDo you think users running quantum in other webservers are a sizeable chunk of concrete users? If not, I would probably address what you say in another patch.\nAnd still, instead of a trial \u0026 error approach, I would make the max uri len a parameter which you can provide to CLI commands.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"}],"quantumclient/v2_0/client.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"12b53244ce9c6feca14976497f461d2b2f814a5b","unresolved":false,"context_lines":[{"line_number":904,"context_line":"            params \u003d utils.safe_encode_dict(params)"},{"line_number":905,"context_line":"            action +\u003d \u0027?\u0027 + urllib.urlencode(params, doseq\u003d1)"},{"line_number":906,"context_line":"        # Ensure client always has correct uri - do not guesstimate anything"},{"line_number":907,"context_line":"        self.httpclient.authenticate_and_get_endpoint_url()"},{"line_number":908,"context_line":"        uri_len \u003d len(self.httpclient.endpoint_url) + len(action)"},{"line_number":909,"context_line":"        if uri_len \u003e self.MAX_URI_LEN:"},{"line_number":910,"context_line":"            raise exceptions.RequestURITooLong("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Fo1Q%3D","line":907,"updated":"2013-04-30 23:46:28.000000000","message":"see my previous comment about the return value of this method","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":904,"context_line":"            params \u003d utils.safe_encode_dict(params)"},{"line_number":905,"context_line":"            action +\u003d \u0027?\u0027 + urllib.urlencode(params, doseq\u003d1)"},{"line_number":906,"context_line":"        # Ensure client always has correct uri - do not guesstimate anything"},{"line_number":907,"context_line":"        self.httpclient.authenticate_and_get_endpoint_url()"},{"line_number":908,"context_line":"        uri_len \u003d len(self.httpclient.endpoint_url) + len(action)"},{"line_number":909,"context_line":"        if uri_len \u003e self.MAX_URI_LEN:"},{"line_number":910,"context_line":"            raise exceptions.RequestURITooLong("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2Foyk%3D","line":907,"in_reply_to":"AAAAOn%2F%2Fo1Q%3D","updated":"2013-05-01 00:07:44.000000000","message":"ok, i see your point. I will remove that line.","commit_id":"40af2c15320f7b5db0d176e1c0001bb37e054d01"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"1b3ff15aa6dea48f4d08eec1a8147afe125ce979","unresolved":false,"context_lines":[{"line_number":908,"context_line":"        uri_len \u003d len(self.httpclient.endpoint_url) + len(action)"},{"line_number":909,"context_line":"        if uri_len \u003e self.MAX_URI_LEN:"},{"line_number":910,"context_line":"            raise exceptions.RequestURITooLong("},{"line_number":911,"context_line":"                excess\u003duri_len - self.MAX_URI_LEN)"},{"line_number":912,"context_line":"        if body:"},{"line_number":913,"context_line":"            body \u003d self.serialize(body)"},{"line_number":914,"context_line":"        self.httpclient.content_type \u003d self.content_type()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FinA%3D","line":911,"updated":"2013-05-06 09:25:55.000000000","message":"I don\u0027t think using a fixed MAX_URI_LEN is a good idea. how about using full length and then falling back to half of the size? for example, with 100 subnets, we will get 414 with 100 at first request, and then we fall back to 50, and then fall back to 25, ...","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":908,"context_line":"        uri_len \u003d len(self.httpclient.endpoint_url) + len(action)"},{"line_number":909,"context_line":"        if uri_len \u003e self.MAX_URI_LEN:"},{"line_number":910,"context_line":"            raise exceptions.RequestURITooLong("},{"line_number":911,"context_line":"                excess\u003duri_len - self.MAX_URI_LEN)"},{"line_number":912,"context_line":"        if body:"},{"line_number":913,"context_line":"            body \u003d self.serialize(body)"},{"line_number":914,"context_line":"        self.httpclient.content_type \u003d self.content_type()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOn%2F%2FiI8%3D","line":911,"in_reply_to":"AAAAOn%2F%2FinA%3D","updated":"2013-05-06 16:06:11.000000000","message":"no :)\n\nI have tried a solution like the one you suggested, and it works.\nHowever it always does more requests than necessary to the server - because the client does not stores anywhere the maximum number of subnet_ids it can send in a request.\nSo I am not really keen on a trial \u0026 error approach.\n\nI think it would be a nice addition to this patch something that allows you to tune your client according to the max uri len accepted by the server, but I feel like this is out scope.","commit_id":"7c6327e06207ea2107ba15deda76acd764d9d6ad"}]}
