)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"6bc9b104a5130ab8f1b894c44d56abca18ffe713","unresolved":false,"context_lines":[{"line_number":16,"context_line":"that the proper IP version is sent down to the neutron server"},{"line_number":17,"context_line":"if the subnet create is requested with a subnetpool."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"TODO: The UTs are broken post this fix, and I would need some"},{"line_number":20,"context_line":"help in fixing them."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Change-Id: I13da0f204e8ce335a2082c7d829bee28ac567c3f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_dce5dea3","line":19,"updated":"2015-06-25 12:05:49.000000000","message":"The UT errors are somehow remedied.\nThis was happening because the new call to the ip_version\nhad to be monkey patched. \n\nAfter doing this, the errors have bettered but i still have some issues.\n I will upload a new patch to reflect the error.\n\nMust say,  fixing the UTs have been a headache.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"78394d11db31c99b37fafdd9488fc998c19553b1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     443b8eff (Call UnsetStub/VerifyAll properly for tests with exceptions)"},{"line_number":2,"context_line":"Author:     Akihiro Motoki \u003camotoki@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2015-07-04 15:55:11 +0900"},{"line_number":4,"context_line":"Commit:     Akihiro Motoki \u003camotoki@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-04 15:55:11 +0900"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ba3cc151_aac0b07d","line":2,"updated":"2015-07-04 06:58:51.000000000","message":"When I split unit test into a separate commit,\nI accidentally reset the author field.\nI will recover the original author filed.","commit_id":"6b9cbb4cd49fd22e56c5fed2b425fb4cf9410c97"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"31ee1b1580167e0d78a85fe0d9857a01d69a8468","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Determine ip version during subnet create."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, the default IP version for a subnet-create is IPv4."},{"line_number":10,"context_line":"This behavior becomes erronous when we use a IPv6 subnetpool and"},{"line_number":11,"context_line":"do not specify the ip version explicitly during the subnet"},{"line_number":12,"context_line":"create operation."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"ba3cc151_89eca890","line":10,"updated":"2015-07-06 20:10:35.000000000","message":"nit:  *erroneous\n\nBut, to me \"This behavior is wrong when we use ...\"","commit_id":"1ed63ee230a7d8ac5569a2120d61f919ddd1f9da"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"31ee1b1580167e0d78a85fe0d9857a01d69a8468","unresolved":false,"context_lines":[{"line_number":12,"context_line":"create operation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This fix proposes to make the neutron client code for subnet"},{"line_number":15,"context_line":"creation, become aware of the subnetpool version. This ensures"},{"line_number":16,"context_line":"that the proper IP version is sent down to the neutron server"},{"line_number":17,"context_line":"if the subnet create is requested with a subnetpool."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"ba3cc151_a9940ce8","line":15,"updated":"2015-07-06 20:10:35.000000000","message":"nit:  no comma here.","commit_id":"1ed63ee230a7d8ac5569a2120d61f919ddd1f9da"}],"neutronclient/neutron/v2_0/__init__.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2d8d4f5e6a7c3108e4d33b52246f6d2144a40d7b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_44d0b753","line":115,"updated":"2015-06-22 13:30:35.000000000","message":"This method is related only to subnet, so it doesn\u0027t fit __init__.py. Could you consider moving it to subnet.py?\n\nIn addition, I don\u0027t think we need to make this method generic. How about get_subnet_pool_ip_version in subnet.py?","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a4398e09aedef45eb94da1a55132247fba8ca0c6","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_3cb5bccc","line":115,"in_reply_to":"ba3cc151_a1f9aaca","updated":"2015-06-29 14:17:14.000000000","message":"Sorry about the confusion. I didn\u0027t fully understand your comment on this one. I guess after chatting with you on IRC, i have a better view. please see if patch # 4 addresses the comment. Also would need some help in fixing the UT.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"698e52f6db86c4883354ea263778a48524c0999e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_e74c3044","line":115,"in_reply_to":"fa32b979_440f30e1","updated":"2015-06-23 14:35:10.000000000","message":"Honestly I don\u0027t think we need this kind of generic method to get IP version.\nInstead what do you think about the approach below.\n\n- Change find_resource_by_id and find_resource_by_name to return data[collection][0] or info[0] instead of returning xxx[\u0027id\u0027]\n- Add a method find_resource_by_name_or_id which returns a found resource.\n- find_resourceid_by_name_or_id calls find_resource_by_name_or_id and extracts \u0027id\u0027 from the return value.\n- You can call find_resource_by_name_or_id in subnet.py and extracts ip_version.\n\nBy doing so, we can avoid code duplication like this method.\nThis method is almost a copy of find_resource_by_id.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"8546e04223a1c3e6d37fa1de6e16b2fde646ac37","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_440f30e1","line":115,"in_reply_to":"fa32b979_44d0b753","updated":"2015-06-23 07:05:18.000000000","message":"the _get_resource_plural method is private to the __init__.py\nIf i just take this method from here to the subnet.py - that method would have to duplicated or the signature should theoretically be changed (given we are sticking to the principles of not calling the \u0027_\u0027 methods from other modules)....thoughts?","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e5ff99bc3a0e46bda2e681ea4686b02a09e88475","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_a1f9aaca","line":115,"in_reply_to":"fa32b979_7ceb72a4","updated":"2015-06-29 12:57:30.000000000","message":"IMHO retrieving ID is very common usage in Neutron client,\nso I think it sound reasonable to have find_resourceid_by_id.\nAs I said in the above comment, it can be a simple wrapper.\n\nOn the other hand, I am not confident it is sufficient to take a single field as a parameter. A developer may want to retrieve a resource and use two fields to check something.\nThis is the reason I suggested find_resource_by_name_or_id().","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"7c077dab305ea1da20995168d2c4ffcaa3fa317d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_7ceb72a4","line":115,"in_reply_to":"fa32b979_e74c3044","updated":"2015-06-25 12:02:41.000000000","message":"I spent sometime with this today. The problem is find_resourceid_by_id  and \n find_resourceid_by_name  are hard-coded with the \u0027id\u0027 \nfield as the query constraint. In such a case, \nit becomes necessary to introduce a new method argument that will \ntake in this field value (which can be either \u0027id\u0027 or \u0027ip_version\u0027) - \nonce I did that, quite a few more UTs broke :(\n\nWould you agree with the observation?","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"b61f6785220874af6f98fa1d7909250e461b913f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                        project_id, cmd_resource, parent_id)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def find_ip_version_by_id(client, resource, id, project_id\u003dNone,"},{"line_number":116,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":117,"context_line":"    if not cmd_resource:"},{"line_number":118,"context_line":"        cmd_resource \u003d resource"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_a7c1c982","line":115,"updated":"2015-06-29 06:26:25.000000000","message":"It seems to me that we cannot do away writing this entire method.\nThe method find_resourceid_by_id\u0027s signature would have to be changed to accept a search parameter like \u0027id\u0027 or \u0027ip_version\u0027 - and that breaks a lot of things in the UT.","commit_id":"2508b9e1dbfd024c3b5364bad1ad059edb2d7fa4"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"db9bb51abc3628a4715a71dd30dfdf821a5a09b7","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    return info_obj[\u0027id\u0027]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"def find_ip_version_by_id(client, resource, name_or_id, project_id\u003dNone,"},{"line_number":125,"context_line":"                          cmd_resource\u003dNone, parent_id\u003dNone):"},{"line_number":126,"context_line":"    info_obj \u003d find_resource_by_name_or_id(client, resource, name_or_id,"},{"line_number":127,"context_line":"                                           project_id, cmd_resource,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_0a0a118a","line":124,"updated":"2015-07-03 13:44:49.000000000","message":"I still cannot understand why we need to have this method in __init__.py. I don\u0027t think it is generic.","commit_id":"c9f1f279b83ceec413d2bf724f59c75d16aed316"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"db9bb51abc3628a4715a71dd30dfdf821a5a09b7","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                neutron_client, self.resource, parsed_args.id,"},{"line_number":546,"context_line":"                cmd_resource\u003dself.cmd_resource, parent_id\u003dself.parent_id)"},{"line_number":547,"context_line":"        else:"},{"line_number":548,"context_line":"            _id \u003d find_resourceid_by_name_or_id("},{"line_number":549,"context_line":"                neutron_client, self.resource, parsed_args.id,"},{"line_number":550,"context_line":"                self.cmd_resource, self.parent_id)"},{"line_number":551,"context_line":"        obj_updater \u003d getattr(neutron_client,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_cae8a9b5","line":548,"updated":"2015-07-03 13:44:49.000000000","message":"This should not be changed because self.allow_names is False.","commit_id":"c9f1f279b83ceec413d2bf724f59c75d16aed316"}],"neutronclient/neutron/v2_0/subnet.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2d8d4f5e6a7c3108e4d33b52246f6d2144a40d7b","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u0027--ip-version\u0027,"},{"line_number":166,"context_line":"            type\u003dint,"},{"line_number":167,"context_line":"            default\u003d4, choices\u003d[4, 6],"},{"line_number":168,"context_line":"            help\u003d_(\u0027IP version to use, default is 4.\u0027))"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--ip_version\u0027,"},{"line_number":171,"context_line":"            type\u003dint,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_e41b0b1b","line":168,"updated":"2015-06-22 13:30:35.000000000","message":"If we go to the way I suggested below, we need to update the help message:\n\n  IP version to use. Default is 4. If --subnetpool is \n  specified, this option is ignored and IP version is \n  determined from the specified subnet pool.\n\nThought?","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"8546e04223a1c3e6d37fa1de6e16b2fde646ac37","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u0027--ip-version\u0027,"},{"line_number":166,"context_line":"            type\u003dint,"},{"line_number":167,"context_line":"            default\u003d4, choices\u003d[4, 6],"},{"line_number":168,"context_line":"            help\u003d_(\u0027IP version to use, default is 4.\u0027))"},{"line_number":169,"context_line":"        parser.add_argument("},{"line_number":170,"context_line":"            \u0027--ip_version\u0027,"},{"line_number":171,"context_line":"            type\u003dint,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_24f54cca","line":168,"in_reply_to":"fa32b979_e41b0b1b","updated":"2015-06-23 07:05:18.000000000","message":"Sure. I will add this text.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0c2e6613411c1ef7312cad726e5da0b99341b8ce","unresolved":false,"context_lines":[{"line_number":225,"context_line":"                ip_ver \u003d neutronV20.find_ip_version_by_id(self.get_client(),"},{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                if ip_ver \u003d\u003d 6 and parsed_args.ip_version \u003d\u003d 4:"},{"line_number":229,"context_line":"                    parsed_args.ip_version \u003d 6"},{"line_number":230,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":231,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_91ccb862","line":228,"updated":"2015-06-22 15:54:57.000000000","message":"The correctness of this code depends on the fact that the default ip_version 4.  I don\u0027t like that dependency.  Regardless of whether we ever to intend to change the default to 6, it will be better to write this code independent of it.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2d8d4f5e6a7c3108e4d33b52246f6d2144a40d7b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                if ip_ver \u003d\u003d 6 and parsed_args.ip_version \u003d\u003d 4:"},{"line_number":229,"context_line":"                    parsed_args.ip_version \u003d 6"},{"line_number":230,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        updatable_args2body(parsed_args, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_445e77ea","line":229,"updated":"2015-06-22 13:30:35.000000000","message":"IMHO, if subnet pool is specified, we can simply use IP version of the specified subnet pool and ignore the IP version in a command-line.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"0c2e6613411c1ef7312cad726e5da0b99341b8ce","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                if ip_ver \u003d\u003d 6 and parsed_args.ip_version \u003d\u003d 4:"},{"line_number":229,"context_line":"                    parsed_args.ip_version \u003d 6"},{"line_number":230,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        updatable_args2body(parsed_args, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_71549453","line":229,"in_reply_to":"fa32b979_445e77ea","updated":"2015-06-22 15:54:57.000000000","message":"+1  I think this would fix the problem I noted on L228.  Replace L228 and L229 with:\n\n  parsed_args.ip_version \u003d ip_ver\n\nI\u0027ll accept that.","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"8546e04223a1c3e6d37fa1de6e16b2fde646ac37","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                if ip_ver \u003d\u003d 6 and parsed_args.ip_version \u003d\u003d 4:"},{"line_number":229,"context_line":"                    parsed_args.ip_version \u003d 6"},{"line_number":230,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        updatable_args2body(parsed_args, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_843778af","line":229,"in_reply_to":"fa32b979_445e77ea","updated":"2015-06-23 07:05:18.000000000","message":"Done","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"8546e04223a1c3e6d37fa1de6e16b2fde646ac37","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                if ip_ver \u003d\u003d 6 and parsed_args.ip_version \u003d\u003d 4:"},{"line_number":229,"context_line":"                    parsed_args.ip_version \u003d 6"},{"line_number":230,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        updatable_args2body(parsed_args, body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa32b979_c4bee0fe","line":229,"in_reply_to":"fa32b979_71549453","updated":"2015-06-23 07:05:18.000000000","message":"Done","commit_id":"33c7b55eda889110db653808e3446f8826d3cce1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"db9bb51abc3628a4715a71dd30dfdf821a5a09b7","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                # ip version used in the pool"},{"line_number":225,"context_line":"                ip_ver \u003d neutronV20.find_ip_version_by_id(self.get_client(),"},{"line_number":226,"context_line":"                                                          \u0027subnetpool\u0027,"},{"line_number":227,"context_line":"                                                          _subnetpool_id)"},{"line_number":228,"context_line":"                parsed_args.ip_version \u003d ip_ver"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_2a1fd5b7","line":227,"updated":"2015-07-03 13:44:49.000000000","message":"You can change L.221-228 as follows:\n\n  _subnetpool \u003d neutronV20.find_resource_by_id(.....)\n  _subnetpool_id \u003d _subnetpool[\u0027id\u0027]\n  parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]","commit_id":"c9f1f279b83ceec413d2bf724f59c75d16aed316"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"1e1ce4199839c7077e6f619d8befc823a977aed5","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            # With subnetpool, cidr is now optional for creating subnet."},{"line_number":206,"context_line":"            cidr \u003d parsed_args.cidr"},{"line_number":207,"context_line":"            body[\u0027subnet\u0027].update({\u0027cidr\u0027: cidr})"},{"line_number":208,"context_line":"            unusable_cidr \u003d \u0027/32\u0027 if parsed_args.ip_version \u003d\u003d 4 else \u0027/128\u0027"},{"line_number":209,"context_line":"            if cidr.endswith(unusable_cidr):"},{"line_number":210,"context_line":"                self.log.warning(_(\"An IPv%(ip)d subnet with a %(cidr)s CIDR \""},{"line_number":211,"context_line":"                                   \"will have only one usable IP address so \""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_7df7d08c","line":208,"updated":"2015-07-04 12:12:37.000000000","message":"parsed_args.ip_version is used here before it is determined","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"ffb6a43e18aade47c4964fe3d93684a5680cb8de","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            # With subnetpool, cidr is now optional for creating subnet."},{"line_number":206,"context_line":"            cidr \u003d parsed_args.cidr"},{"line_number":207,"context_line":"            body[\u0027subnet\u0027].update({\u0027cidr\u0027: cidr})"},{"line_number":208,"context_line":"            unusable_cidr \u003d \u0027/32\u0027 if parsed_args.ip_version \u003d\u003d 4 else \u0027/128\u0027"},{"line_number":209,"context_line":"            if cidr.endswith(unusable_cidr):"},{"line_number":210,"context_line":"                self.log.warning(_(\"An IPv%(ip)d subnet with a %(cidr)s CIDR \""},{"line_number":211,"context_line":"                                   \"will have only one usable IP address so \""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_bd58f88b","line":208,"in_reply_to":"ba3cc151_7df7d08c","updated":"2015-07-04 12:37:48.000000000","message":"Very good point. I have moved this down.","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"1e1ce4199839c7077e6f619d8befc823a977aed5","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # IP version needs to be set as IP version can be"},{"line_number":232,"context_line":"        # determined by subnetpool."},{"line_number":233,"context_line":"        body[\u0027subnet\u0027][\u0027ip_version\u0027] \u003d parsed_args.ip_version"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_9df41488","line":231,"updated":"2015-07-04 12:12:37.000000000","message":"I am not sure i understand this, subnet pool is an optional field right?\nHow is it working for the subnets created without a subnet pool?\n\nDoesnt seems like this case is handled","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"9f6c4fe7151107fbef5d1e9d1541807912174f11","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # IP version needs to be set as IP version can be"},{"line_number":232,"context_line":"        # determined by subnetpool."},{"line_number":233,"context_line":"        body[\u0027subnet\u0027][\u0027ip_version\u0027] \u003d parsed_args.ip_version"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_2441013a","line":231,"in_reply_to":"ba3cc151_608f27cd","updated":"2015-07-06 19:25:43.000000000","message":"There is only one case where ip_version must be sent.  That is when neither cidr nor subnetpool is specified and the server is configured with default subnet pools for both versions.  Otherwise, ip_version is redundant.","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"510731c370f137df1fcdb5a01978fb86395cae3d","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # IP version needs to be set as IP version can be"},{"line_number":232,"context_line":"        # determined by subnetpool."},{"line_number":233,"context_line":"        body[\u0027subnet\u0027][\u0027ip_version\u0027] \u003d parsed_args.ip_version"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_dd385c40","line":231,"in_reply_to":"ba3cc151_9df41488","updated":"2015-07-04 12:16:42.000000000","message":"never mind, think i understand it now.\nHowever i really think that the IP version could be determined by the actual addressed that are configured","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"ffb6a43e18aade47c4964fe3d93684a5680cb8de","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # IP version needs to be set as IP version can be"},{"line_number":232,"context_line":"        # determined by subnetpool."},{"line_number":233,"context_line":"        body[\u0027subnet\u0027][\u0027ip_version\u0027] \u003d parsed_args.ip_version"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_dd5dbc7a","line":231,"in_reply_to":"ba3cc151_dd385c40","updated":"2015-07-04 12:37:48.000000000","message":"Can you explain this comment a bit?\nIf the user uses a ip_version \u003d 4 and uses a IPv6 subnetpool - is that the scenario you refer here?","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"8730e4d7ef67d014d6054bbaf4d842a0c2ea77b4","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":229,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # IP version needs to be set as IP version can be"},{"line_number":232,"context_line":"        # determined by subnetpool."},{"line_number":233,"context_line":"        body[\u0027subnet\u0027][\u0027ip_version\u0027] \u003d parsed_args.ip_version"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_608f27cd","line":231,"in_reply_to":"ba3cc151_dd5dbc7a","updated":"2015-07-04 15:08:19.000000000","message":"I just meant that i am not sure why there was a need to explicitly set the ip version, this could be deducted from the input address, no action is needed thought, not related to this patch","commit_id":"3c965f65207c03ffdbe44feeec6288022cd6edfe"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"31ee1b1580167e0d78a85fe0d9857a01d69a8468","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                _subnetpool_id \u003d _subnetpool[\u0027id\u0027]"},{"line_number":213,"context_line":"                # Now that we have the pool_id - let\u0027s just have a check on the"},{"line_number":214,"context_line":"                # ip version used in the pool"},{"line_number":215,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":216,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # IP version needs to be set as IP version can be"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_a4499190","line":215,"updated":"2015-07-06 20:10:35.000000000","message":"nit:  I think I\u0027d prefer to just set body[\u0027subnet\u0027][\u0027ip_version\u0027] directly here instead of setting parsed_args because, this value isn\u0027t what was parsed.\n\nI\u0027d probably initialize a local \"ip_version\" variable to parsed_args.ip_version before L206, override it here and then used it in place of parsed_args.ip_version below.\n\nSince it gets outside of the scope of this blueprint a bit, I\u0027ll post a follow-on.","commit_id":"1ed63ee230a7d8ac5569a2120d61f919ddd1f9da"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1497a0dc67f2f0118face41d68cf5111c8f8de03","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                _subnetpool_id \u003d _subnetpool[\u0027id\u0027]"},{"line_number":213,"context_line":"                # Now that we have the pool_id - let\u0027s just have a check on the"},{"line_number":214,"context_line":"                # ip version used in the pool"},{"line_number":215,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":216,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # IP version needs to be set as IP version can be"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_d3ca4b4f","line":215,"in_reply_to":"ba3cc151_a4499190","updated":"2015-07-07 04:36:20.000000000","message":"Generally agree.\n\nWhen you post a follow-up patch, please update updatable_args2body too. parsed_args.ip_version is used in that function and it is also called from subnet-update.","commit_id":"1ed63ee230a7d8ac5569a2120d61f919ddd1f9da"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d2bde0e70d66f8eeb0b116d4151fb25f738cdc28","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                _subnetpool_id \u003d _subnetpool[\u0027id\u0027]"},{"line_number":213,"context_line":"                # Now that we have the pool_id - let\u0027s just have a check on the"},{"line_number":214,"context_line":"                # ip version used in the pool"},{"line_number":215,"context_line":"                parsed_args.ip_version \u003d _subnetpool[\u0027ip_version\u0027]"},{"line_number":216,"context_line":"            body[\u0027subnet\u0027].update({\u0027subnetpool_id\u0027: _subnetpool_id})"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        # IP version needs to be set as IP version can be"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba3cc151_b34467b7","line":215,"in_reply_to":"ba3cc151_d3ca4b4f","updated":"2015-07-07 04:39:10.000000000","message":"I didn\u0027t noticed \"for-create\" flag...","commit_id":"1ed63ee230a7d8ac5569a2120d61f919ddd1f9da"}],"neutronclient/tests/unit/test_cli20.py":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"b61f6785220874af6f98fa1d7909250e461b913f","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            \u0027neutronclient.neutron.v2_0.find_resourceid_by_id\u0027,"},{"line_number":208,"context_line":"            self._find_resourceid))"},{"line_number":209,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":210,"context_line":"            \u0027neutronclient.neutron.v2_0.find_ip_version_by_id\u0027,"},{"line_number":211,"context_line":"            self._find_ip_version))"},{"line_number":212,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":213,"context_line":"            \u0027neutronclient.v2_0.client.Client.get_attr_metadata\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_070515c1","line":210,"updated":"2015-06-29 06:26:25.000000000","message":"Merely adding this doesn\u0027t suffice the problem. Jenkins would still fail - but with a better error. \n\nIt appears that the UTs are complaining about passing \u0027slaac\u0027 for ipv6_address_mode as unexpected. I need some assistance in understanding these errors.","commit_id":"2508b9e1dbfd024c3b5364bad1ad059edb2d7fa4"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"db9bb51abc3628a4715a71dd30dfdf821a5a09b7","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":210,"context_line":"            \u0027neutronclient.neutron.v2_0.find_ip_version_by_id\u0027,"},{"line_number":211,"context_line":"            self._find_ip_version))"},{"line_number":212,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":213,"context_line":"            \u0027neutronclient.v2_0.client.Client.get_attr_metadata\u0027,"},{"line_number":214,"context_line":"            self._get_attr_metadata))"},{"line_number":215,"context_line":"        self.client \u003d client.Client(token\u003dTOKEN, endpoint_url\u003dself.endurl)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_05d9a256","line":212,"updated":"2015-07-03 13:44:49.000000000","message":"It is not a good idea to change the base module for specific change.","commit_id":"c9f1f279b83ceec413d2bf724f59c75d16aed316"}]}
